From d7ef856ff2d77006143514273f63a89562c54d38 Mon Sep 17 00:00:00 2001 From: richardwasswa Date: Thu, 25 Apr 2024 19:36:55 +0300 Subject: [PATCH] initial commit --- .dockerignore | 4 + .env.sample | 22 + .eslintrc.js | 25 + .gitignore | 59 + .nvmrc | 1 + .prettierrc | 4 + Dockerfile | 20 + LICENSE.md | 2 + README.md | 276 + assets/application_service.png | Bin 0 -> 134115 bytes assets/docker_ps_list.png | Bin 0 -> 125836 bytes assets/login_response.png | Bin 0 -> 278626 bytes docker-compose.yml | 52 + docs/rules.md | 149 + nest-cli.json | 8 + package-lock.json | 12173 ++++++++++++++++ package.json | 95 + src/app.controller.spec.ts | 25 + src/app.controller.ts | 14 + src/app.module.ts | 36 + src/app.service.ts | 8 + src/arango-database/arango-database.module.ts | 9 + .../arango-database.service.ts | 61 + src/arango-database/database.config.ts | 10 + src/auth/auth.controller.spec.ts | 23 + src/auth/auth.controller.ts | 32 + src/auth/auth.module.ts | 11 + src/auth/auth.service.spec.ts | 21 + src/auth/auth.service.ts | 45 + src/auth/decorators/roles.decorator.ts | 3 + src/auth/dto/create-auth.dto.ts | 20 + src/auth/dto/update-auth.dto.ts | 4 + src/auth/entities/auth.entity.ts | 15 + src/auth/guards/jwt-auth.guard.ts | 69 + src/auth/guards/roles.guard.ts | 40 + src/band/band.controller.spec.ts | 23 + src/band/band.controller.ts | 45 + src/band/band.module.ts | 9 + src/band/band.service.spec.ts | 21 + src/band/band.service.ts | 26 + src/band/dto/create-band.dto.ts | 1 + src/band/dto/update-band.dto.ts | 4 + src/band/entities/band.entity.ts | 15 + src/case/case.controller.spec.ts | 23 + src/case/case.controller.ts | 45 + src/case/case.module.ts | 9 + src/case/case.service.spec.ts | 21 + src/case/case.service.ts | 26 + src/case/dto/create-case.dto.ts | 1 + src/case/dto/update-case.dto.ts | 4 + src/case/entities/case.entity.ts | 15 + src/constants.ts | 17 + src/main.ts | 68 + src/privilege/privilege.module.ts | 27 + src/privilege/privilege.service.spec.ts | 21 + src/privilege/privilege.service.ts | 65 + src/rule-config/dto/create-rule-config.dto.ts | 31 + src/rule-config/dto/update-rule-config.dto.ts | 4 + .../entities/rule-config.entity.ts | 87 + src/rule-config/privilege.constant.ts | 38 + .../rule-config.controller.spec.ts | 45 + src/rule-config/rule-config.controller.ts | 113 + src/rule-config/rule-config.module.ts | 18 + src/rule-config/rule-config.service.spec.ts | 26 + src/rule-config/rule-config.service.ts | 170 + src/rule-config/schema/rule-config.schema.ts | 90 + src/rule/dto/create-rule.dto.ts | 35 + src/rule/dto/update-rule.dto.ts | 4 + src/rule/entities/rule.entity.ts | 71 + src/rule/privilege.constant.ts | 48 + src/rule/rule.controller.spec.ts | 97 + src/rule/rule.controller.ts | 111 + src/rule/rule.module.ts | 12 + src/rule/rule.service.spec.ts | 26 + src/rule/rule.service.ts | 212 + src/rule/schema/rule.schema.ts | 66 + .../dto/create-typology-config.dto.ts | 1 + .../dto/update-typology-config.dto.ts | 6 + .../entities/typology-config.entity.ts | 1 + .../typology-config.controller.spec.ts | 23 + .../typology-config.controller.ts | 48 + src/typology-config/typology-config.module.ts | 9 + .../typology-config.service.spec.ts | 21 + .../typology-config.service.ts | 26 + src/typology/dto/create-typology.dto.ts | 1 + src/typology/dto/update-typology.dto.ts | 4 + src/typology/entities/typology.entity.ts | 1 + src/typology/typology.controller.spec.ts | 23 + src/typology/typology.controller.ts | 48 + src/typology/typology.module.ts | 9 + src/typology/typology.service.spec.ts | 21 + src/typology/typology.service.ts | 26 + test/app.e2e-spec.ts | 33 + test/auth.e2e-spec.ts | 58 + test/jest-e2e.json | 9 + test/mocks/mocks.ts | 45 + test/mocks/userMocks.ts | 6 + test/rule-config.e2e-spec.ts | 145 + test/rule.e2e-spec.ts | 143 + test/utils.ts | 22 + tsconfig.build.json | 4 + tsconfig.json | 21 + 102 files changed, 15880 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.sample create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .nvmrc create mode 100644 .prettierrc create mode 100644 Dockerfile create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 assets/application_service.png create mode 100644 assets/docker_ps_list.png create mode 100644 assets/login_response.png create mode 100644 docker-compose.yml create mode 100644 docs/rules.md create mode 100644 nest-cli.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/app.controller.spec.ts create mode 100644 src/app.controller.ts create mode 100644 src/app.module.ts create mode 100644 src/app.service.ts create mode 100644 src/arango-database/arango-database.module.ts create mode 100644 src/arango-database/arango-database.service.ts create mode 100644 src/arango-database/database.config.ts create mode 100644 src/auth/auth.controller.spec.ts create mode 100644 src/auth/auth.controller.ts create mode 100644 src/auth/auth.module.ts create mode 100644 src/auth/auth.service.spec.ts create mode 100644 src/auth/auth.service.ts create mode 100644 src/auth/decorators/roles.decorator.ts create mode 100644 src/auth/dto/create-auth.dto.ts create mode 100644 src/auth/dto/update-auth.dto.ts create mode 100644 src/auth/entities/auth.entity.ts create mode 100644 src/auth/guards/jwt-auth.guard.ts create mode 100644 src/auth/guards/roles.guard.ts create mode 100644 src/band/band.controller.spec.ts create mode 100644 src/band/band.controller.ts create mode 100644 src/band/band.module.ts create mode 100644 src/band/band.service.spec.ts create mode 100644 src/band/band.service.ts create mode 100644 src/band/dto/create-band.dto.ts create mode 100644 src/band/dto/update-band.dto.ts create mode 100644 src/band/entities/band.entity.ts create mode 100644 src/case/case.controller.spec.ts create mode 100644 src/case/case.controller.ts create mode 100644 src/case/case.module.ts create mode 100644 src/case/case.service.spec.ts create mode 100644 src/case/case.service.ts create mode 100644 src/case/dto/create-case.dto.ts create mode 100644 src/case/dto/update-case.dto.ts create mode 100644 src/case/entities/case.entity.ts create mode 100644 src/constants.ts create mode 100644 src/main.ts create mode 100644 src/privilege/privilege.module.ts create mode 100644 src/privilege/privilege.service.spec.ts create mode 100644 src/privilege/privilege.service.ts create mode 100644 src/rule-config/dto/create-rule-config.dto.ts create mode 100644 src/rule-config/dto/update-rule-config.dto.ts create mode 100644 src/rule-config/entities/rule-config.entity.ts create mode 100644 src/rule-config/privilege.constant.ts create mode 100644 src/rule-config/rule-config.controller.spec.ts create mode 100644 src/rule-config/rule-config.controller.ts create mode 100644 src/rule-config/rule-config.module.ts create mode 100644 src/rule-config/rule-config.service.spec.ts create mode 100644 src/rule-config/rule-config.service.ts create mode 100644 src/rule-config/schema/rule-config.schema.ts create mode 100644 src/rule/dto/create-rule.dto.ts create mode 100644 src/rule/dto/update-rule.dto.ts create mode 100644 src/rule/entities/rule.entity.ts create mode 100644 src/rule/privilege.constant.ts create mode 100644 src/rule/rule.controller.spec.ts create mode 100644 src/rule/rule.controller.ts create mode 100644 src/rule/rule.module.ts create mode 100644 src/rule/rule.service.spec.ts create mode 100644 src/rule/rule.service.ts create mode 100644 src/rule/schema/rule.schema.ts create mode 100644 src/typology-config/dto/create-typology-config.dto.ts create mode 100644 src/typology-config/dto/update-typology-config.dto.ts create mode 100644 src/typology-config/entities/typology-config.entity.ts create mode 100644 src/typology-config/typology-config.controller.spec.ts create mode 100644 src/typology-config/typology-config.controller.ts create mode 100644 src/typology-config/typology-config.module.ts create mode 100644 src/typology-config/typology-config.service.spec.ts create mode 100644 src/typology-config/typology-config.service.ts create mode 100644 src/typology/dto/create-typology.dto.ts create mode 100644 src/typology/dto/update-typology.dto.ts create mode 100644 src/typology/entities/typology.entity.ts create mode 100644 src/typology/typology.controller.spec.ts create mode 100644 src/typology/typology.controller.ts create mode 100644 src/typology/typology.module.ts create mode 100644 src/typology/typology.service.spec.ts create mode 100644 src/typology/typology.service.ts create mode 100644 test/app.e2e-spec.ts create mode 100644 test/auth.e2e-spec.ts create mode 100644 test/jest-e2e.json create mode 100644 test/mocks/mocks.ts create mode 100644 test/mocks/userMocks.ts create mode 100644 test/rule-config.e2e-spec.ts create mode 100644 test/rule.e2e-spec.ts create mode 100644 test/utils.ts create mode 100644 tsconfig.build.json create mode 100644 tsconfig.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1c5c71f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +node_modules +dist +.env +.env.sample \ No newline at end of file diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..a360667 --- /dev/null +++ b/.env.sample @@ -0,0 +1,22 @@ +# Security BC Connection +AUTH_N_SVC_BASEURL= +AUTHORIZATION_BASEURL= +AUTH_N_TOKEN_ISSUER_NAME= +AUTH_N_TOKEN_AUDIENCE= +KAFKA_URL= + +# Application Configurations +SVC_CLIENT_ID= +SVC_CLIENT_SECRET= +BC_NAME= +APP_NAME= +APP_VERSION= + +# Arango Database Connection. +DATABASE_HOST= +DATABASE_NAME= +DATABASE_USERNAME= +DATABASE_PASSWORD= + +# config-svc-be application port +PORT= \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..259de13 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + tsconfigRootDir: __dirname, + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..648dc29 --- /dev/null +++ b/.gitignore @@ -0,0 +1,59 @@ +# compiled output +/dist +/node_modules + +# Build outputs +build/ + +# Logs +logs +*.log +npm-debug.log* +pnpm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# OS +.DS_Store + +# Tests +/coverage +/.nyc_output + +# IDEs and editors +/.idea +.vscode/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# temp directory +.temp +.tmp + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..d4c3d32 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20.10 diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..dcb7279 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "all" +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c1d6dfe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM node:20.10.0-alpine3.18 as builder + +WORKDIR /usr/src/app + +RUN apk add --no-cache -t build-dependencies git make gcc g++ python3 \ + libtool autoconf pkgconfig automake librdkafka-dev bash # wget tar xz + +RUN cd $(npm root -g)/npm + +RUN npm install -g node-gyp + +COPY package*.json ./ + +RUN npm install + +COPY . /usr/src/app + +RUN npm run build + +CMD ["npm", "start"] diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..1c3b46e --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,2 @@ +# LICENSE +TBD diff --git a/README.md b/README.md new file mode 100644 index 0000000..80de84c --- /dev/null +++ b/README.md @@ -0,0 +1,276 @@ +# Config-svc-be REST Service + +A restful service for Tazama to allow for the configuration of Transaction Monitoring Services + +- [NodeJS](https://nodejs.org/en/) +- [NestJS](https://nestjs.com/) +- [Arangodb](https://arangodb.com/) + +## Installation + +### Requirements + +Before you get started, the following need to be installed: + +- **[NodeJS](https://nodejs.org/en/)**. ***Version 20.10*** and above is currently used and we don't guarantee everything works with other versions. If you need to work with multiple versions of NodeJS, [NVM](https://github.com/nvm-sh/nvm/blob/master/README.md) is recommended. +- **[NestJS](https://nestjs.com/)**. ***Version 10.0.0*** is currently used to build our restful service. We don't guarantee everything works with other versions. +- **[npm](https://www.npmjs.com/)**. We are currently using npm to manage our dependancies. + +### Pre-requisites. + +It is assumed that you have installed Mojaloop Security BC and associated services. + +## Clone the application +Clone the repo + +```bash +git clone git@github.com:lextego/config-svc.git +``` + +cd into the repo + +```bash +cd config-svc/packages/config-svc-be +``` + +Use the correct Node.js version + +```bash +nvm use +``` + +Install dependencies + +```bash +npm install +``` + +Add environment variables + +```bash +cp ./.env.sample ./.env +``` + +Any Empty .env file should look as follows + +```t +# Security BC Connection +AUTH_N_SVC_BASEURL= +AUTHORIZATION_BASEURL= +KAFKA_URL= +AUTH_N_TOKEN_ISSUER_NAME= +AUTH_N_TOKEN_AUDIENCE= + +# Application Configurations +SVC_CLIENT_ID= +SVC_CLIENT_SECRET= +BC_NAME= +APP_NAME= +APP_VERSION= + +# Arango Database Connection. +DATABASE_HOST= +DATABASE_NAME= +DATABASE_USERNAME= +DATABASE_PASSWORD= + +# config-svc-be application port +PORT= +``` + +If you use a default installation, your .env file should be as follows: + +```t +# Security BC Connection. +AUTH_N_SVC_BASEURL=http://localhost:3201 # the mojaloop/security-bc-authorization-svc:0.5.4 image running in docker +AUTHORIZATION_BASEURL=http://localhost:3202 #the mojaloop/security-bc-authentication-svc:0.5.4 image running in docker +KAFKA_URL=localhost:9092 #the confluentinc/cp-kafka:7.2.1 image running in docker +AUTH_N_TOKEN_ISSUER_NAME=mojaloop.vnext.dev.default_issuer # default secuirty-bc token authentication issuer name +AUTH_N_TOKEN_AUDIENCE=mojaloop.vnext.dev.default_audience # default security-bc token authentication audience + +# Application Configurations +SVC_CLIENT_ID=lextego # specifiies the created application client id +SVC_CLIENT_SECRET=lextego-secret #specifies created application client secret +BC_NAME=lextego-bc # identifies the application privileges (they are variables) +APP_NAME=lextego-svc # identifies the application privileges (they are variables) +APP_VERSION=0.5.5 # this is a random version to version the privileges. it should from 0.5 on wards + +# Arango Database Connection. +DATABASE_HOST=http://localhost:8529/ # the port specified in the -p 8529:8529 +DATABASE_NAME=_system # the database name specified in the --server.database _system: +DATABASE_USERNAME=root # the database username specified in the --server.username root: +DATABASE_PASSWORD=1 # the database password specified in the --server.password pass: + +# config-svc-be application port +PORT=3007 # specifiy the port on which you want to run the application (default port is 3007) +``` + +## Install ArangoDB with Docker + +If you have not installed Arango, as part of another service, the recommended way of using it on a local machine is via docker according to the [documentation](https://docs.arangodb.com/3.11/operations/installation/docker/). + +You can choose one of the following: + +- [arangodb official Docker images](https://hub.docker.com/_/arangodb) , verified and published by Docker. +- [arangodb/arangodb Docker images](https://hub.docker.com/r/arangodb/arangodb), maintained and directly published by ArangoDB regularly. + +## Start an ArangoDB instance + +In order to start an ArangoDB instance, run: + +```bash +docker run -e ARANGO_ROOT_PASSWORD=1 -p 8529:8529 -d --name arangodb-instance arangodb/arangodb +``` + +- `-e ARANGO_ROOT_PASSWORD=1:` The -e flag is used to set environment variables inside the container. In this case, ARANGO_ROOT_PASSWORD=1 sets the root password of the ArangoDB instance to 1. It's important to choose a secure password for production environments. +- `-p 8529:8529:` The -p flag maps a port on the host to a port in the container. This command maps port 8529 on the host to port 8529 inside the container, which is the default port that ArangoDB listens on for connections. +- `-d:` This flag runs the container in detached mode, meaning the container runs in the background and does not block the terminal session. +- `--name arangodb-instance:` The --name flag assigns a name to the container, making it easier to manage. In this case, the container is named arangodb-instance. +- `arangodb/arangodb:` This specifies the image to use for the container. arangodb/arangodb is the official ArangoDB image from Docker Hub. Docker will download this image the first time you run the command if it's not already present on your system. + +### ArangoDB Interaction Command-line Interface (CLI) + +You can use [arangosh](https://docs.arangodb.com/3.11/components/tools/arangodb-shell/), an interactive shell that ships with ArangoDB, and its [JavaScript API](https://docs.arangodb.com/3.11/develop/javascript-api/@arangodb/db-object/), to interact with the server. You can also use it for automating tasks. + +In order to interact with the ArangoDB instance with CLI + +```bash +docker exec -it arangodb-instance arangosh --server.username root --server.password 1 --server.database _system +``` + +- `-it:` These flags are combined to allow interactive processes. -i (interactive) keeps STDIN open even if not attached, and -t (tty) allocates a pseudo-TTY, making it possible for you to interact with the shell inside the container. +- `arangodb-instance:` This is the name of the Docker container in which ArangoDB is running. You specified this name when you started the container with the docker run command. +- `arangosh:` This is the command being executed inside the Docker container. arangosh is the ArangoDB shell, which allows you to interact directly with your ArangoDB server using a command-line interface. +- `--server.username root:` This option specifies the username to use when connecting to the ArangoDB server. In this case, you're using the root user. +- `--server.password 1:` This option specifies the password for the user. You set this password to 1 when you started the container. For security reasons, it's important to use a strong, unique password, especially in production environments. +- `--server.database _system:` This option specifies the name of the database to connect to. \_system is the default system database provided by ArangoDB for managing the server. + +Update the Arango Database Connection environment variables as follows + +```t +# Arango Database Connection. +DATABASE_HOST=http://localhost:8529/ # the port specified in the -p 8529:8529 +DATABASE_NAME=_system # the database name specified in the --server.database _system: +DATABASE_USERNAME=root # the database username specified in the --server.username root: +DATABASE_PASSWORD=1 # the database password specified in the --server.password pass: +``` + +#### Accesing Arango + +Should you need to access the Arango Front End, you can use their [portal](http://localhost:8529/) the credentials we created above are as follows: + +UserName: Root +Password: 1 + +## Deploying the Platform Shared Tools +Please follow the instructions in the [mojaloop platform shared tools deployment](https://github.com/lextego/config-svc/blob/main/docs/02-deployment/90-mojaloop-platform-shared-tools-deployment.md) readme to deploy the Mojaloop Platform Shared Tools +- In order to check the images with cli run + +```bash +docker ps +``` + +![Docker Images Screenshot](./assets/docker_ps_list.png) + +Update the Mojaloop Platform Shared Tools environment variables as follows + +```t +# Security BC Connection. +AUTH_N_SVC_BASEURL=http://localhost:3201 # the mojaloop/security-bc-authorization-svc:0.5.4 image running in docker +AUTHORIZATION_BASEURL=http://localhost:3202 #the mojaloop/security-bc-authentication-svc:0.5.4 image running in docker +KAFKA_URL=localhost:9092 #the confluentinc/cp-kafka:7.2.1 image running in docker +AUTH_N_TOKEN_ISSUER_NAME=mojaloop.vnext.dev.default_issuer # default secuirty-bc token authentication issuer name +AUTH_N_TOKEN_AUDIENCE=mojaloop.vnext.dev.default_audience # default security-bc token authentication audience +``` + +## configuration of the custom service / Application + +- Log into the authentication service of the security bound context running http://localhost:3201 (The Mojaloop/security-bc-authentication-svc:0.5.4 running in docker)using the default login credentials defined in [Mojaloop vNext admin UI](https://github.com/lextego/config-svc/blob/main/docs/02-deployment/90-mojaloop-platform-shared-tools-deployment.md#install) +- +```postgres-sql +curl --location 'http://localhost:3201/token' \ +--header 'Content-Type: application/json' \ +--data '{ + "grant_type": "password", + "client_id": "security-bc-ui", + "username": "admin", + "password": "superMegaPass" +}' +``` + +- The response contains an access_token to be used in creating an application +![Authentication service login response](./assets/login_response.png) +- Create an application using the endpoint http://localhost:3203/ (the mojaloop/security-bc-builtin-identity-svc:0.5.7 image running in docker) that identifies the service by providing clientId and clientSecret as variables. In this we are going to use ```lextego``` as our ```clientId```, ```lextego-secret``` as our ```clientSecret``` and update the Authorization bearer token with the newly obtained access token. If you get an error ```{"status":"error","msg":"Invalid client_id."}%```, it means the clientId already exists therefore provide a new clientId variable name. + +```bash +curl --location 'http://localhost:3203/apps/' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer ' \ +--data '{ + "enabled": true, + "clientId": "lextego", + "platformRoles": [], + "clientSecret": "lextego-secret", + "canLogin": true +}' +``` + +- Assign the created application a basic role using the endpoint ```http://localhost:3203/apps/${clientId}/roles/``` providing the clientId as lextego for created application + +```bash +curl --location 'http://localhost:3203/apps/lextego/roles/' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer ' \ +--data '[ + { + "roleId": "basic-application" + } +]' +``` + +Update the application configuration environment variables as follows depending on the created application + +```t +# Application Configurations +SVC_CLIENT_ID=lextego # specifiies the created application client id +SVC_CLIENT_SECRET=lextego-secret #specifies created application client secret +BC_NAME=lextego-bc # identifies the application privileges (they are variables) +APP_NAME=lextego-svc # identifies the application privileges (they are variables) +APP_VERSION=0.5.5 # this is a random version to version the privileges. it should from 0.5 on wards +``` + +update the config-svc-be application port (optional as it runs on a default port of 3007) + +```t +# config-svc-be application port +PORT=3007 # specifiy the port on which you want to run the application (default port is 3007) +``` + +## Run the application + +```bash +npm run start +``` + +Run the application on **hot-reload** + +```bash +npm run start:dev +``` + +- At this time you can test the config-svc-be on http://localhost:3007/. +- Access the endpoint swagger documentation on http://localhost:3007/swagger#/ + +## Unit testing + +Running unit tests + +```bash +npm run test +``` + +Running end to end tests + +```bash +npm run test:e2e +``` diff --git a/assets/application_service.png b/assets/application_service.png new file mode 100644 index 0000000000000000000000000000000000000000..894fca7a7cfc7a696825a61d120ae589a50ce4d7 GIT binary patch literal 134115 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 z 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: Create New Rule + be->>bc: validates User and permissions + bc->>db: Save rule in database + db->>be: saved Rule + be->>fe: Saved Rule + +``` + +### Import a Rule +```mermaid +sequenceDiagram + title Importing a rule + autonumber + # declare actors + actor fe as Front End + participant be as Backend + participant bc as Security Bound Context + participant db as Database + fe->>be: Create New Rule + be->>bc: validates User and permissions + bc->>db: Save rule in database + db->>be: saved Rule + be->>fe: Saved Rule + +``` + +### Get Rule +```mermaid +sequenceDiagram + title Gets a rule + autonumber + # declare actors + actor fe as Front End + participant be as Backend + participant bc as Security Bound Context + participant db as Database + fe->>be: rule id + be->>bc: validates User and permissions + bc->>be: Does rule exist + be->>db: finds a rule + db->>be: rule + be->>fe: rule + +``` + +### Get Rules +```mermaid +sequenceDiagram + title Gets Rules + autonumber + # declare actors + actor fe as Front End + participant be as Backend + participant bc as Security Bound Context + participant db as Database + fe->>be: request + be->>bc: validates User and permissions + bc->>be: validated user + be->>db: finds rules + db->>be: rule + be->>fe: rule + +``` + + +### Modify a Rule +```mermaid +sequenceDiagram + title Modify a rule + autonumber + # declare actors + actor fe as Front End + participant be as Backend + participant bc as Security Bound Context + participant db as Database + fe->>be: modify rule data + be->>bc: validates User and permissions + bc->>be: Does rule exist + be->>db: Saves a new rule with the originatedID in the database + db->>be: new saved Rule + be->>fe: new saved Rule + +``` + +### Disable a Rule +```mermaid +sequenceDiagram + title Disable a rule + autonumber + # declare actors + actor fe as Front End + participant be as Backend + participant bc as Security Bound Context + participant db as Database + fe->>be: rule to be disabled + be->>bc: validates User and permissions + bc->>be: Does rule exist + be->>db: changes rule state to 92_DISABLED + db->>be: disabled Rule + be->>fe: disabled Rule + +``` + +### Mark a Rule For Deletion +```mermaid +sequenceDiagram + title Mark a rule for Deletion + autonumber + # declare actors + actor fe as Front End + participant be as Backend + participant bc as Security Bound Context + participant db as Database + fe->>be: rule to be marked for deletion + be->>bc: validates User and permissions + bc->>be: Does rule exist + be->>db: changes rule state to 92_DISABLED + db->>be: disabled Rule + be->>fe: disabled Rule + +``` \ No newline at end of file diff --git a/nest-cli.json b/nest-cli.json new file mode 100644 index 0000000..f9aa683 --- /dev/null +++ b/nest-cli.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src", + "compilerOptions": { + "deleteOutDir": true + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0297039 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12173 @@ +{ + "name": "config-svc-be", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "config-svc-be", + "version": "0.0.1", + "license": "UNLICENSED", + "dependencies": { + "@faker-js/faker": "^8.4.1", + "@golevelup/ts-jest": "^0.5.0", + "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": "^0.5.9", + "@mojaloop/security-bc-client-lib": "^0.5.9", + "@mojaloop/security-bc-public-types-lib": "^0.5.6", + "@nestjs/common": "^10.0.0", + "@nestjs/config": "^3.2.0", + "@nestjs/core": "^10.0.0", + "@nestjs/mapped-types": "*", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/swagger": "^7.3.0", + "arangojs": "^8.8.1", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", + "dotenv-defaults": "^5.0.2", + "express": "^4.18.3", + "i": "^0.3.7", + "nest-arango": "^0.2.0", + "npm": "^10.5.0", + "reflect-metadata": "^0.2.0", + "rxjs": "^7.8.1", + "swagger-ui-express": "^5.0.0", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@nestjs/cli": "^10.0.0", + "@nestjs/schematics": "^10.0.0", + "@nestjs/testing": "^10.0.0", + "@types/dotenv-defaults": "^2.0.4", + "@types/express": "^4.17.17", + "@types/jest": "^29.5.2", + "@types/node": "^20.3.1", + "@types/supertest": "^6.0.0", + "@types/uuid": "^9.0.8", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "eslint": "^8.42.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", + "jest": "^29.5.0", + "prettier": "^3.0.0", + "source-map-support": "^0.5.21", + "supertest": "^6.3.3", + "ts-jest": "^29.1.0", + "ts-loader": "^9.4.3", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.2.tgz", + "integrity": "sha512-ku+/W/HMCBacSWFppenr9y6Lx8mDuTuQvn1IkTyBLiJOpWnzgVbx9kHDeaDchGa1PwLlJUBBrv27t3qgJOIDPw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.2.tgz", + "integrity": "sha512-8S9RuM8olFN/gwN+mjbuF1CwHX61f0i59EGXz9tXLnKRUTjsRR+8vVMTAmX0dvVAT5fJTG/T69X+HX7FeumdqA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-17.1.2.tgz", + "integrity": "sha512-bvXykYzSST05qFdlgIzUguNOb3z0hCa8HaTwtqdmQo9aFPf+P+/AC56I64t1iTchMjQtf3JrBQhYM25gUdcGbg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "ansi-colors": "4.1.3", + "inquirer": "9.2.12", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "bin": { + "schematics": "bin/schematics.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/inquirer": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.11", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@faker-js/faker": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.4.1.tgz", + "integrity": "sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/fakerjs" + } + ], + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0", + "npm": ">=6.14.13" + } + }, + "node_modules/@golevelup/ts-jest": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@golevelup/ts-jest/-/ts-jest-0.5.0.tgz", + "integrity": "sha512-UniUNOBraDD8vf6QNUPkpWMzhUXBtw40nCHekgBlaHy2p99MDV0aYLp4ZXifiyPOsFmg4BZQGs60lF6EpV7JpA==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "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": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.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.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "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 + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "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.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "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 + } + } + }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@ljharb/through": { + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", + "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==" + }, + "node_modules/@mojaloop/logging-bc-public-types-lib": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@mojaloop/logging-bc-public-types-lib/-/logging-bc-public-types-lib-0.5.4.tgz", + "integrity": "sha512-rc6SXTHVdlRs/CYCjZooP3jahSlzEWJzqXbE2iRjPFVhINetux+4DeFJ7kR0CuAJLAPMmi8rs5UoFQBUeci5rA==", + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@mojaloop/platform-shared-lib-messaging-types-lib": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@mojaloop/platform-shared-lib-messaging-types-lib/-/platform-shared-lib-messaging-types-lib-0.5.6.tgz", + "integrity": "sha512-ym6BkR/v1CI5J4xegyzYn3AwCU2ZjALl67cFb9sbBiUxKk+GKrIBV5BHy6fEGHjP2CNesVwnFXVwG46LDNFmcQ==", + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@mojaloop/platform-shared-lib-nodejs-kafka-client-lib/-/platform-shared-lib-nodejs-kafka-client-lib-0.5.9.tgz", + "integrity": "sha512-Om1WYkRJ4l6CqQwj2xwSIvyToU7MtnSQT3TPKuVDcsojDAseXh/oS5CvkTg9G++WSv06+0USN+1RAv08KPwG2w==", + "dependencies": { + "@mojaloop/logging-bc-public-types-lib": "~0.5.4", + "@mojaloop/platform-shared-lib-messaging-types-lib": "~0.5.6", + "node-rdkafka": "~2.18.0" + }, + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@mojaloop/platform-shared-lib-public-messages-lib": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@mojaloop/platform-shared-lib-public-messages-lib/-/platform-shared-lib-public-messages-lib-0.5.13.tgz", + "integrity": "sha512-YucKqGEZTaRiakdWiHsLYQQA3K9GxPmuXMlAa8oqM5W74coGTS35piAOfU8cZv0UA00r3dfTIPY0432roFzzSA==", + "dependencies": { + "@mojaloop/platform-shared-lib-messaging-types-lib": "~0.5.6" + }, + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@mojaloop/security-bc-client-lib": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@mojaloop/security-bc-client-lib/-/security-bc-client-lib-0.5.9.tgz", + "integrity": "sha512-mUbgTQyo8wHFe46it5+BwPpisneuYtltiKl0NIzw13AzX2ffJa5r+gxyYo8k9/PsGJlNr88FilS2LITvwzrrrA==", + "dependencies": { + "@mojaloop/logging-bc-public-types-lib": "~0.5.4", + "@mojaloop/platform-shared-lib-messaging-types-lib": "~0.5.5", + "@mojaloop/platform-shared-lib-public-messages-lib": "~0.5.11", + "@mojaloop/security-bc-public-types-lib": "~0.5.6", + "jsonwebtoken": "^9.0.2", + "jwks-rsa": "^3.1.0", + "node-forge": "^1.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@mojaloop/security-bc-public-types-lib": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@mojaloop/security-bc-public-types-lib/-/security-bc-public-types-lib-0.5.6.tgz", + "integrity": "sha512-+YsMc6DMV7EFbJLuTUqSXIQHjIaxls7MgOXzWBsp5PqQuS8+OQUGEvtioBXUCbofWNf1VUbTDgJLHsVOkzMZgw==", + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/@nestjs/cli": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-10.3.2.tgz", + "integrity": "sha512-aWmD1GLluWrbuC4a1Iz/XBk5p74Uj6nIVZj6Ov03JbTfgtWqGFLtXuMetvzMiHxfrHehx/myt2iKAPRhKdZvTg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "@angular-devkit/schematics-cli": "17.1.2", + "@nestjs/schematics": "^10.0.1", + "chalk": "4.1.2", + "chokidar": "3.6.0", + "cli-table3": "0.6.3", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "9.0.2", + "glob": "10.3.10", + "inquirer": "8.2.6", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "rimraf": "4.4.1", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.2.0", + "tsconfig-paths-webpack-plugin": "4.1.0", + "typescript": "5.3.3", + "webpack": "5.90.1", + "webpack-node-externals": "3.0.0" + }, + "bin": { + "nest": "bin/nest.js" + }, + "engines": { + "node": ">= 16.14" + }, + "peerDependencies": { + "@swc/cli": "^0.1.62 || ^0.3.0", + "@swc/core": "^1.3.62" + }, + "peerDependenciesMeta": { + "@swc/cli": { + "optional": true + }, + "@swc/core": { + "optional": true + } + } + }, + "node_modules/@nestjs/cli/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nestjs/cli/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nestjs/cli/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nestjs/cli/node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@nestjs/cli/node_modules/webpack": { + "version": "5.90.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", + "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@nestjs/common": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.3.tgz", + "integrity": "sha512-LAkTe8/CF0uNWM0ecuDwUNTHCi1lVSITmmR4FQ6Ftz1E7ujQCnJ5pMRzd8JRN14vdBkxZZ8VbVF0BDUKoKNxMQ==", + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/config": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-3.2.0.tgz", + "integrity": "sha512-BpYRn57shg7CH35KGT6h+hT7ZucB6Qn2B3NBNdvhD4ApU8huS5pX/Wc2e/aO5trIha606Bz2a9t9/vbiuTBTww==", + "dependencies": { + "dotenv": "16.4.1", + "dotenv-expand": "10.0.0", + "lodash": "4.17.21", + "uuid": "9.0.1" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "rxjs": "^7.1.0" + } + }, + "node_modules/@nestjs/core": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.3.tgz", + "integrity": "sha512-kxJWggQAPX3RuZx9JVec69eSLaYLNIox2emkZJpfBJ5Qq7cAq7edQIt1r4LGjTKq6kFubNTPsqhWf5y7yFRBPw==", + "hasInstallScript": true, + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "3.2.0", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/websockets": "^10.0.0", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@nestjs/mapped-types": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.5.tgz", + "integrity": "sha512-bSJv4pd6EY99NX9CjBIyn4TVDoSit82DUZlL4I3bqNfy5Gt+gXTa86i3I/i0iIV9P4hntcGM5GyO+FhZAhxtyg==", + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "class-transformer": "^0.4.0 || ^0.5.0", + "class-validator": "^0.13.0 || ^0.14.0", + "reflect-metadata": "^0.1.12 || ^0.2.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/platform-express": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.3.3.tgz", + "integrity": "sha512-GGKSEU48Os7nYFIsUM0nutuFUGn5AbeP8gzFBiBCAtiuJWrXZXpZ58pMBYxAbMf7IrcOZFInHEukjHGAQU0OZw==", + "dependencies": { + "body-parser": "1.20.2", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.6.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/@nestjs/platform-express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/@nestjs/platform-express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/@nestjs/platform-express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@nestjs/schematics": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-10.1.1.tgz", + "integrity": "sha512-o4lfCnEeIkfJhGBbLZxTuVWcGuqDCFwg5OrvpgRUBM7vI/vONvKKiB5riVNpO+JqXoH0I42NNeDb0m4V5RREig==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "comment-json": "4.2.3", + "jsonc-parser": "3.2.1", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": ">=4.8.2" + } + }, + "node_modules/@nestjs/schematics/node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/@nestjs/swagger": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-7.3.0.tgz", + "integrity": "sha512-zLkfKZ+ioYsIZ3dfv7Bj8YHnZMNAGWFUmx2ZDuLp/fBE4P8BSjB7hldzDueFXsmwaPL90v7lgyd82P+s7KME1Q==", + "dependencies": { + "@microsoft/tsdoc": "^0.14.2", + "@nestjs/mapped-types": "2.0.5", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "path-to-regexp": "3.2.0", + "swagger-ui-dist": "5.11.2" + }, + "peerDependencies": { + "@fastify/static": "^6.0.0 || ^7.0.0", + "@nestjs/common": "^9.0.0 || ^10.0.0", + "@nestjs/core": "^9.0.0 || ^10.0.0", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12 || ^0.2.0" + }, + "peerDependenciesMeta": { + "@fastify/static": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/testing": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.3.3.tgz", + "integrity": "sha512-kX20GfjAImL5grd/i69uD/x7sc00BaqGcP2dRG3ilqshQUuy5DOmspLCr3a2C8xmVU7kzK4spT0oTxhe6WcCAA==", + "dev": true, + "dependencies": { + "tslib": "2.6.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + } + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", + "dev": true + }, + "node_modules/@types/dotenv-defaults": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/dotenv-defaults/-/dotenv-defaults-2.0.4.tgz", + "integrity": "sha512-+KwZaAMQkt0uk5IH3F2zqjUsZqEi8ro0qEpi4dnYwpNfG3Mejf3PlCQooqMrICWkSg3gq9jgFCeAwFrbhDQmbQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "dotenv": "^8.2.0" + } + }, + "node_modules/@types/dotenv-defaults/node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", + "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz", + "integrity": "sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/methods": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", + "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.11.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.26.tgz", + "integrity": "sha512-YwOMmyhNnAWijOBQweOJnQPl068Oqd4K3OFbTc6AHJwzweUwwWG3GIFY74OKks2PJUDkQPeddOQES9mLn1CTEQ==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/qs": { + "version": "6.9.12", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", + "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/superagent": { + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.4.tgz", + "integrity": "sha512-uzSBYwrpal8y2X2Pul5ZSWpzRiDha2FLcquaN95qUPnOjYgm/zQ5LIdqeJpQJTRWNTN+Rhm0aC8H06Ds2rqCYw==", + "dev": true, + "dependencies": { + "@types/cookiejar": "^2.1.5", + "@types/methods": "^1.1.4", + "@types/node": "*" + } + }, + "node_modules/@types/supertest": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.2.tgz", + "integrity": "sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==", + "dev": true, + "dependencies": { + "@types/methods": "^1.1.4", + "@types/superagent": "^8.1.0" + } + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, + "node_modules/@types/validator": { + "version": "13.11.9", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.9.tgz", + "integrity": "sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==" + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/arangojs": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/arangojs/-/arangojs-8.8.1.tgz", + "integrity": "sha512-gVc5BF91nT27lB97mt+XxcGbw7yOhPIkZ0f5Nmq/ZPt1/iP62rDpH961XUyWdzj5m4H8lx2OF/O2AVefZoolXg==", + "dependencies": { + "@types/node": ">=14", + "multi-part": "^4.0.0", + "path-browserify": "^1.0.1", + "x3-linkedlist": "1.2.0", + "xhr": "^2.4.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001597", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", + "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "node_modules/class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "dependencies": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "peer": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "dev": true, + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/dotenv": { + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.1.tgz", + "integrity": "sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/dotenv-defaults": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-5.0.2.tgz", + "integrity": "sha512-y5z4NhblzwNk8XBIYVzjLcFkANK0rxbRDO6kGOfH9QrVYIGVEX52IqwSprKVsaLHM9pnNkCSxazZF/JPydDPvA==", + "dependencies": { + "dotenv": "^14.0.0" + } + }, + "node_modules/dotenv-defaults/node_modules/dotenv": { + "version": "14.3.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-14.3.2.tgz", + "integrity": "sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.702", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.702.tgz", + "integrity": "sha512-LYLXyEUsZ3nNSwiOWjI88N1PJUAMU2QphQSgGLVkFnb3FxZxNui2Vzi2PaKPgPWbsWbZstZnh6BMf/VQJamjiQ==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "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.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figlet": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.7.0.tgz", + "integrity": "sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==", + "peer": true, + "bin": { + "figlet": "bin/index.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", + "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "dependencies": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flat-cache/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.0.2.tgz", + "integrity": "sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^8.2.0", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/i": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz", + "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "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 + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.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.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "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 + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "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.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "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 + } + } + }, + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "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": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "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": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "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.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jose": { + "version": "4.15.5", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", + "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jwks-rsa": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.1.0.tgz", + "integrity": "sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg==", + "dependencies": { + "@types/express": "^4.17.17", + "@types/jsonwebtoken": "^9.0.2", + "debug": "^4.3.4", + "jose": "^4.14.6", + "limiter": "^1.1.5", + "lru-memoizer": "^2.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.10.58", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.58.tgz", + "integrity": "sha512-53A0IpJFL9LdHbpeatwizf8KSwPICrqn9H0g3Y7WQ+Jgeu9cQ4Ew3WrRtrLBu/CX2lXd5+rgT01/tGlkbkzOjw==" + }, + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lru-memoizer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.2.0.tgz", + "integrity": "sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "lru-cache": "~4.0.0" + } + }, + "node_modules/lru-memoizer/node_modules/lru-cache": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", + "integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==", + "dependencies": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "node_modules/lru-memoizer/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-kind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mime-kind/-/mime-kind-4.0.0.tgz", + "integrity": "sha512-qQvglvSpS5mABi30beNFd+uHKtKkxD3dxAmhi2e589XKx+WfVqhg5i5P5LBcVgwwv3BiDpNMBWrHqU+JexW4aA==", + "dependencies": { + "file-type": "^16.5.4", + "mime-types": "^2.1.24" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/multi-part": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multi-part/-/multi-part-4.0.0.tgz", + "integrity": "sha512-YT/CS0PAe62kT8EoQXcQj8yIcSu18HhYv0s6ShdAFsoFly3oV5QaxODnkj0u7zH0/RFyH47cdcMVpcGXliEFVA==", + "dependencies": { + "mime-kind": "^4.0.0", + "multi-part-lite": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/multi-part-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/multi-part-lite/-/multi-part-lite-1.0.0.tgz", + "integrity": "sha512-KxIRbBZZ45hoKX1ROD/19wJr0ql1bef1rE8Y1PCwD3PuNXV42pp7Wo8lEHYuAajoT4vfAFcd3rPjlkyEEyt1nw==", + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nest-arango": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nest-arango/-/nest-arango-0.2.0.tgz", + "integrity": "sha512-kt0kIzmD6B8JGCgBp+VTdR+24L3z+xi69kLVn/JQ2LUQxrWuj1887vYnDbaHMbH4IKIZvY7NHYdSuqJej1RCLQ==", + "bin": { + "nest-arango": "bin/cli.js" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "@nestjs/core": "^9.0.0 || ^10.0.0", + "arangojs": "^8.1.0", + "commander": "^10.0.0", + "dotenv": "^16.0.3", + "figlet": "^1.5.2", + "ts-node": "^10.9.1" + } + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-rdkafka": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/node-rdkafka/-/node-rdkafka-2.18.0.tgz", + "integrity": "sha512-jYkmO0sPvjesmzhv1WFOO4z7IMiAFpThR6/lcnFDWgSPkYL95CtcuVNo/R5PpjujmqSgS22GMkL1qvU4DTAvEQ==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.3.1", + "nan": "^2.17.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.5.0.tgz", + "integrity": "sha512-Ejxwvfh9YnWVU2yA5FzoYLTW52vxHCz+MHrOFg9Cc8IFgF/6f5AGPAvb5WTay5DIUP1NIfN3VBZ0cLlGO0Ys+A==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "cli-table3", + "columnify", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^7.2.1", + "@npmcli/config": "^8.0.2", + "@npmcli/fs": "^3.1.0", + "@npmcli/map-workspaces": "^3.0.4", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.1", + "@npmcli/run-script": "^7.0.4", + "@sigstore/tuf": "^2.3.1", + "abbrev": "^2.0.0", + "archy": "~1.0.0", + "cacache": "^18.0.2", + "chalk": "^5.3.0", + "ci-info": "^4.0.0", + "cli-columns": "^4.0.0", + "cli-table3": "^0.6.3", + "columnify": "^1.6.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.1", + "init-package-json": "^6.0.0", + "is-cidr": "^5.0.3", + "json-parse-even-better-errors": "^3.0.1", + "libnpmaccess": "^8.0.1", + "libnpmdiff": "^6.0.3", + "libnpmexec": "^7.0.4", + "libnpmfund": "^5.0.1", + "libnpmhook": "^10.0.0", + "libnpmorg": "^6.0.1", + "libnpmpack": "^6.0.3", + "libnpmpublish": "^9.0.2", + "libnpmsearch": "^7.0.0", + "libnpmteam": "^6.0.0", + "libnpmversion": "^5.0.1", + "make-fetch-happen": "^13.0.0", + "minimatch": "^9.0.3", + "minipass": "^7.0.4", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^10.0.1", + "nopt": "^7.2.0", + "normalize-package-data": "^6.0.0", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.3.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-profile": "^9.0.0", + "npm-registry-fetch": "^16.1.0", + "npm-user-validate": "^2.0.0", + "npmlog": "^7.0.1", + "p-map": "^4.0.0", + "pacote": "^17.0.6", + "parse-conflict-json": "^3.0.1", + "proc-log": "^3.0.0", + "qrcode-terminal": "^0.12.0", + "read": "^2.1.0", + "semver": "^7.6.0", + "spdx-expression-parse": "^3.0.1", + "ssri": "^10.0.5", + "supports-color": "^9.4.0", + "tar": "^6.2.0", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.0", + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/@colors/colors": { + "version": "1.5.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "7.4.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.0", + "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.0.0", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/query": "^3.1.0", + "@npmcli/run-script": "^7.0.2", + "bin-links": "^4.0.1", + "cacache": "^18.0.0", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.1", + "json-parse-even-better-errors": "^3.0.0", + "json-stringify-nice": "^1.1.4", + "minimatch": "^9.0.0", + "nopt": "^7.0.0", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "npmlog": "^7.0.1", + "pacote": "^17.0.4", + "parse-conflict-json": "^3.0.0", + "proc-log": "^3.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.5", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "8.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^3.0.2", + "ci-info": "^4.0.0", + "ini": "^4.1.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ansi-styles": "^4.3.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "3.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "5.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "7.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^17.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "7.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "3.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "7.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.2.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.0.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.2.3", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.3.1", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.1.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "4.0.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "4.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/builtins": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "18.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.0.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.0.3", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "6.0.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/color-support": { + "version": "1.1.3", + "inBundle": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.6.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/diff": { + "version": "5.2.0", + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.2", + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/gauge": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^4.0.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.3.10", + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hasown": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "7.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "6.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "4.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^2.0.0", + "read-package-json": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.0.3", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "4.0.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-core-module": { + "version": "2.13.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "2.3.6", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "6.0.7", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1", + "@npmcli/disparity-colors": "^3.0.0", + "@npmcli/installed-package-contents": "^2.0.2", + "binary-extensions": "^2.2.0", + "diff": "^5.1.0", + "minimatch": "^9.0.0", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4", + "tar": "^6.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "7.0.8", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^7.0.2", + "ci-info": "^4.0.0", + "npm-package-arg": "^11.0.1", + "npmlog": "^7.0.1", + "pacote": "^17.0.4", + "proc-log": "^3.0.0", + "read": "^2.0.0", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "5.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "10.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "6.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "6.0.7", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^7.0.2", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "9.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.0", + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^10.0.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "7.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "6.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "5.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.3", + "@npmcli/run-script": "^7.0.2", + "json-parse-even-better-errors": "^3.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.2.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "13.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.0.4", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "3.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-json-stream": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "10.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "7.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "6.0.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.3.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "11.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "9.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "9.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "16.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "2.0.0", + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npmlog": { + "version": "7.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^4.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^5.0.0", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "17.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.10.1", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.0.15", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "7.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "2.2.2", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/sign": "^2.2.3", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 16.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.17", + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/ssri": { + "version": "10.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "2.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/npm/node_modules/which": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/peek-readable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", + "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dev": true, + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shelljs/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/shelljs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strtok3": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swagger-ui-dist": { + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.11.2.tgz", + "integrity": "sha512-jQG0cRgJNMZ7aCoiFofnoojeSaa/+KgWaDlfgs8QN+BXoGMpxeMVY5OEnjq4OlNvF3yjftO8c9GRAgcHlO+u7A==" + }, + "node_modules/swagger-ui-express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-5.0.0.tgz", + "integrity": "sha512-tsU9tODVvhyfkNSvf03E6FAk+z+5cU3lXAzMy6Pv4av2Gt2xA0++fogwC4qo19XuFf6hdxevPuVCSKFuMHJhFA==", + "dependencies": { + "swagger-ui-dist": ">=5.0.0" + }, + "engines": { + "node": ">= v0.10.32" + }, + "peerDependencies": { + "express": ">=4.0.0 || >=5.0.0-beta" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.29.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", + "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-types": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", + "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", + "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validator": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/x3-linkedlist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/x3-linkedlist/-/x3-linkedlist-1.2.0.tgz", + "integrity": "sha512-mH/YwxpYSKNa8bDNF1yOuZCMuV+K80LtDN8vcLDUAwNazCxptDNsYt+zA/EJeYiGbdtKposhKLZjErGVOR8mag==", + "engines": { + "node": ">=10" + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3bece0b --- /dev/null +++ b/package.json @@ -0,0 +1,95 @@ +{ + "name": "config-svc-be", + "version": "0.0.1", + "description": "", + "author": "richard.wasswa@lextego.com", + "private": true, + "lextego": { + "publish_to_dockerhub": true + }, + "license": "UNLICENSED", + "scripts": { + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json" + }, + "dependencies": { + "@faker-js/faker": "^8.4.1", + "@golevelup/ts-jest": "^0.5.0", + "@mojaloop/platform-shared-lib-nodejs-kafka-client-lib": "^0.5.9", + "@mojaloop/security-bc-client-lib": "^0.5.9", + "@mojaloop/security-bc-public-types-lib": "^0.5.6", + "@nestjs/common": "^10.0.0", + "@nestjs/config": "^3.2.0", + "@nestjs/core": "^10.0.0", + "@nestjs/mapped-types": "*", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/swagger": "^7.3.0", + "arangojs": "^8.8.1", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", + "dotenv-defaults": "^5.0.2", + "express": "^4.18.3", + "i": "^0.3.7", + "nest-arango": "^0.2.0", + "npm": "^10.5.0", + "reflect-metadata": "^0.2.0", + "rxjs": "^7.8.1", + "swagger-ui-express": "^5.0.0", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@nestjs/cli": "^10.0.0", + "@nestjs/schematics": "^10.0.0", + "@nestjs/testing": "^10.0.0", + "@types/dotenv-defaults": "^2.0.4", + "@types/express": "^4.17.17", + "@types/jest": "^29.5.2", + "@types/node": "^20.3.1", + "@types/supertest": "^6.0.0", + "@types/uuid": "^9.0.8", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "eslint": "^8.42.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", + "jest": "^29.5.0", + "prettier": "^3.0.0", + "source-map-support": "^0.5.21", + "supertest": "^6.3.3", + "ts-jest": "^29.1.0", + "ts-loader": "^9.4.3", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.1.3" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + }, + "engines": { + "node": ">=20.10.0" + } +} diff --git a/src/app.controller.spec.ts b/src/app.controller.spec.ts new file mode 100644 index 0000000..3809d31 --- /dev/null +++ b/src/app.controller.spec.ts @@ -0,0 +1,25 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('AppController', () => { + let appController: AppController; + + beforeEach(async () => { + const app: TestingModule = await Test.createTestingModule({ + controllers: [AppController], + providers: [AppService], + }) + .useMocker(createMock) + .compile(); + + appController = app.get(AppController); + }); + + describe('root', () => { + it('should return "Api is running!"', () => { + expect(appController.getHello()).toBe('Api is running!'); + }); + }); +}); diff --git a/src/app.controller.ts b/src/app.controller.ts new file mode 100644 index 0000000..ff93983 --- /dev/null +++ b/src/app.controller.ts @@ -0,0 +1,14 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; +import { ApiOkResponse } from '@nestjs/swagger'; + +@Controller() +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get() + @ApiOkResponse({ description: 'Api health check' }) + getHello(): string { + return this.appService.getHello(); + } +} diff --git a/src/app.module.ts b/src/app.module.ts new file mode 100644 index 0000000..d29485a --- /dev/null +++ b/src/app.module.ts @@ -0,0 +1,36 @@ +import { Module, OnModuleInit } from '@nestjs/common'; +import { ConfigModule } from '@nestjs/config'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; +import { RuleModule } from './rule/rule.module'; +import { RuleConfigModule } from './rule-config/rule-config.module'; +import { AuthModule } from './auth/auth.module'; +import { TypologyModule } from './typology/typology.module'; +import { TypologyConfigModule } from './typology-config/typology-config.module'; +import { PrivilegeModule } from './privilege/privilege.module'; +import { ArangoDatabaseService } from './arango-database/arango-database.service'; +import { PrivilegeService } from './privilege/privilege.service'; +import { BandModule } from './band/band.module'; +import { CaseModule } from './case/case.module'; + +@Module({ + imports: [ + ConfigModule.forRoot({ isGlobal: true, envFilePath: '.env' }), + PrivilegeModule, + AuthModule, + RuleModule, + RuleConfigModule, + TypologyModule, + TypologyConfigModule, + BandModule, + CaseModule, + ], + controllers: [AppController], + providers: [AppService, ArangoDatabaseService, PrivilegeService], +}) +export class AppModule implements OnModuleInit { + constructor(private readonly arangoService: ArangoDatabaseService) {} + async onModuleInit() { + await this.arangoService.initializeDatabase(); + } +} diff --git a/src/app.service.ts b/src/app.service.ts new file mode 100644 index 0000000..5d1fea0 --- /dev/null +++ b/src/app.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AppService { + getHello(): string { + return 'Api is running!'; + } +} diff --git a/src/arango-database/arango-database.module.ts b/src/arango-database/arango-database.module.ts new file mode 100644 index 0000000..05ef46b --- /dev/null +++ b/src/arango-database/arango-database.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { ArangoDatabaseService } from './arango-database.service'; + +@Module({ + controllers: [], + providers: [ArangoDatabaseService], + exports: [ArangoDatabaseService], +}) +export class ArangoDatabaseModule {} diff --git a/src/arango-database/arango-database.service.ts b/src/arango-database/arango-database.service.ts new file mode 100644 index 0000000..c91144b --- /dev/null +++ b/src/arango-database/arango-database.service.ts @@ -0,0 +1,61 @@ +import 'dotenv-defaults/config'; +import { Injectable } from '@nestjs/common'; +import * as arangojs from 'arangojs'; +import { RULE_COLLECTION, ruleSchema } from '../rule/schema/rule.schema'; +import { databaseConfig } from './database.config'; +import { + RULE_CONFIG_COLLECTION, + ruleConfigSchema, +} from '../rule-config/schema/rule-config.schema'; + +@Injectable() +export class ArangoDatabaseService { + private readonly database: arangojs.Database; + + constructor() { + this.database = new arangojs.Database(databaseConfig); + } + + getDatabase() { + return this.database; + } + + async initializeCollections() { + // Specify the collections you want to ensure exist + const collections = [ + { name: RULE_COLLECTION, options: ruleSchema }, + { name: RULE_CONFIG_COLLECTION, options: ruleConfigSchema }, + ]; + + // Iterate over the collection names and create them if they don't exist + for (const { name, options } of collections) { + if (!(await this.collectionExists(name))) { + try { + await this.database.createCollection(name, { + schema: options.schema, + computedValues: [...options.computedValues], + }); + } catch (error) { + console.error('Error initializing schema'); + } + } + } + } + + private async collectionExists(collectionName: string) { + // Check if the specified collection Exists + const collections = await this.database.listCollections(); + return collections.some( + (collection: { name: string }) => collection.name === collectionName, + ); + } + + async initializeDatabase() { + try { + await this.initializeCollections(); + console.log(`Database '${databaseConfig.databaseName}' is ready.`); + } catch (error) { + console.error(`Error initializing database: ${error.message} `); + } + } +} diff --git a/src/arango-database/database.config.ts b/src/arango-database/database.config.ts new file mode 100644 index 0000000..3211445 --- /dev/null +++ b/src/arango-database/database.config.ts @@ -0,0 +1,10 @@ +import 'dotenv-defaults/config'; + +export const databaseConfig = { + url: process.env.DATABASE_HOST, + databaseName: process.env.DATABASE_NAME, + auth: { + username: process.env.DATABASE_USERNAME, + password: process.env.DATABASE_PASSWORD, + }, +}; diff --git a/src/auth/auth.controller.spec.ts b/src/auth/auth.controller.spec.ts new file mode 100644 index 0000000..ff6401c --- /dev/null +++ b/src/auth/auth.controller.spec.ts @@ -0,0 +1,23 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AuthController } from './auth.controller'; +import { AuthService } from './auth.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('AuthController', () => { + let controller: AuthController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [AuthController], + providers: [AuthService], + }) + .useMocker(createMock) + .compile(); + + controller = module.get(AuthController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/auth/auth.controller.ts b/src/auth/auth.controller.ts new file mode 100644 index 0000000..e60c60a --- /dev/null +++ b/src/auth/auth.controller.ts @@ -0,0 +1,32 @@ +import { + Body, + Controller, + Get, + Post, + Request, + UseGuards, +} from '@nestjs/common'; +import { AuthService } from './auth.service'; +import { CreateAuthDto } from './dto/create-auth.dto'; +import { JwtAuthGuard } from './guards/jwt-auth.guard'; +import { Auth } from './entities/auth.entity'; +import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; + +@ApiTags('Authentication') +@Controller('auth') +export class AuthController { + constructor(private readonly authService: AuthService) {} + + @Post('/login') + @ApiOkResponse({ description: 'logged in successfully', type: Auth }) + validateUser(@Body() createAuthDto: CreateAuthDto): Promise { + return this.authService.login(createAuthDto); + } + + @UseGuards(JwtAuthGuard) + @ApiOkResponse({ description: 'Get user profile', type: Auth }) + @Get('/profile') + getUserProfile(@Request() req): Promise { + return this.authService.userProfile(req); + } +} diff --git a/src/auth/auth.module.ts b/src/auth/auth.module.ts new file mode 100644 index 0000000..2da7471 --- /dev/null +++ b/src/auth/auth.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { AuthService } from './auth.service'; +import { AuthController } from './auth.controller'; + +@Module({ + exports: [AuthService], + imports: [], + controllers: [AuthController], + providers: [AuthService], +}) +export class AuthModule {} diff --git a/src/auth/auth.service.spec.ts b/src/auth/auth.service.spec.ts new file mode 100644 index 0000000..3a3bb3a --- /dev/null +++ b/src/auth/auth.service.spec.ts @@ -0,0 +1,21 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AuthService } from './auth.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [AuthService], + }) + .useMocker(createMock) + .compile(); + + service = module.get(AuthService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts new file mode 100644 index 0000000..c1a4d91 --- /dev/null +++ b/src/auth/auth.service.ts @@ -0,0 +1,45 @@ +import { BadRequestException, Injectable } from '@nestjs/common'; +import { CreateAuthDto } from './dto/create-auth.dto'; +import { AUTH_N_SVC_BASEURL, AUTHORIZATION_BASEURL } from '../constants'; +import { Request } from 'express'; +import { Auth } from './entities/auth.entity'; + +@Injectable() +export class AuthService { + constructor() {} + async login(createAuthDto: CreateAuthDto): Promise { + try { + const response = await fetch(`${AUTH_N_SVC_BASEURL}/token`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ ...createAuthDto }), + }); + return await response.json(); + } catch (error) { + throw new BadRequestException(error.message); + } + } + + async userProfile(req: Request): Promise { + const user = req['user']; + try { + const response = await fetch(`${AUTHORIZATION_BASEURL}/platformRoles`, { + method: 'GET', + headers: { Authorization: req.headers.authorization }, + }); + const privileges = await response.json(); + const permissions = privileges + .filter((privilege: { id: string }) => + user.platformRoleIds.includes(privilege.id), + ) + .map((result) => result.privileges) + .flat(); + return { + ...user, + privileges: permissions, + }; + } catch (error) { + throw new BadRequestException(error.message); + } + } +} diff --git a/src/auth/decorators/roles.decorator.ts b/src/auth/decorators/roles.decorator.ts new file mode 100644 index 0000000..b037672 --- /dev/null +++ b/src/auth/decorators/roles.decorator.ts @@ -0,0 +1,3 @@ +import { SetMetadata } from '@nestjs/common'; + +export const Roles = (...roles: string[]) => SetMetadata('roles', roles); diff --git a/src/auth/dto/create-auth.dto.ts b/src/auth/dto/create-auth.dto.ts new file mode 100644 index 0000000..4c49433 --- /dev/null +++ b/src/auth/dto/create-auth.dto.ts @@ -0,0 +1,20 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsString } from 'class-validator'; + +export class CreateAuthDto { + @ApiProperty() + @IsString() + readonly client_id: string; + + @ApiProperty() + @IsString() + readonly grant_type: string; + + @ApiProperty() + @IsString() + readonly password: string; + + @ApiProperty() + @IsString() + readonly username: string; +} diff --git a/src/auth/dto/update-auth.dto.ts b/src/auth/dto/update-auth.dto.ts new file mode 100644 index 0000000..100de4f --- /dev/null +++ b/src/auth/dto/update-auth.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreateAuthDto } from './create-auth.dto'; + +export class UpdateAuthDto extends PartialType(CreateAuthDto) {} diff --git a/src/auth/entities/auth.entity.ts b/src/auth/entities/auth.entity.ts new file mode 100644 index 0000000..726456f --- /dev/null +++ b/src/auth/entities/auth.entity.ts @@ -0,0 +1,15 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class Auth { + @ApiProperty() + clientId: string | null; + + @ApiProperty() + username: string; + + @ApiProperty() + platformRoleIds: string[]; + + @ApiProperty() + permissions: string[]; +} diff --git a/src/auth/guards/jwt-auth.guard.ts b/src/auth/guards/jwt-auth.guard.ts new file mode 100644 index 0000000..75378d9 --- /dev/null +++ b/src/auth/guards/jwt-auth.guard.ts @@ -0,0 +1,69 @@ +import { ConsoleLogger } from '@mojaloop/logging-bc-public-types-lib'; +import { TokenHelper } from '@mojaloop/security-bc-client-lib'; +import { ITokenHelper } from '@mojaloop/security-bc-public-types-lib'; +import { MLKafkaJsonConsumer } from '@mojaloop/platform-shared-lib-nodejs-kafka-client-lib'; + +import { + CanActivate, + ExecutionContext, + UnauthorizedException, +} from '@nestjs/common'; +import { Request } from 'express'; +import { + AUTH_N_SVC_JWKS_URL, + AUTH_N_TOKEN_AUDIENCE, + AUTH_N_TOKEN_ISSUER_NAME, + KAFKA_URL, + INSTANCE_ID, +} from '../../constants'; + +export class JwtAuthGuard implements CanActivate { + constructor() {} + + initializeTokenHelper() { + const logger = new ConsoleLogger(); // create a logger - see logging-bc client + const tokenHelper = new TokenHelper( + AUTH_N_SVC_JWKS_URL, + logger, + AUTH_N_TOKEN_ISSUER_NAME, + AUTH_N_TOKEN_AUDIENCE, + new MLKafkaJsonConsumer( + { + kafkaBrokerList: KAFKA_URL, + autoOffsetReset: 'earliest', // Use earliest so we recreate the list on apps restarts + kafkaGroupId: INSTANCE_ID, // Should be an instance specific id, not common + }, + logger, + ), + ); + + tokenHelper.init(); + return tokenHelper; + } + + async canActivate(context: ExecutionContext): Promise { + const tokenHelper: ITokenHelper = this.initializeTokenHelper(); + const request = context.switchToHttp().getRequest(); + const token = this.extractTokenFromHeader(request); + if (!token) { + throw new UnauthorizedException(); + } + await tokenHelper.verifyToken(token); + const payload = + await tokenHelper.getCallSecurityContextFromAccessToken(token); + if (!payload) throw new UnauthorizedException(); + const { clientId, username, participantRoleIds, platformRoleIds } = payload; + request['user'] = { + clientId, + username, + participantRoleIds, + platformRoleIds, + }; + return true; + } + + private extractTokenFromHeader(request: Request): string | undefined { + const [type, token] = request.headers.authorization?.split(' ') ?? []; + return type === 'Bearer' ? token : undefined; + } +} diff --git a/src/auth/guards/roles.guard.ts b/src/auth/guards/roles.guard.ts new file mode 100644 index 0000000..7dabdab --- /dev/null +++ b/src/auth/guards/roles.guard.ts @@ -0,0 +1,40 @@ +import { + CanActivate, + ExecutionContext, + Injectable, + UnauthorizedException, +} from '@nestjs/common'; +import { Reflector } from '@nestjs/core'; +import { PrivilegeService } from '../../privilege/privilege.service'; + +const ADMIN_PRIVILEGE = 'SECURITY_BOOTSTRAP_PRIVILEGES'; +@Injectable() +export class RolesGuard implements CanActivate { + constructor( + private reflector: Reflector, + private readonly privilegeService: PrivilegeService, + ) {} + + async canActivate(context: ExecutionContext): Promise { + const role = this.reflector.get('roles', context.getHandler()); + const request = context.switchToHttp().getRequest(); + + try { + const authorizationClient = + await this.privilegeService.privilegeConnection(); + await authorizationClient.fetch(); + return ( + authorizationClient.rolesHavePrivilege( + request['user'].platformRoleIds, + role[0], + ) || + authorizationClient.rolesHavePrivilege( + request['user'].platformRoleIds, + ADMIN_PRIVILEGE, + ) + ); + } catch (error) { + throw new UnauthorizedException(error.message); + } + } +} diff --git a/src/band/band.controller.spec.ts b/src/band/band.controller.spec.ts new file mode 100644 index 0000000..0d50d69 --- /dev/null +++ b/src/band/band.controller.spec.ts @@ -0,0 +1,23 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { BandController } from './band.controller'; +import { BandService } from './band.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('BandController', () => { + let controller: BandController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [BandController], + providers: [BandService], + }) + .useMocker(createMock) + .compile(); + + controller = module.get(BandController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/band/band.controller.ts b/src/band/band.controller.ts new file mode 100644 index 0000000..b8d18b2 --- /dev/null +++ b/src/band/band.controller.ts @@ -0,0 +1,45 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, +} from '@nestjs/common'; +import { BandService } from './band.service'; +import { CreateBandDto } from './dto/create-band.dto'; +import { UpdateBandDto } from './dto/update-band.dto'; +import { ApiExcludeController, ApiTags } from '@nestjs/swagger'; + +@ApiExcludeController() +@Controller('band') +@ApiTags('band') +export class BandController { + constructor(private readonly bandService: BandService) {} + + @Post() + create(@Body() createBandDto: CreateBandDto) { + return this.bandService.create(createBandDto); + } + + @Get() + findAll() { + return this.bandService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.bandService.findOne(+id); + } + + @Patch(':id') + update(@Param('id') id: string, @Body() updateBandDto: UpdateBandDto) { + return this.bandService.update(+id, updateBandDto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.bandService.remove(+id); + } +} diff --git a/src/band/band.module.ts b/src/band/band.module.ts new file mode 100644 index 0000000..9d24643 --- /dev/null +++ b/src/band/band.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { BandService } from './band.service'; +import { BandController } from './band.controller'; + +@Module({ + controllers: [BandController], + providers: [BandService], +}) +export class BandModule {} diff --git a/src/band/band.service.spec.ts b/src/band/band.service.spec.ts new file mode 100644 index 0000000..03d0b62 --- /dev/null +++ b/src/band/band.service.spec.ts @@ -0,0 +1,21 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { BandService } from './band.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('BandService', () => { + let service: BandService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [BandService], + }) + .useMocker(createMock) + .compile(); + + service = module.get(BandService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/band/band.service.ts b/src/band/band.service.ts new file mode 100644 index 0000000..31881a0 --- /dev/null +++ b/src/band/band.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@nestjs/common'; +import { CreateBandDto } from './dto/create-band.dto'; +import { UpdateBandDto } from './dto/update-band.dto'; + +@Injectable() +export class BandService { + create(createBandDto: CreateBandDto) { + return 'This action adds a new band'; + } + + findAll() { + return `This action returns all band`; + } + + findOne(id: number) { + return `This action returns a #${id} band`; + } + + update(id: number, updateBandDto: UpdateBandDto) { + return `This action updates a #${id} band`; + } + + remove(id: number) { + return `This action removes a #${id} band`; + } +} diff --git a/src/band/dto/create-band.dto.ts b/src/band/dto/create-band.dto.ts new file mode 100644 index 0000000..d7556ef --- /dev/null +++ b/src/band/dto/create-band.dto.ts @@ -0,0 +1 @@ +export class CreateBandDto {} diff --git a/src/band/dto/update-band.dto.ts b/src/band/dto/update-band.dto.ts new file mode 100644 index 0000000..2fb53b2 --- /dev/null +++ b/src/band/dto/update-band.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/swagger'; +import { CreateBandDto } from './create-band.dto'; + +export class UpdateBandDto extends PartialType(CreateBandDto) {} diff --git a/src/band/entities/band.entity.ts b/src/band/entities/band.entity.ts new file mode 100644 index 0000000..a864c3c --- /dev/null +++ b/src/band/entities/band.entity.ts @@ -0,0 +1,15 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class Band { + @ApiProperty() + subRuleRef: string; + + @ApiProperty() + upperLimit: number; + + @ApiProperty() + outcome: boolean; + + @ApiProperty() + reason: string; +} diff --git a/src/case/case.controller.spec.ts b/src/case/case.controller.spec.ts new file mode 100644 index 0000000..9e842c7 --- /dev/null +++ b/src/case/case.controller.spec.ts @@ -0,0 +1,23 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CaseController } from './case.controller'; +import { CaseService } from './case.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('CaseController', () => { + let controller: CaseController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [CaseController], + providers: [CaseService], + }) + .useMocker(createMock) + .compile(); + + controller = module.get(CaseController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/case/case.controller.ts b/src/case/case.controller.ts new file mode 100644 index 0000000..ce22737 --- /dev/null +++ b/src/case/case.controller.ts @@ -0,0 +1,45 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, +} from '@nestjs/common'; +import { CaseService } from './case.service'; +import { CreateCaseDto } from './dto/create-case.dto'; +import { UpdateCaseDto } from './dto/update-case.dto'; +import { ApiExcludeController, ApiTags } from '@nestjs/swagger'; + +@ApiExcludeController() +@Controller('case') +@ApiTags('case') +export class CaseController { + constructor(private readonly caseService: CaseService) {} + + @Post() + create(@Body() createCaseDto: CreateCaseDto) { + return this.caseService.create(createCaseDto); + } + + @Get() + findAll() { + return this.caseService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.caseService.findOne(+id); + } + + @Patch(':id') + update(@Param('id') id: string, @Body() updateCaseDto: UpdateCaseDto) { + return this.caseService.update(+id, updateCaseDto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.caseService.remove(+id); + } +} diff --git a/src/case/case.module.ts b/src/case/case.module.ts new file mode 100644 index 0000000..b9f33cd --- /dev/null +++ b/src/case/case.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { CaseService } from './case.service'; +import { CaseController } from './case.controller'; + +@Module({ + controllers: [CaseController], + providers: [CaseService], +}) +export class CaseModule {} diff --git a/src/case/case.service.spec.ts b/src/case/case.service.spec.ts new file mode 100644 index 0000000..3251dcb --- /dev/null +++ b/src/case/case.service.spec.ts @@ -0,0 +1,21 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CaseService } from './case.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('CaseService', () => { + let service: CaseService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [CaseService], + }) + .useMocker(createMock) + .compile(); + + service = module.get(CaseService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/case/case.service.ts b/src/case/case.service.ts new file mode 100644 index 0000000..d34b320 --- /dev/null +++ b/src/case/case.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@nestjs/common'; +import { CreateCaseDto } from './dto/create-case.dto'; +import { UpdateCaseDto } from './dto/update-case.dto'; + +@Injectable() +export class CaseService { + create(createCaseDto: CreateCaseDto) { + return 'This action adds a new case'; + } + + findAll() { + return `This action returns all case`; + } + + findOne(id: number) { + return `This action returns a #${id} case`; + } + + update(id: number, updateCaseDto: UpdateCaseDto) { + return `This action updates a #${id} case`; + } + + remove(id: number) { + return `This action removes a #${id} case`; + } +} diff --git a/src/case/dto/create-case.dto.ts b/src/case/dto/create-case.dto.ts new file mode 100644 index 0000000..c72860a --- /dev/null +++ b/src/case/dto/create-case.dto.ts @@ -0,0 +1 @@ +export class CreateCaseDto {} diff --git a/src/case/dto/update-case.dto.ts b/src/case/dto/update-case.dto.ts new file mode 100644 index 0000000..f291478 --- /dev/null +++ b/src/case/dto/update-case.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/swagger'; +import { CreateCaseDto } from './create-case.dto'; + +export class UpdateCaseDto extends PartialType(CreateCaseDto) {} diff --git a/src/case/entities/case.entity.ts b/src/case/entities/case.entity.ts new file mode 100644 index 0000000..174cd29 --- /dev/null +++ b/src/case/entities/case.entity.ts @@ -0,0 +1,15 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class Case { + @ApiProperty() + subRuleRef: string; + + @ApiProperty() + value: string; + + @ApiProperty() + outcome: boolean; + + @ApiProperty() + reason: string; +} diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..1bafc6e --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,17 @@ +import { v4 as uuidv4 } from 'uuid'; +export const AUTH_N_SVC_BASEURL = process.env['AUTH_N_SVC_BASEURL']; +export const AUTH_N_TOKEN_ISSUER_NAME = process.env['AUTH_N_TOKEN_ISSUER_NAME']; +export const AUTH_N_TOKEN_AUDIENCE = process.env['AUTH_N_TOKEN_AUDIENCE']; +export const AUTH_N_SVC_JWKS_URL = + process.env['AUTH_N_SVC_JWKS_URL'] || + `${AUTH_N_SVC_BASEURL}/.well-known/jwks.json`; + +export const AUTH_N_SVC_TOKEN_URL = AUTH_N_SVC_BASEURL + '/token'; +export const KAFKA_URL = process.env['KAFKA_URL']; +export const BC_NAME = process.env['BC_NAME']; +export const APP_NAME = process.env['APP_NAME']; +export const APP_VERSION = process.env['APP_VERSION']; +export const INSTANCE_ID = `${BC_NAME}_${APP_NAME}__${uuidv4()}`; +export const SVC_CLIENT_ID = process.env['SVC_CLIENT_ID']; +export const SVC_CLIENT_SECRET = process.env['SVC_CLIENT_SECRET']; +export const AUTHORIZATION_BASEURL = process.env['AUTHORIZATION_BASEURL']; diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..617a0d4 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,68 @@ +import 'dotenv-defaults/config'; + +const mandatoryEnvironmentVariables = [ + 'AUTH_N_SVC_BASEURL', + 'AUTHORIZATION_BASEURL', + 'AUTH_N_TOKEN_ISSUER_NAME', + 'AUTH_N_TOKEN_AUDIENCE', + 'KAFKA_URL', + 'BC_NAME', + 'APP_NAME', + 'APP_VERSION', + 'SVC_CLIENT_ID', + 'SVC_CLIENT_SECRET', + 'DATABASE_HOST', + 'DATABASE_NAME', + 'DATABASE_USERNAME', + 'DATABASE_PASSWORD', +]; +const missingEnvironmentVariables = mandatoryEnvironmentVariables.filter( + (variable) => !process.env[variable], +); +if (missingEnvironmentVariables.length > 0) { + console.error( + `Environment Variables [${missingEnvironmentVariables.join(',')}] not defined, terminating ...`, + ); + process.exit(1); +} + +import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; +import { NestFactory } from '@nestjs/core'; +import { ValidationPipe } from '@nestjs/common'; +import { AppModule } from './app.module'; +import { PrivilegeModule } from './privilege/privilege.module'; + +async function bootstrap() { + const PORT = process.env.PORT || 3005; + const app = await NestFactory.create(AppModule); + + // initialize privileges + const privilegeModule = app.select(PrivilegeModule); + await privilegeModule.get(PrivilegeModule).seedPrivileges(); + + // api prefixing + app.setGlobalPrefix('api', { exclude: [''] }); + + // swagger documentation setup + const config = new DocumentBuilder() + .setTitle('LexTego Api') + .setDescription('The lexTego API description') + .setVersion('1.0') + .addTag('lexTego') + .addBearerAuth() + .build(); + + const document = SwaggerModule.createDocument(app, config); + SwaggerModule.setup('/swagger', app, document); + + app.enableCors(); + app.useGlobalPipes( + new ValidationPipe({ + whitelist: true, + forbidNonWhitelisted: false, + }), + ); + + await app.listen(PORT); +} +bootstrap(); diff --git a/src/privilege/privilege.module.ts b/src/privilege/privilege.module.ts new file mode 100644 index 0000000..fa3f3d7 --- /dev/null +++ b/src/privilege/privilege.module.ts @@ -0,0 +1,27 @@ +import { Module, UnauthorizedException } from '@nestjs/common'; +import { PrivilegeService } from './privilege.service'; +import { RulePrivilegesDefinition } from '../rule/privilege.constant'; +import { RuleConfigPrivilegesDefinition } from '../rule-config/privilege.constant'; +@Module({ + providers: [PrivilegeService], + exports: [PrivilegeService], + controllers: [], +}) +export class PrivilegeModule { + constructor(private readonly privilegeService: PrivilegeService) {} + async seedPrivileges() { + try { + const authorizationClient = + await this.privilegeService.privilegeConnection(); + authorizationClient.addPrivilegesArray([ + ...RulePrivilegesDefinition, + ...RuleConfigPrivilegesDefinition, + ]); + await authorizationClient.bootstrap(true); + await authorizationClient.init(); + await authorizationClient.fetch(); + } catch (e) { + throw new UnauthorizedException(e.message); + } + } +} diff --git a/src/privilege/privilege.service.spec.ts b/src/privilege/privilege.service.spec.ts new file mode 100644 index 0000000..79b03dc --- /dev/null +++ b/src/privilege/privilege.service.spec.ts @@ -0,0 +1,21 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { PrivilegeService } from './privilege.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('PrivilegeService', () => { + let service: PrivilegeService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [PrivilegeService], + }) + .useMocker(createMock) + .compile(); + + service = module.get(PrivilegeService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/privilege/privilege.service.ts b/src/privilege/privilege.service.ts new file mode 100644 index 0000000..59f9fc5 --- /dev/null +++ b/src/privilege/privilege.service.ts @@ -0,0 +1,65 @@ +import { Injectable, UnauthorizedException } from '@nestjs/common'; +import { ConsoleLogger } from '@mojaloop/logging-bc-public-types-lib'; +import { + AuthenticatedHttpRequester, + AuthorizationClient, +} from '@mojaloop/security-bc-client-lib'; +import { + APP_NAME, + APP_VERSION, + AUTH_N_SVC_TOKEN_URL, + AUTHORIZATION_BASEURL, + BC_NAME, + INSTANCE_ID, + KAFKA_URL, + SVC_CLIENT_ID, + SVC_CLIENT_SECRET, +} from '../constants'; +import { MLKafkaJsonConsumer } from '@mojaloop/platform-shared-lib-nodejs-kafka-client-lib'; +import { RulePrivilegesDefinition } from '../rule/privilege.constant'; +import { RuleConfigPrivilegesDefinition } from '../rule-config/privilege.constant'; + +export type PrivilegeType = { + privId: string; + labelName: string; + description: string; +}; + +@Injectable() +export class PrivilegeService { + async privilegeConnection(): Promise { + const logger = new ConsoleLogger(); + const authRequester = new AuthenticatedHttpRequester( + logger, + AUTH_N_SVC_TOKEN_URL, + ); + authRequester.setAppCredentials(SVC_CLIENT_ID, SVC_CLIENT_SECRET); + const messageConsumer = new MLKafkaJsonConsumer( + { kafkaBrokerList: KAFKA_URL, kafkaGroupId: INSTANCE_ID }, + logger, + ); + return new AuthorizationClient( + BC_NAME, + APP_NAME, + APP_VERSION, + AUTHORIZATION_BASEURL, + logger, + authRequester, + messageConsumer, + ); + } + async seedPrivileges() { + try { + const authorizationClient = await this.privilegeConnection(); + authorizationClient.addPrivilegesArray([ + ...RulePrivilegesDefinition, + ...RuleConfigPrivilegesDefinition, + ]); + await authorizationClient.bootstrap(true); + await authorizationClient.init(); + await authorizationClient.fetch(); + } catch (e) { + throw new UnauthorizedException(e.message); + } + } +} diff --git a/src/rule-config/dto/create-rule-config.dto.ts b/src/rule-config/dto/create-rule-config.dto.ts new file mode 100644 index 0000000..a3e1b35 --- /dev/null +++ b/src/rule-config/dto/create-rule-config.dto.ts @@ -0,0 +1,31 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsEnum, IsObject, IsOptional, IsString } from 'class-validator'; +import { StateEnum } from '../../rule/schema/rule.schema'; +import { Configuration } from '../entities/rule-config.entity'; + +export class CreateRuleConfigDto { + @ApiProperty() + @IsString() + readonly cfg: string; + + @ApiProperty() + @IsEnum(StateEnum, { + message: () => { + const enumValues = Object.values(StateEnum).join(', '); + return `State must be one of the following values : ${enumValues}`; + }, + }) + readonly state: StateEnum; + + @ApiProperty() + @IsString() + readonly desc: string; + + @ApiProperty() + @IsString() + readonly ruleId: string; + + @ApiProperty({ type: () => Configuration }) + @IsObject() + config: Configuration; +} diff --git a/src/rule-config/dto/update-rule-config.dto.ts b/src/rule-config/dto/update-rule-config.dto.ts new file mode 100644 index 0000000..4f59619 --- /dev/null +++ b/src/rule-config/dto/update-rule-config.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreateRuleConfigDto } from './create-rule-config.dto'; + +export class UpdateRuleConfigDto extends PartialType(CreateRuleConfigDto) {} diff --git a/src/rule-config/entities/rule-config.entity.ts b/src/rule-config/entities/rule-config.entity.ts new file mode 100644 index 0000000..1b696e1 --- /dev/null +++ b/src/rule-config/entities/rule-config.entity.ts @@ -0,0 +1,87 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { Band } from '../../band/entities/band.entity'; +import { Case } from '../../case/entities/case.entity'; +import { IsArray, IsObject, ValidateNested } from 'class-validator'; +import { Type } from 'class-transformer'; + +class Parameters { + @ApiProperty() + maxQueryLimit: number; + + @ApiProperty() + tolerance: number; +} +class ExitConditions { + @ApiProperty() + subRuleRef: string; + + @ApiProperty() + outcome: boolean; + + @ApiProperty() + reason: string; +} + +export class Configuration { + @ApiProperty() + parameters: Parameters; + + @ApiProperty({ type: () => [ExitConditions] }) + @IsArray() + @ValidateNested({ each: true }) + @Type(() => ExitConditions) + exitConditions: ExitConditions; + + @ApiProperty({ type: () => [Band] }) + @IsArray() + @ValidateNested({ each: true }) + @Type(() => Band) + bands: Band[]; + + @ApiProperty({ type: () => [Case] }) + @IsArray() + @IsObject() + @ValidateNested({ each: true }) + case: Case[]; +} + +export class RuleConfig { + @ApiProperty() + _key: string; + + @ApiProperty() + _id: string; + + @ApiProperty() + _rev: string; + + @ApiProperty() + cfg: string; + + @ApiProperty() + desc: string; + + @ApiProperty() + state: string; + + @ApiProperty() + createdAt: Date; + + @ApiProperty() + updatedAt: Date; + + @ApiProperty() + updatedBy: string; + + @ApiProperty() + approverId: string; + + @ApiProperty() + ownerId: string; + + @ApiProperty() + ruleId: string; + + @ApiProperty() + config: Configuration; +} diff --git a/src/rule-config/privilege.constant.ts b/src/rule-config/privilege.constant.ts new file mode 100644 index 0000000..c575c01 --- /dev/null +++ b/src/rule-config/privilege.constant.ts @@ -0,0 +1,38 @@ +import { PrivilegeType } from '../privilege/privilege.service'; + +export enum RuleConfigPrivilege { + CREATE_RULE_CONFIG = 'SECURITY_CREATE_RULE_CONFIG', + UPDATE_RULE_CONFIG = 'SECURITY_UPDATE_RULE_CONFIG', + GET_RULE_CONFIGS = 'SECURITY_UPDATE_RULE_CONFIGS', + GET_RULE_CONFIG = 'SECURITY_GET_RULE_CONFIG', + DELETE_RULE_CONFIG = 'SECURITY_DELETE_RULE_CONFIG', + DISABLE_RULE = 'SECURITY_DISABLE_RULE', +} + +export const RuleConfigPrivilegesDefinition: PrivilegeType[] = [ + { + privId: RuleConfigPrivilege.CREATE_RULE_CONFIG, + labelName: 'Rule Config Create', + description: 'Allows creating a rule config', + }, + { + privId: RuleConfigPrivilege.UPDATE_RULE_CONFIG, + labelName: 'Rule Config Update', + description: 'Allows updating a rule config', + }, + { + privId: RuleConfigPrivilege.GET_RULE_CONFIGS, + labelName: 'Rule Configs Get', + description: 'Allows returning all the rule configs', + }, + { + privId: RuleConfigPrivilege.GET_RULE_CONFIG, + labelName: 'Rule Config Get', + description: 'Allows returning a specific rule config', + }, + { + privId: RuleConfigPrivilege.DELETE_RULE_CONFIG, + labelName: 'Rule Config Delete', + description: 'Allows deleting a specific rule config', + }, +]; diff --git a/src/rule-config/rule-config.controller.spec.ts b/src/rule-config/rule-config.controller.spec.ts new file mode 100644 index 0000000..c042dba --- /dev/null +++ b/src/rule-config/rule-config.controller.spec.ts @@ -0,0 +1,45 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { RuleConfigController } from './rule-config.controller'; +import { RuleConfigService } from './rule-config.service'; +import { CanActivate } from '@nestjs/common'; +import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; +import { RolesGuard } from '../auth/guards/roles.guard'; +import { PrivilegeService } from '../privilege/privilege.service'; + +describe('RuleConfigController', () => { + let controller: RuleConfigController; + const mockRuleConfigService = { + findAll: jest.fn().mockImplementation((dto: RuleConfigService) => { + return [{ ...dto }]; + }), + create: jest.fn().mockImplementation((dto) => { + return { + ...dto, + }; + }), + }; + const mockPrivilegeService = {}; + beforeEach(async () => { + const mockAuthGuard: CanActivate = { canActivate: jest.fn(() => true) }; + const mockRolesGuard: CanActivate = { canActivate: jest.fn(() => true) }; + const module: TestingModule = await Test.createTestingModule({ + controllers: [RuleConfigController], + providers: [RuleConfigService], + }) + .overrideProvider(RuleConfigService) + .useValue(mockRuleConfigService) + .overrideGuard(JwtAuthGuard) + .useValue(mockAuthGuard) + .overrideGuard(RolesGuard) + .useValue(mockRolesGuard) + .overrideProvider(PrivilegeService) + .useValue(mockPrivilegeService) + .compile(); + + controller = module.get(RuleConfigController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/rule-config/rule-config.controller.ts b/src/rule-config/rule-config.controller.ts new file mode 100644 index 0000000..e52bbfc --- /dev/null +++ b/src/rule-config/rule-config.controller.ts @@ -0,0 +1,113 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, + UseGuards, + Query, + DefaultValuePipe, + ParseIntPipe, + Request, +} from '@nestjs/common'; +import { RuleConfigService } from './rule-config.service'; +import { CreateRuleConfigDto } from './dto/create-rule-config.dto'; +import { UpdateRuleConfigDto } from './dto/update-rule-config.dto'; +import { + ApiExcludeEndpoint, + ApiOkResponse, + ApiQuery, + ApiTags, +} from '@nestjs/swagger'; +import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; +import { RolesGuard } from '../auth/guards/roles.guard'; +import { Roles } from '../auth/decorators/roles.decorator'; +import { RuleConfigPrivilege } from './privilege.constant'; +import { RuleConfig } from './entities/rule-config.entity'; + +@Controller('rule-config') +@ApiTags('rule config') +@UseGuards(JwtAuthGuard, RolesGuard) +export class RuleConfigController { + constructor(private readonly ruleConfigService: RuleConfigService) {} + + @Roles(RuleConfigPrivilege.CREATE_RULE_CONFIG) + @Post() + @ApiOkResponse({ description: 'Created Rule Config', type: RuleConfig }) + create(@Body() createRuleConfigDto: CreateRuleConfigDto, @Request() req) { + return this.ruleConfigService.create(createRuleConfigDto, req); + } + + @Roles(RuleConfigPrivilege.GET_RULE_CONFIGS) + @ApiOkResponse({ + description: 'Get all rule configs', + type: RuleConfig, + isArray: true, + }) + @ApiQuery({ name: 'page', required: false }) + @ApiQuery({ name: 'limit', required: false }) + @Get() + findAll( + @Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number, + @Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number, + ): Promise<{ count: number; data: RuleConfig[] }> { + return this.ruleConfigService.findAll({ page, limit }); + } + + @ApiExcludeEndpoint() + @Roles(RuleConfigPrivilege.GET_RULE_CONFIG) + @Get(':id') + @ApiOkResponse({ + description: 'Find single rule config by id', + type: RuleConfig, + }) + findOne(@Param('id') id: string): Promise { + return this.ruleConfigService.findOne(id); + } + + @ApiExcludeEndpoint() + @Patch(':id') + @Roles(RuleConfigPrivilege.UPDATE_RULE_CONFIG) + @ApiOkResponse({ + description: 'Update single rule config', + type: RuleConfig, + }) + update( + @Param('id') id: string, + @Body() updateRuleConfigDto: UpdateRuleConfigDto, + @Request() req, + ) { + return this.ruleConfigService.duplicateRuleConfig( + id, + updateRuleConfigDto, + req, + ); + } + + @ApiExcludeEndpoint() + @Delete(':id') + @Roles(RuleConfigPrivilege.DELETE_RULE_CONFIG) + @ApiOkResponse({ + description: 'Delete a single rule config', + type: RuleConfig, + }) + remove(@Param('id') id: string, @Request() req) { + return this.ruleConfigService.remove(id, req); + } + + @ApiExcludeEndpoint() + @Roles(RuleConfigPrivilege.DISABLE_RULE) + @Post(':id/disable') + @ApiOkResponse({ + description: 'Disabling a single rule config', + type: RuleConfig, + }) + async disableRule( + @Param('id') id: string, + @Request() req, + ): Promise { + return await this.ruleConfigService.disableRuleConfig(id, req); + } +} diff --git a/src/rule-config/rule-config.module.ts b/src/rule-config/rule-config.module.ts new file mode 100644 index 0000000..8bfb666 --- /dev/null +++ b/src/rule-config/rule-config.module.ts @@ -0,0 +1,18 @@ +import { Module } from '@nestjs/common'; +import { RuleConfigService } from './rule-config.service'; +import { RuleConfigController } from './rule-config.controller'; +import { ArangoDatabaseService } from '../arango-database/arango-database.service'; +import { PrivilegeService } from '../privilege/privilege.service'; +import { RuleService } from '../rule/rule.service'; + +@Module({ + controllers: [RuleConfigController], + providers: [ + RuleConfigService, + ArangoDatabaseService, + PrivilegeService, + RuleService, + ], + exports: [RuleConfigService], +}) +export class RuleConfigModule {} diff --git a/src/rule-config/rule-config.service.spec.ts b/src/rule-config/rule-config.service.spec.ts new file mode 100644 index 0000000..05dee57 --- /dev/null +++ b/src/rule-config/rule-config.service.spec.ts @@ -0,0 +1,26 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { RuleConfigService } from './rule-config.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('RuleConfigService', () => { + let service: RuleConfigService; + const mockArangoDatabaseService = jest.fn(); + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [RuleConfigService], + }) + .useMocker(createMock) + .compile(); + + service = module.get(RuleConfigService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); + + it('should create a rule config', () => { + expect(mockArangoDatabaseService).toBeDefined(); + }); +}); diff --git a/src/rule-config/rule-config.service.ts b/src/rule-config/rule-config.service.ts new file mode 100644 index 0000000..d35630c --- /dev/null +++ b/src/rule-config/rule-config.service.ts @@ -0,0 +1,170 @@ +import { + BadRequestException, + ForbiddenException, + Injectable, + NotFoundException, +} from '@nestjs/common'; +import { CreateRuleConfigDto } from './dto/create-rule-config.dto'; +import { UpdateRuleConfigDto } from './dto/update-rule-config.dto'; +import { Request } from 'express'; +import { ArangoDatabaseService } from '../arango-database/arango-database.service'; +import { RULE_CONFIG_COLLECTION } from './schema/rule-config.schema'; +import { RuleConfig } from './entities/rule-config.entity'; +import { v4 as uuidv4 } from 'uuid'; +import { StateEnum } from '../rule/schema/rule.schema'; +import { RuleService } from '../rule/rule.service'; + +@Injectable() +export class RuleConfigService { + constructor( + private readonly arangoDatabaseService: ArangoDatabaseService, + private readonly ruleService: RuleService, + ) {} + async create(createRuleConfigDto: CreateRuleConfigDto, req: Request) { + const db = this.arangoDatabaseService.getDatabase(); + const collection = db.collection(RULE_CONFIG_COLLECTION); + await this.ruleService.findOne(createRuleConfigDto.ruleId); + const id = uuidv4(); + + try { + // Insert the new document into the 'rule config' collection; + return await collection.save({ + ...createRuleConfigDto, + ownerId: req['user'].username, + _key: id, + }); + } catch (e) { + throw new BadRequestException(e.message); + } + } + + async findAll(options: { + page: number; + limit: number; + }): Promise<{ count: number; data: RuleConfig[] }> { + const { limit, page } = options; + const db = this.arangoDatabaseService.getDatabase(); + const skip = (page - 1) * limit; + try { + const cursor = await db.query( + ` + LET count = LENGTH(FOR doc IN ${RULE_CONFIG_COLLECTION} FILTER doc.edited != @edited RETURN doc) + LET data = ( + FOR config IN ${RULE_CONFIG_COLLECTION} + FILTER config.edited != @edited + sort config.createdAt ASC + LIMIT ${skip}, ${limit} + RETURN config + ) + RETURN { count, data } + `, + { edited: true }, + ); + return await cursor.next(); + } catch (e) { + throw new BadRequestException(e.message); + } + } + + async findOne(id: string): Promise { + const db = this.arangoDatabaseService.getDatabase(); + try { + return await db.collection(RULE_CONFIG_COLLECTION).document(id); + } catch (e) { + throw new NotFoundException(`rule config with id ${id} not found`); + } + } + + async duplicateRuleConfig( + id: string, + updateRuleConfigDto: UpdateRuleConfigDto, + req: Request, + ): Promise { + const db = this.arangoDatabaseService.getDatabase(); + const collection = db.collection(RULE_CONFIG_COLLECTION); + + // check if the rule exists + const existingRuleConfig = await this.findOne(id); + + // check if rule config is already edited + const childRuleConfig = await collection.byExample({ originatedID: id }); + if (childRuleConfig.count > 0) { + throw new ForbiddenException( + `Could not update rule config with id ${id}, rule config is already updated`, + ); + } + const uuid = uuidv4(); + const { _key, _id, _rev, ...rest } = existingRuleConfig; + + // save rule to the database + try { + const rule = await collection.save({ + ...rest, + ...updateRuleConfigDto, + _key: uuid, + originatedID: id, + updatedBy: req['user'].username, + }); + await this.update(id, { edited: true }); + return this.findOne(rule._id); + } catch (e) { + throw new BadRequestException(e.message); + } + } + + async update(id: string, updateRuleConfigDto: any): Promise { + const db = this.arangoDatabaseService.getDatabase(); + const rule = await db + .collection(RULE_CONFIG_COLLECTION) + .update(id, updateRuleConfigDto); + return rule.new; + } + + async remove(id: string, req: Request) { + const database = this.arangoDatabaseService.getDatabase(); + + // check if the rule exists + const existingRuleConfig = await this.findOne(id); + if (existingRuleConfig.state === StateEnum['93_MARKED_FOR_DELETION']) { + throw new BadRequestException( + `Rule config with id ${id} already marked for deletion`, + ); + } + + // Save the rule to the database + try { + await database.collection(RULE_CONFIG_COLLECTION).update(id, { + ...existingRuleConfig, + state: StateEnum['93_MARKED_FOR_DELETION'], + updatedBy: req['user'].username, + }); + return; + } catch (e) { + throw new BadRequestException(e.message); + } + } + + async disableRuleConfig(id: string, req: Request): Promise { + const db = this.arangoDatabaseService.getDatabase(); + + // check if the rule exists + const existingRuleConfig = await this.findOne(id); + if (existingRuleConfig.state === StateEnum['92_DISABLED']) { + throw new BadRequestException( + `Rule config with id ${id} already disabled`, + ); + } + + // Save the updated rule to the database + try { + await db.collection(RULE_CONFIG_COLLECTION).update(id, { + ...existingRuleConfig, + state: StateEnum['92_DISABLED'], + updatedBy: req['user'].username, + }); + return await this.findOne(id); + } catch (e) { + throw new BadRequestException(e.message); + } + } +} diff --git a/src/rule-config/schema/rule-config.schema.ts b/src/rule-config/schema/rule-config.schema.ts new file mode 100644 index 0000000..66e1bbe --- /dev/null +++ b/src/rule-config/schema/rule-config.schema.ts @@ -0,0 +1,90 @@ +import { StateEnum } from '../../rule/schema/rule.schema'; +import { SchemaOptions } from 'arangojs/collection'; + +export const RULE_CONFIG_COLLECTION = 'rule_config'; +export const ruleConfigSchema: { schema: SchemaOptions; computedValues: any } = + { + schema: { + rule: { + properties: { + _key: { type: 'string' }, + desc: { type: 'string' }, + cfg: { type: 'string' }, + state: { + type: 'string', + enum: Object.values(StateEnum), + default: StateEnum['01_DRAFT'], + }, + createdAt: { type: 'string', format: 'date-time' }, + updatedAt: { type: 'string', format: 'date-time' }, + updatedBy: { type: 'string' }, + approverId: { type: 'string' }, + ownerId: { type: 'string' }, + ruleId: { type: 'string' }, + originatedID: { type: 'string', default: null }, + edited: { type: 'boolean', default: false }, + config: { + type: 'object', + properties: { + parameters: { + type: 'object', + additionalProperties: true, + }, + exitConditions: { + type: 'array', + items: { + type: 'object', + properties: { + subRuleRef: { type: 'string' }, + outcome: { type: 'boolean' }, + reason: { type: 'string' }, + }, + }, + }, + bands: { + type: 'array', + items: { + type: 'object', + properties: { + subRuleRef: { type: 'string' }, + upperLimit: { type: ['number', 'null'] }, + lowerLimit: { type: ['number', 'null'] }, + outcome: { type: 'boolean' }, + reason: { type: 'string' }, + }, + }, + }, + cases: { + type: 'array', + items: { + type: 'object', + properties: { + subRuleRef: { type: 'string' }, + value: { type: ['string', 'number'] }, + outcome: { type: 'boolean' }, + reason: { type: 'string' }, + }, + }, + }, + }, + }, + }, + required: ['cfg', 'ruleId', 'state', 'desc', 'ownerId'], + additionalProperties: false, + }, + }, + computedValues: [ + { + name: 'createdAt', + expression: 'RETURN DATE_ISO8601(DATE_NOW())', + computeOn: ['insert'], + overwrite: true, + }, + { + name: 'updatedAt', + expression: 'RETURN DATE_ISO8601(DATE_NOW())', + computeOn: ['insert', 'update'], + overwrite: true, + }, + ], + }; diff --git a/src/rule/dto/create-rule.dto.ts b/src/rule/dto/create-rule.dto.ts new file mode 100644 index 0000000..a94a418 --- /dev/null +++ b/src/rule/dto/create-rule.dto.ts @@ -0,0 +1,35 @@ +import { IsEnum, IsString } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { DataTypeEnum, StateEnum } from '../schema/rule.schema'; + +export class CreateRuleDto { + @ApiProperty() + @IsString() + readonly cfg: string; + + @ApiProperty() + @IsString() + readonly name: string; + + @ApiProperty() + @IsEnum(DataTypeEnum, { + message: () => { + const enumValues = Object.values(DataTypeEnum).join(', '); + return `Data type must be one of the following values : ${enumValues}`; + }, + }) + readonly dataType: DataTypeEnum; + + @ApiProperty() + @IsEnum(StateEnum, { + message: () => { + const enumValues = Object.values(StateEnum).join(', '); + return `State must be one of the following values : ${enumValues}`; + }, + }) + readonly state: StateEnum; + + @ApiProperty() + @IsString() + readonly desc: string; +} diff --git a/src/rule/dto/update-rule.dto.ts b/src/rule/dto/update-rule.dto.ts new file mode 100644 index 0000000..1028628 --- /dev/null +++ b/src/rule/dto/update-rule.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreateRuleDto } from './create-rule.dto'; + +export class UpdateRuleDto extends PartialType(CreateRuleDto) {} diff --git a/src/rule/entities/rule.entity.ts b/src/rule/entities/rule.entity.ts new file mode 100644 index 0000000..bca722b --- /dev/null +++ b/src/rule/entities/rule.entity.ts @@ -0,0 +1,71 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { RuleConfig } from '../../rule-config/entities/rule-config.entity'; +import { IsArray, ValidateNested } from 'class-validator'; +import { Type } from 'class-transformer'; + +export class Rule { + @ApiProperty() + _key: string; + + @ApiProperty() + _id: string; + + @ApiProperty() + _rev: string; + + @ApiProperty() + cfg: string; + + @ApiProperty() + dataType: string; + + @ApiProperty() + name: string; + + @ApiProperty() + state: string; + + @ApiProperty() + desc: string; + + @ApiProperty() + ownerId: string; + + @ApiProperty() + createdAt: Date; + + @ApiProperty() + updatedAt: Date; + + @ApiProperty() + updatedBy: string; + + @ApiProperty() + approverId: string; + + @ApiProperty() + originatedID: string; +} + +export class RuleConfiguration { + @ApiProperty() + cfg: string; + + @ApiProperty() + dataType: string; + + @ApiProperty() + name: string; + + @ApiProperty() + state: string; + + @ApiProperty() + desc: string; + + @ApiProperty({ type: () => [RuleConfig] }) + @IsArray() + @ValidateNested({ each: true }) + @Type(() => RuleConfig) + ruleConfigs: RuleConfig[]; +} diff --git a/src/rule/privilege.constant.ts b/src/rule/privilege.constant.ts new file mode 100644 index 0000000..6b7159c --- /dev/null +++ b/src/rule/privilege.constant.ts @@ -0,0 +1,48 @@ +import { PrivilegeType } from '../privilege/privilege.service'; + +export enum RulePrivileges { + CREATE_RULE = 'SECURITY_CREATE_RULE', + UPDATE_RULE = 'SECURITY_UPDATE_RULE', + GET_RULES = 'SECURITY_GET_ALL_RULES', + GET_RULE = 'SECURITY_GET_RULE', + GET_RULE_RULE_CONFIG = 'SECURITY_GET_RULE_RULE_CONFIG', + DELETE_RULE = 'SECURITY_DELETE_RULE', + DISABLE_RULE = 'SECURITY_DISABLE_RULE', +} +export const RulePrivilegesDefinition: PrivilegeType[] = [ + { + privId: RulePrivileges.CREATE_RULE, + labelName: 'Rule Create ', + description: 'Allows creating a rule', + }, + { + privId: RulePrivileges.UPDATE_RULE, + labelName: 'Rule Update', + description: 'Allows updating a rule', + }, + { + privId: RulePrivileges.GET_RULES, + labelName: 'Rules Get', + description: 'Allows returning all rules', + }, + { + privId: RulePrivileges.GET_RULE_RULE_CONFIG, + labelName: 'Rule rule config Get', + description: 'Allows returning rule with the rule configuration', + }, + { + privId: RulePrivileges.GET_RULE, + labelName: 'Rule Get', + description: 'Allows returning a rule', + }, + { + privId: RulePrivileges.DELETE_RULE, + labelName: 'Rule Delete', + description: 'allows deleting a rule', + }, + { + privId: RulePrivileges.DISABLE_RULE, + labelName: 'Rule Disable', + description: 'disables a rule', + }, +]; diff --git a/src/rule/rule.controller.spec.ts b/src/rule/rule.controller.spec.ts new file mode 100644 index 0000000..a15b3a5 --- /dev/null +++ b/src/rule/rule.controller.spec.ts @@ -0,0 +1,97 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { RuleController } from './rule.controller'; +import { RuleService } from './rule.service'; +import { CanActivate } from '@nestjs/common'; +import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; +import { PrivilegeService } from '../privilege/privilege.service'; +import { RolesGuard } from '../auth/guards/roles.guard'; + +describe('RuleController', () => { + let controller: RuleController; + const mockRuleService = { + findAll: jest.fn().mockImplementation((dto) => { + return [{ ...dto }]; + }), + create: jest.fn().mockImplementation((dto) => { + return { + ...dto, + _key: '364ebb45-aca4-419b-a911-a7aa11f7710b', + _id: 'rule/364ebb45-aca4-419b-a911-a7aa11f7710b', + _rev: '_hl9VTsG---', + }; + }), + update: jest.fn().mockImplementation((id, dto) => { + return { + ...dto, + _key: '364ebb45-aca4-419b-a911-a7aa11f7710b', + _id: 'rule/364ebb45-aca4-419b-a911-a7aa11f7710b', + _rev: '_hl9VTsG---', + originatedID: id, + }; + }), + }; + const mockPrivilegeService = {}; + + beforeEach(async () => { + const mockAuthGuard: CanActivate = { canActivate: jest.fn(() => true) }; + const mockRolesGuard: CanActivate = { canActivate: jest.fn(() => true) }; + const module: TestingModule = await Test.createTestingModule({ + controllers: [RuleController], + providers: [RuleService], + }) + .overrideProvider(RuleService) + .useValue(mockRuleService) + .overrideGuard(JwtAuthGuard) + .useValue(mockAuthGuard) + .overrideGuard(RolesGuard) + .useValue(mockRolesGuard) + .overrideProvider(PrivilegeService) + .useValue(mockPrivilegeService) + .compile(); + + controller = module.get(RuleController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); + + it('should create a new rule', async () => { + expect( + await mockRuleService.create({ + cfg: 'Test', + state: '01_ABANDONED', + dataType: 'currency', + desc: 'Test', + }), + ).toEqual({ + _id: 'rule/364ebb45-aca4-419b-a911-a7aa11f7710b', + _key: '364ebb45-aca4-419b-a911-a7aa11f7710b', + _rev: '_hl9VTsG---', + cfg: 'Test', + state: '01_ABANDONED', + dataType: 'currency', + desc: 'Test', + }); + }); + it('should update a rule', async () => { + const id = '364ebb45-aca4-419b-a911-a7aa11f7710b'; + expect( + await mockRuleService.update(id, { + cfg: 'Test', + state: '01_ABANDONED', + dataType: 'currency', + desc: 'Test', + }), + ).toEqual({ + _id: 'rule/364ebb45-aca4-419b-a911-a7aa11f7710b', + _key: '364ebb45-aca4-419b-a911-a7aa11f7710b', + _rev: '_hl9VTsG---', + cfg: 'Test', + state: '01_ABANDONED', + dataType: 'currency', + desc: 'Test', + originatedID: id, + }); + }); +}); diff --git a/src/rule/rule.controller.ts b/src/rule/rule.controller.ts new file mode 100644 index 0000000..f49d136 --- /dev/null +++ b/src/rule/rule.controller.ts @@ -0,0 +1,111 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, + UseGuards, + Request, + Query, + DefaultValuePipe, + ParseIntPipe, +} from '@nestjs/common'; +import { RuleService } from './rule.service'; +import { CreateRuleDto } from './dto/create-rule.dto'; +import { UpdateRuleDto } from './dto/update-rule.dto'; +import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; +import { ApiOkResponse, ApiQuery, ApiTags } from '@nestjs/swagger'; +import { Rule, RuleConfiguration } from './entities/rule.entity'; +import { RolesGuard } from '../auth/guards/roles.guard'; +import { Roles } from '../auth/decorators/roles.decorator'; +import { RulePrivileges } from './privilege.constant'; + +@Controller('rule') +@ApiTags('rule') +@UseGuards(JwtAuthGuard, RolesGuard) +export class RuleController { + constructor(private readonly ruleService: RuleService) {} + + @Roles(RulePrivileges.CREATE_RULE) + @Post() + @ApiOkResponse({ description: 'Created Rule', type: Rule }) + async create(@Body() createRuleDto: CreateRuleDto, @Request() req) { + return await this.ruleService.create(createRuleDto, req); + } + + @Roles(RulePrivileges.GET_RULES) + @ApiOkResponse({ description: 'Get all rules', type: Rule, isArray: true }) + @ApiQuery({ name: 'page', required: false }) + @ApiQuery({ name: 'limit', required: false }) + @Get() + findAll( + @Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number, + @Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number, + ): Promise<{ count: number; rules: Rule[] }> { + const queryParams = { page, limit }; + return this.ruleService.findAll(queryParams); + } + + @Roles(RulePrivileges.GET_RULE_RULE_CONFIG) + @ApiOkResponse({ + description: 'Get all rule and configurations', + type: RuleConfiguration, + isArray: true, + }) + @ApiQuery({ name: 'page', required: false }) + @ApiQuery({ name: 'limit', required: false }) + @Get('/rule-config') + findRuleConfigs( + @Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number, + @Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number, + ): Promise<{ count: number; rules: RuleConfiguration[] }> { + const queryParams = { page, limit }; + return this.ruleService.findRuleConfigs(queryParams); + } + + @Roles(RulePrivileges.GET_RULE) + @Get(':id') + @ApiOkResponse({ + description: 'Find single rule by id', + type: Rule, + }) + async findOne(@Param('id') id: string): Promise { + return await this.ruleService.findOne(id); + } + + @Roles(RulePrivileges.UPDATE_RULE) + @Patch(':id') + @ApiOkResponse({ + description: 'Update single rule', + type: Rule, + }) + async update( + @Param('id') id: string, + @Body() updateRuleDto: UpdateRuleDto, + @Request() req, + ) { + return await this.ruleService.duplicateRule(id, updateRuleDto, req); + } + + @Roles(RulePrivileges.DELETE_RULE) + @Delete(':id') + @ApiOkResponse({ + description: 'Delete a single rule', + type: Rule, + }) + async remove(@Param('id') id: string, @Request() req) { + return await this.ruleService.remove(id, req); + } + + @Roles(RulePrivileges.DISABLE_RULE) + @Post(':id/disable') + @ApiOkResponse({ + description: 'Disabling a single rule', + type: Rule, + }) + async disableRule(@Param('id') id: string, @Request() req): Promise { + return await this.ruleService.disableRule(id, req); + } +} diff --git a/src/rule/rule.module.ts b/src/rule/rule.module.ts new file mode 100644 index 0000000..4db8156 --- /dev/null +++ b/src/rule/rule.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { RuleService } from './rule.service'; +import { RuleController } from './rule.controller'; +import { ArangoDatabaseService } from '../arango-database/arango-database.service'; +import { PrivilegeService } from '../privilege/privilege.service'; + +@Module({ + controllers: [RuleController], + providers: [RuleService, ArangoDatabaseService, PrivilegeService], + exports: [RuleService], +}) +export class RuleModule {} diff --git a/src/rule/rule.service.spec.ts b/src/rule/rule.service.spec.ts new file mode 100644 index 0000000..062dbc2 --- /dev/null +++ b/src/rule/rule.service.spec.ts @@ -0,0 +1,26 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { RuleService } from './rule.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('RuleService', () => { + let service: RuleService; + const mockArangoDatabaseService = jest.fn(); + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [RuleService], + }) + .useMocker(createMock) + .compile(); + + service = module.get(RuleService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); + + it('should create a rule', () => { + expect(mockArangoDatabaseService).toBeDefined(); + }); +}); diff --git a/src/rule/rule.service.ts b/src/rule/rule.service.ts new file mode 100644 index 0000000..1e0dbbf --- /dev/null +++ b/src/rule/rule.service.ts @@ -0,0 +1,212 @@ +import { + BadRequestException, + ForbiddenException, + Injectable, + NotFoundException, +} from '@nestjs/common'; +import { CreateRuleDto } from './dto/create-rule.dto'; +import { UpdateRuleDto } from './dto/update-rule.dto'; +import { ArangoDatabaseService } from '../arango-database/arango-database.service'; +import { Request } from 'express'; +import { Rule, RuleConfiguration } from './entities/rule.entity'; +import { RULE_COLLECTION, StateEnum } from './schema/rule.schema'; +import { v4 as uuidv4 } from 'uuid'; +import { RULE_CONFIG_COLLECTION } from '../rule-config/schema/rule-config.schema'; + +@Injectable() +export class RuleService { + constructor(private readonly arangoDatabaseService: ArangoDatabaseService) {} + + async create(createRuleDto: CreateRuleDto, req: Request) { + const db = this.arangoDatabaseService.getDatabase(); + const collection = db.collection(RULE_COLLECTION); + const id = uuidv4(); + + try { + // Insert the new document into the 'rule' collection; + return await collection.save({ + ...createRuleDto, + ownerId: req['user'].username, + _key: id, + }); + } catch (e) { + throw new BadRequestException(e.message); + } + } + + async findAll(options: { + page: number; + limit: number; + }): Promise<{ count: number; rules: Rule[] }> { + const { limit, page } = options; + const db = this.arangoDatabaseService.getDatabase(); + const skip = (page - 1) * limit; + try { + const cursor = await db.query( + ` + LET count = LENGTH(FOR doc IN ${RULE_COLLECTION} FILTER doc.edited != @edited RETURN doc) + LET rules = ( + FOR rule IN ${RULE_COLLECTION} + FILTER rule.edited != @edited + sort rule.createdAt ASC + LIMIT ${skip}, ${limit} + RETURN rule + ) + RETURN { count, rules } + `, + { edited: true }, + ); + return await cursor.next(); + } catch (e) { + throw new BadRequestException(e.message); + } + } + async findRuleConfigs(options: { + page: number; + limit: number; + }): Promise<{ count: number; rules: RuleConfiguration[] }> { + const { limit, page } = options; + const db = this.arangoDatabaseService.getDatabase(); + const skip = (page - 1) * limit; + try { + const cursor = await db.query( + ` + LET count = LENGTH(FOR doc IN ${RULE_COLLECTION} FILTER doc.edited != @edited RETURN doc) + LET rules = ( + FOR rule IN ${RULE_COLLECTION} + FILTER rule.edited != @edited + sort rule.createdAt ASC + LIMIT ${skip}, ${limit} + LET configurations = ( + FOR config IN ${RULE_CONFIG_COLLECTION} + FILTER config.ruleId == rule._key + RETURN config + ) + RETURN MERGE( + { + name:rule.name, + cfg:rule.cfg, + state:rule.state, + ownerId:rule.ownerId, + updatedBy:rule.updatedBy, + originatedID:rule.originatedID + }, + { ruleConfigs: configurations} + ) + ) + RETURN { count, rules} + `, + { edited: true }, + ); + return await cursor.next(); + } catch (e) { + throw new BadRequestException(e.message); + } + } + + async findOne(id: string): Promise { + const db = this.arangoDatabaseService.getDatabase(); + + try { + return await db.collection(RULE_COLLECTION).document(id); + } catch (e) { + throw new NotFoundException(`rule with id ${id} not found`); + } + } + + async duplicateRule( + id: string, + updateRuleDto: UpdateRuleDto, + req: Request, + ): Promise { + const db = this.arangoDatabaseService.getDatabase(); + const collection = db.collection(RULE_COLLECTION); + + // check if the rule exists + const existingRule = await this.findOne(id); + + // check if rule is already edited + const childRule = await collection.byExample({ originatedID: id }); + if (childRule.count > 0) { + throw new ForbiddenException( + `Could not update rule with id ${id}, rule is already updated`, + ); + } + + const uuid = uuidv4(); + const { _key, _id, _rev, ...rest } = existingRule; + + // save rule to the database + try { + const rule = await collection.save({ + ...rest, + ...updateRuleDto, + _key: uuid, + originatedID: id, + updatedBy: req['user'].username, + }); + await this.update(id, { edited: true }); + return this.findOne(rule._id); + } catch (e) { + throw new BadRequestException(e.message); + } + } + + async update(id: string, updateRuleDto: any): Promise { + try { + const db = this.arangoDatabaseService.getDatabase(); + const rule = await db + .collection(RULE_COLLECTION) + .update(id, updateRuleDto); + return rule.new; + } catch (error) { + throw new BadRequestException(error.message); + } + } + + async remove(id: string, req: Request) { + const db = this.arangoDatabaseService.getDatabase(); + + // check if the rule exists + const existingRule = await this.findOne(id); + if (existingRule.state === StateEnum['93_MARKED_FOR_DELETION']) { + throw new BadRequestException( + `Rule with id ${id} already marked for deletion`, + ); + } + + // Save the rule to the database + try { + await db.collection(RULE_COLLECTION).update(id, { + ...existingRule, + state: StateEnum['93_MARKED_FOR_DELETION'], + updatedBy: req['user'].username, + }); + return; + } catch (e) { + throw new BadRequestException(e.message); + } + } + + async disableRule(id: string, req: Request): Promise { + const db = this.arangoDatabaseService.getDatabase(); + + // check if the rule exists + const existingRule = await this.findOne(id); + if (existingRule.state === StateEnum['92_DISABLED']) { + throw new BadRequestException(`Rule with id ${id} already disabled`); + } + + // Save the updated rule to the database + try { + await db.collection(RULE_COLLECTION).update(id, { + ...existingRule, + state: StateEnum['92_DISABLED'], + updatedBy: req['user'].username, + }); + return await this.findOne(id); + } catch (e) { + throw new BadRequestException(e.message); + } + } +} diff --git a/src/rule/schema/rule.schema.ts b/src/rule/schema/rule.schema.ts new file mode 100644 index 0000000..efa8d11 --- /dev/null +++ b/src/rule/schema/rule.schema.ts @@ -0,0 +1,66 @@ +import { SchemaOptions } from 'arangojs/collection'; + +export const RULE_COLLECTION = 'rule'; +export enum StateEnum { + '01_DRAFT' = '01_DRAFT', + '10_PENDING_REVIEW' = '10_PENDING_REVIEW', + '11_REJECTED' = '11_REJECTED', + '12_WITHDRAWN' = '12_WITHDRAWN', + '20_APPROVED' = '20_APPROVED', + '30_DEPLOYED' = '30_DEPLOYED', + '32_RETIRED' = '32_RETIRED', + '90_ABANDONED' = '90_ABANDONED', + '91_ARCHIVED' = '91_ARCHIVED', + '92_DISABLED' = '92_DISABLED', + '93_MARKED_FOR_DELETION' = '93_MARKED_FOR_DELETION', +} + +export enum DataTypeEnum { + 'CURRENCY' = 'CURRENCY', + 'NUMERIC' = 'NUMERIC', + 'TIME' = 'TIME', + 'CALENDAR_DATE_TIME' = 'CALENDER_DATE_TIME', + 'TEXT' = 'TEXT', +} + +export const ruleSchema: { schema: SchemaOptions; computedValues: any } = { + schema: { + rule: { + properties: { + _key: { type: 'string' }, + cfg: { type: 'string' }, + name: { type: 'string' }, + dataType: { type: 'string', enum: Object.values(DataTypeEnum) }, + state: { + type: 'string', + enum: Object.values(StateEnum), + default: StateEnum['01_DRAFT'], + }, + desc: { type: 'string' }, + ownerId: { type: 'string' }, + createdAt: { type: 'string', format: 'date-time' }, + updatedAt: { type: 'string', format: 'date-time' }, + updatedBy: { type: 'string' }, + approverId: { type: 'string' }, + originatedID: { type: 'string', default: null }, + edited: { type: 'boolean', default: false }, + }, + required: ['name', 'cfg', 'dataType', 'state', 'desc', 'ownerId'], + additionalProperties: false, + }, + }, + computedValues: [ + { + name: 'createdAt', + expression: 'RETURN DATE_ISO8601(DATE_NOW())', + computeOn: ['insert'], + overwrite: true, + }, + { + name: 'updatedAt', + expression: 'RETURN DATE_ISO8601(DATE_NOW())', + computeOn: ['insert', 'update'], + overwrite: true, + }, + ], +}; diff --git a/src/typology-config/dto/create-typology-config.dto.ts b/src/typology-config/dto/create-typology-config.dto.ts new file mode 100644 index 0000000..43e6a73 --- /dev/null +++ b/src/typology-config/dto/create-typology-config.dto.ts @@ -0,0 +1 @@ +export class CreateTypologyConfigDto {} diff --git a/src/typology-config/dto/update-typology-config.dto.ts b/src/typology-config/dto/update-typology-config.dto.ts new file mode 100644 index 0000000..5498eb2 --- /dev/null +++ b/src/typology-config/dto/update-typology-config.dto.ts @@ -0,0 +1,6 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreateTypologyConfigDto } from './create-typology-config.dto'; + +export class UpdateTypologyConfigDto extends PartialType( + CreateTypologyConfigDto, +) {} diff --git a/src/typology-config/entities/typology-config.entity.ts b/src/typology-config/entities/typology-config.entity.ts new file mode 100644 index 0000000..47c7541 --- /dev/null +++ b/src/typology-config/entities/typology-config.entity.ts @@ -0,0 +1 @@ +export class TypologyConfig {} diff --git a/src/typology-config/typology-config.controller.spec.ts b/src/typology-config/typology-config.controller.spec.ts new file mode 100644 index 0000000..12ba684 --- /dev/null +++ b/src/typology-config/typology-config.controller.spec.ts @@ -0,0 +1,23 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TypologyConfigController } from './typology-config.controller'; +import { TypologyConfigService } from './typology-config.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('TypologyConfigController', () => { + let controller: TypologyConfigController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [TypologyConfigController], + providers: [TypologyConfigService], + }) + .useMocker(createMock) + .compile(); + + controller = module.get(TypologyConfigController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/typology-config/typology-config.controller.ts b/src/typology-config/typology-config.controller.ts new file mode 100644 index 0000000..b5020c2 --- /dev/null +++ b/src/typology-config/typology-config.controller.ts @@ -0,0 +1,48 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, +} from '@nestjs/common'; +import { TypologyConfigService } from './typology-config.service'; +import { CreateTypologyConfigDto } from './dto/create-typology-config.dto'; +import { UpdateTypologyConfigDto } from './dto/update-typology-config.dto'; +import { ApiExcludeController, ApiTags } from '@nestjs/swagger'; + +@ApiExcludeController() +@Controller('typology-config') +@ApiTags('typology Config') +export class TypologyConfigController { + constructor(private readonly typologyConfigService: TypologyConfigService) {} + + @Post() + create(@Body() createTypologyConfigDto: CreateTypologyConfigDto) { + return this.typologyConfigService.create(createTypologyConfigDto); + } + + @Get() + findAll() { + return this.typologyConfigService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.typologyConfigService.findOne(+id); + } + + @Patch(':id') + update( + @Param('id') id: string, + @Body() updateTypologyConfigDto: UpdateTypologyConfigDto, + ) { + return this.typologyConfigService.update(+id, updateTypologyConfigDto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.typologyConfigService.remove(+id); + } +} diff --git a/src/typology-config/typology-config.module.ts b/src/typology-config/typology-config.module.ts new file mode 100644 index 0000000..557250c --- /dev/null +++ b/src/typology-config/typology-config.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { TypologyConfigService } from './typology-config.service'; +import { TypologyConfigController } from './typology-config.controller'; + +@Module({ + controllers: [TypologyConfigController], + providers: [TypologyConfigService], +}) +export class TypologyConfigModule {} diff --git a/src/typology-config/typology-config.service.spec.ts b/src/typology-config/typology-config.service.spec.ts new file mode 100644 index 0000000..bf15344 --- /dev/null +++ b/src/typology-config/typology-config.service.spec.ts @@ -0,0 +1,21 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TypologyConfigService } from './typology-config.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('TypologyConfigService', () => { + let service: TypologyConfigService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [TypologyConfigService], + }) + .useMocker(createMock) + .compile(); + + service = module.get(TypologyConfigService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/typology-config/typology-config.service.ts b/src/typology-config/typology-config.service.ts new file mode 100644 index 0000000..55495a0 --- /dev/null +++ b/src/typology-config/typology-config.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@nestjs/common'; +import { CreateTypologyConfigDto } from './dto/create-typology-config.dto'; +import { UpdateTypologyConfigDto } from './dto/update-typology-config.dto'; + +@Injectable() +export class TypologyConfigService { + create(createTypologyConfigDto: CreateTypologyConfigDto) { + return 'This action adds a new typologyConfig'; + } + + findAll() { + return `This action returns all typologyConfig`; + } + + findOne(id: number) { + return `This action returns a #${id} typologyConfig`; + } + + update(id: number, updateTypologyConfigDto: UpdateTypologyConfigDto) { + return `This action updates a #${id} typologyConfig`; + } + + remove(id: number) { + return `This action removes a #${id} typologyConfig`; + } +} diff --git a/src/typology/dto/create-typology.dto.ts b/src/typology/dto/create-typology.dto.ts new file mode 100644 index 0000000..93b8d79 --- /dev/null +++ b/src/typology/dto/create-typology.dto.ts @@ -0,0 +1 @@ +export class CreateTypologyDto {} diff --git a/src/typology/dto/update-typology.dto.ts b/src/typology/dto/update-typology.dto.ts new file mode 100644 index 0000000..efe0958 --- /dev/null +++ b/src/typology/dto/update-typology.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreateTypologyDto } from './create-typology.dto'; + +export class UpdateTypologyDto extends PartialType(CreateTypologyDto) {} diff --git a/src/typology/entities/typology.entity.ts b/src/typology/entities/typology.entity.ts new file mode 100644 index 0000000..fc6233e --- /dev/null +++ b/src/typology/entities/typology.entity.ts @@ -0,0 +1 @@ +export class Typology {} diff --git a/src/typology/typology.controller.spec.ts b/src/typology/typology.controller.spec.ts new file mode 100644 index 0000000..7593614 --- /dev/null +++ b/src/typology/typology.controller.spec.ts @@ -0,0 +1,23 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TypologyController } from './typology.controller'; +import { TypologyService } from './typology.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('TypologyController', () => { + let controller: TypologyController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [TypologyController], + providers: [TypologyService], + }) + .useMocker(createMock) + .compile(); + + controller = module.get(TypologyController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/typology/typology.controller.ts b/src/typology/typology.controller.ts new file mode 100644 index 0000000..29c8113 --- /dev/null +++ b/src/typology/typology.controller.ts @@ -0,0 +1,48 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, +} from '@nestjs/common'; +import { TypologyService } from './typology.service'; +import { CreateTypologyDto } from './dto/create-typology.dto'; +import { UpdateTypologyDto } from './dto/update-typology.dto'; +import { ApiExcludeController, ApiTags } from '@nestjs/swagger'; + +@ApiExcludeController() +@Controller('typology') +@ApiTags('typology') +export class TypologyController { + constructor(private readonly typologyService: TypologyService) {} + + @Post() + create(@Body() createTypologyDto: CreateTypologyDto) { + return this.typologyService.create(createTypologyDto); + } + + @Get() + findAll() { + return this.typologyService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.typologyService.findOne(+id); + } + + @Patch(':id') + update( + @Param('id') id: string, + @Body() updateTypologyDto: UpdateTypologyDto, + ) { + return this.typologyService.update(+id, updateTypologyDto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.typologyService.remove(+id); + } +} diff --git a/src/typology/typology.module.ts b/src/typology/typology.module.ts new file mode 100644 index 0000000..3fbba39 --- /dev/null +++ b/src/typology/typology.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { TypologyService } from './typology.service'; +import { TypologyController } from './typology.controller'; + +@Module({ + controllers: [TypologyController], + providers: [TypologyService], +}) +export class TypologyModule {} diff --git a/src/typology/typology.service.spec.ts b/src/typology/typology.service.spec.ts new file mode 100644 index 0000000..f755ecb --- /dev/null +++ b/src/typology/typology.service.spec.ts @@ -0,0 +1,21 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TypologyService } from './typology.service'; +import { createMock } from '@golevelup/ts-jest'; + +describe('TypologyService', () => { + let service: TypologyService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [TypologyService], + }) + .useMocker(createMock) + .compile(); + + service = module.get(TypologyService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/typology/typology.service.ts b/src/typology/typology.service.ts new file mode 100644 index 0000000..d248388 --- /dev/null +++ b/src/typology/typology.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@nestjs/common'; +import { CreateTypologyDto } from './dto/create-typology.dto'; +import { UpdateTypologyDto } from './dto/update-typology.dto'; + +@Injectable() +export class TypologyService { + create(createTypologyDto: CreateTypologyDto) { + return 'This action adds a new typology'; + } + + findAll() { + return `This action returns all typology`; + } + + findOne(id: number) { + return `This action returns a #${id} typology`; + } + + update(id: number, updateTypologyDto: UpdateTypologyDto) { + return `This action updates a #${id} typology`; + } + + remove(id: number) { + return `This action removes a #${id} typology`; + } +} diff --git a/test/app.e2e-spec.ts b/test/app.e2e-spec.ts new file mode 100644 index 0000000..826fcf1 --- /dev/null +++ b/test/app.e2e-spec.ts @@ -0,0 +1,33 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication, ValidationPipe } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from '../src/app.module'; +import { faker } from '@faker-js/faker'; +import { user } from './mocks/userMocks'; + +jest.setTimeout(50000); +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + app.useGlobalPipes(new ValidationPipe()); + await app.init(); + }); + afterEach(async () => { + await app.close(); + }); + + describe('/ e2e Should check the application is up', () => { + it('/ (GET) API is running', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Api is running!'); + }); + }); +}); diff --git a/test/auth.e2e-spec.ts b/test/auth.e2e-spec.ts new file mode 100644 index 0000000..59e2332 --- /dev/null +++ b/test/auth.e2e-spec.ts @@ -0,0 +1,58 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication, ValidationPipe } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from '../src/app.module'; +import { faker } from '@faker-js/faker'; +import { user } from './mocks/userMocks'; +import { assignPrivileges } from './utils'; + +jest.setTimeout(50000); +describe('AppController (e2e)', () => { + let app: INestApplication; + let userToken: string; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + app.useGlobalPipes(new ValidationPipe()); + await app.init(); + }); + afterEach(async () => { + await app.close(); + }); + + describe('/auth e2e tests', () => { + it('/auth/login (POST) should login a user', async () => { + const response = await request(app.getHttpServer()) + .post('/auth/login') + .send(user); + expect(response.status).toBe(201); + expect(response.body.access_token).toBeDefined(); + expect(response.body.token_type).toEqual('Bearer'); + userToken = response.body.access_token; + }); + + it('should reject invalid jwt', async () => { + const token = faker.string.uuid(); + const response = await request(app.getHttpServer()) + .get('/rule') + .set('Authorization', `Bearer ${token}`); + expect(response.status).toBe(401); + }); + + it('should return a user profile', async () => { + const response = await request(app.getHttpServer()) + .get('/auth/profile') + .set('Authorization', `Bearer ${userToken}`); + expect(response.status).toBe(200); + }); + + it('should assign a user necessary privileges', async () => { + const response = await assignPrivileges(userToken, user.username); + expect(response.status).toBe(200); + }); + }); +}); diff --git a/test/jest-e2e.json b/test/jest-e2e.json new file mode 100644 index 0000000..e9d912f --- /dev/null +++ b/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/test/mocks/mocks.ts b/test/mocks/mocks.ts new file mode 100644 index 0000000..5a16b41 --- /dev/null +++ b/test/mocks/mocks.ts @@ -0,0 +1,45 @@ +import { faker } from '@faker-js/faker'; +import { DataTypeEnum, StateEnum } from '../../src/rule/schema/rule.schema'; + +export const rule = { + name: faker.string.sample(), + cfg: faker.string.sample(), + dataType: DataTypeEnum['CURRENCY'], + state: StateEnum['01_DRAFT'], + desc: faker.string.sample(), +}; + +export const ruleConfig = { + cfg: faker.string.sample(), + state: StateEnum['01_DRAFT'], + ruleId: faker.string.uuid(), + desc: faker.string.sample(), + config: { + parameters: { + maxQueryLimit: 3, + tolerance: 0.1, + }, + exitConditions: [ + { + subRuleRef: '.x00', + outcome: false, + reason: 'Incoming transaction is unsuccessful', + }, + ], + cases: [ + { + subRuleRef: '.00', + outcome: false, + reason: + 'The transaction type is not defined in this rule configuration', + value: 'UNDEFINED', + }, + { + subRuleRef: '.01', + value: 'WITHDRAWAL', + outcome: true, + reason: 'The transaction is identified as a cash withdrawal', + }, + ], + }, +}; diff --git a/test/mocks/userMocks.ts b/test/mocks/userMocks.ts new file mode 100644 index 0000000..132dacb --- /dev/null +++ b/test/mocks/userMocks.ts @@ -0,0 +1,6 @@ +export const user = { + grant_type: 'password', + client_id: 'security-bc-ui', + username: 'admin', + password: 'superMegaPass', +}; diff --git a/test/rule-config.e2e-spec.ts b/test/rule-config.e2e-spec.ts new file mode 100644 index 0000000..194f42b --- /dev/null +++ b/test/rule-config.e2e-spec.ts @@ -0,0 +1,145 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication, ValidationPipe } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from '../src/app.module'; +import { faker } from '@faker-js/faker'; +import { StateEnum } from '../src/rule/schema/rule.schema'; +import { user } from './mocks/userMocks'; +import { rule, ruleConfig } from './mocks/mocks'; +import { assignPrivileges } from './utils'; + +jest.setTimeout(50000); +describe('AppController (e2e)', () => { + let app: INestApplication; + let userToken: string; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + app.useGlobalPipes(new ValidationPipe()); + await app.init(); + }); + afterEach(async () => { + await app.close(); + }); + + const loginUser = async () => { + return request(app.getHttpServer()) + .post('/auth/login') + .send(user) + .expect('Content-Type', /json/); + }; + const createRule = async () => { + const response = await request(app.getHttpServer()) + .post('/rule') + .set('Authorization', `Bearer ${userToken}`) + .send({ + ...rule, + }); + return response.body; + }; + + const createRuleConfig = async () => { + const ruleId = (await createRule())._key; + return await request(app.getHttpServer()) + .post('/rule-config') + .set('Authorization', `Bearer ${userToken}`) + .send({ + ...ruleConfig, + ruleId, + }); + }; + + describe('/rule-config e2e tests', () => { + it('/auth/login (POST) should login a user', async () => { + const response = await loginUser(); + expect(response.status).toBe(201); + expect(response.body.access_token).toBeDefined(); + expect(response.body.token_type).toEqual('Bearer'); + userToken = response.body.access_token; + await assignPrivileges(userToken, user.username); + }); + + it('/ (POST) should create a new rule config', async () => { + const ruleId = (await createRule())._key; + const response = await request(app.getHttpServer()) + .post('/rule-config') + .set('Authorization', `Bearer ${userToken}`) + .send({ + ...ruleConfig, + ruleId, + }); + expect(response.status).toBe(201); + }); + + it('/ (POST) should fail to create a new rule config with invalid rule Id', async () => { + const ruleId = faker.string.uuid(); + const response = await request(app.getHttpServer()) + .post('/rule-config') + .set('Authorization', `Bearer ${userToken}`) + .send({ + ...ruleConfig, + ruleId: ruleId, + }); + expect(response.status).toBe(404); + }); + + it('/:id (GET) should get a single rule config', async () => { + const ruleConfig = await createRuleConfig(); + const id = ruleConfig.body._key; + + const result = await request(app.getHttpServer()) + .get(`/rule-config/${id}`) + .set('Authorization', `Bearer ${userToken}`); + expect(result.status).toBe(200); + }); + + it('/:id (GET) should fail on non existing rule config', async () => { + const id = faker.string.uuid(); + const result = await request(app.getHttpServer()) + .get(`/rule-config/${id}`) + .set('Authorization', `Bearer ${userToken}`); + expect(result.status).toBe(404); + }); + + it('/:id (PATCH) should update an existing rule config', async () => { + const ruleConfig = await createRuleConfig(); + const id = ruleConfig.body._key; + + const result = await request(app.getHttpServer()) + .patch(`/rule-config/${id}`) + .set('Authorization', `Bearer ${userToken}`) + .send({ + cfg: faker.string.sample(), + state: StateEnum['90_ABANDONED'], + ruleId: id, + desc: faker.string.sample(), + }); + expect(result.status).toBe(200); + expect(result.body.originatedID).toBe(id); + }); + + it('/:id/disable (POST) should disable an existing rule', async () => { + const ruleConfig = await createRuleConfig(); + const id = ruleConfig.body._key; + + const response = await request(app.getHttpServer()) + .post(`/rule-config/${id}/disable`) + .set('Authorization', `Bearer ${userToken}`); + expect(response.status).toBe(201); + }); + + it('/:id (DELETE) should make a rule for deletion', async () => { + const ruleConfig = await createRuleConfig(); + const id = ruleConfig.body._key; + + const response = await request(app.getHttpServer()) + .delete(`/rule-config/${id}`) + .set('Authorization', `Bearer ${userToken}`); + expect(response.status).toBe(200); + }); + }); +}); diff --git a/test/rule.e2e-spec.ts b/test/rule.e2e-spec.ts new file mode 100644 index 0000000..590e31e --- /dev/null +++ b/test/rule.e2e-spec.ts @@ -0,0 +1,143 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication, ValidationPipe } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from '../src/app.module'; +import { faker } from '@faker-js/faker'; +import { StateEnum } from '../src/rule/schema/rule.schema'; +import { user } from './mocks/userMocks'; +import { rule } from './mocks/mocks'; +import { assignPrivileges } from './utils'; + +jest.setTimeout(50000); +describe('AppController (e2e)', () => { + let app: INestApplication; + let userToken: string; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + app.useGlobalPipes(new ValidationPipe()); + await app.init(); + }); + + const loginUser = async () => { + return request(app.getHttpServer()) + .post('/auth/login') + .send(user) + .expect('Content-Type', /json/); + }; + const getRules = async () => { + const response = await request(app.getHttpServer()) + .get('/rule') + .set('Authorization', `Bearer ${userToken}`); + return response.body.rules; + }; + + const createRule = async () => { + const response = await request(app.getHttpServer()) + .post('/rule') + .set('Authorization', `Bearer ${userToken}`) + .send({ + ...rule, + }); + return response.body; + }; + + describe('/auth e2e tests', () => { + it('/auth/login (POST) should login a user', async () => { + const response = await loginUser(); + expect(response.status).toBe(201); + expect(response.body.access_token).toBeDefined(); + expect(response.body.token_type).toEqual('Bearer'); + userToken = response.body.access_token; + await assignPrivileges(userToken, user.username); + }); + }); + + describe('/rule e2e tests', () => { + it('/ (POST) should create a new rule', async () => { + const response = await request(app.getHttpServer()) + .post('/rule') + .set('Authorization', `Bearer ${userToken}`) + .send({ + ...rule, + }); + expect(response.status).toBe(201); + }); + + it('/ (POST) should fail on invalid state enum', async () => { + const response = await request(app.getHttpServer()) + .post('/rule') + .set('Authorization', `Bearer ${userToken}`) + .send({ + ...rule, + state: faker.string.sample(), + }); + expect(response.status).toBe(400); + }); + + it('/ (GET) get all rules', async () => { + const response = await request(app.getHttpServer()) + .get('/rule') + .set('Authorization', `Bearer ${userToken}`); + expect(response.status).toBe(200); + }); + + it('/:id (GET) should get a single rule', async () => { + const id = (await createRule())._key; + const result = await request(app.getHttpServer()) + .get(`/rule/${id}`) + .set('Authorization', `Bearer ${userToken}`); + expect(result.status).toBe(200); + }); + + it('/:id (GET) should fail on non existing rule', async () => { + const id = faker.string.uuid(); + const result = await request(app.getHttpServer()) + .get(`/rule/${id}`) + .set('Authorization', `Bearer ${userToken}`); + expect(result.status).toBe(404); + }); + + it('/:id (PATCH) should update an existing rule', async () => { + const id = (await createRule())._key; + const result = await request(app.getHttpServer()) + .patch(`/rule/${id}`) + .set('Authorization', `Bearer ${userToken}`) + .send({ + cfg: faker.string.sample(), + state: StateEnum['90_ABANDONED'], + desc: faker.string.sample(), + }); + expect(result.status).toBe(200); + }); + + it('/:id/disable (POST) should disable an existing rule', async () => { + const id = (await createRule())._key; + const response = await request(app.getHttpServer()) + .post(`/rule/${id}/disable`) + .set('Authorization', `Bearer ${userToken}`); + expect(response.status).toBe(201); + }); + + it('/:id (DELETE) should make a rule for deletion', async () => { + const id = (await createRule())._key; + const response = await request(app.getHttpServer()) + .delete(`/rule/${id}`) + .set('Authorization', `Bearer ${userToken}`); + expect(response.status).toBe(200); + }); + + it('/rule-config (GET) should return rules with the configuration', async () => { + await createRule(); + const response = await request(app.getHttpServer()) + .get(`/rule/rule-config`) + .set('Authorization', `Bearer ${userToken}`); + expect(response.status).toBe(200); + expect(response.body.rules[0].ruleConfigs).toBeDefined(); + }); + }); +}); diff --git a/test/utils.ts b/test/utils.ts new file mode 100644 index 0000000..01e92ca --- /dev/null +++ b/test/utils.ts @@ -0,0 +1,22 @@ +import { RulePrivilegesDefinition } from '../src/rule/privilege.constant'; +import { RuleConfigPrivilegesDefinition } from '../src/rule-config/privilege.constant'; +import { AUTHORIZATION_BASEURL } from '../src/constants'; + +export const assignPrivileges = async (userToken: string, username: string) => { + const privileges = [ + ...RulePrivilegesDefinition, + ...RuleConfigPrivilegesDefinition, + ].map((privilege) => privilege.privId); + + return await fetch( + `${AUTHORIZATION_BASEURL}/platformRoles/${username}/add_privileges`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${userToken}`, + }, + body: JSON.stringify(privileges), + }, + ); +}; diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..64f86c6 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..95f5641 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "ES2021", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false + } +}

f2ycXzH;dHJr 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 D!$oc{ literal 0 HcmV?d00001 diff --git a/assets/docker_ps_list.png b/assets/docker_ps_list.png new file mode 100644 index 0000000000000000000000000000000000000000..668e651d87b7137e5e6b7409882d0ef78bef9486 GIT binary patch literal 125836 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 H{`&s_F<#XO literal 0 HcmV?d00001 diff --git a/assets/login_response.png b/assets/login_response.png new file mode 100644 index 0000000000000000000000000000000000000000..42f22d1b4e9c6563f317b6de2ff7c04d81c976f1 GIT binary patch literal 278626 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%0DydbgF-Le?h<=YYa4mj}8YbfD2)am{H51yX&%Vf2 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