From 80685c1b8a0c477b2852f9659fbd213601053f70 Mon Sep 17 00:00:00 2001 From: "Federico M. Facca" Date: Mon, 31 Oct 2022 21:31:57 +0100 Subject: [PATCH] Revise docs (#176) * anubis logo * Update RELEASE_NOTES.md * lint md * use orion ld (still with ngsi v2 calls) * update diagramms * clean docs * Update mkdocs.yml * update indentation to 4 for listing * fix identation * finalise api documentation * lint * Update open api specs * docs updates * revert logo position * autopep8 action fixes (#179) Co-authored-by: chicco785 * remove TODO * Update open api specs * update test to new policy path * update middleware api spec docs * remove term of service lines * fix index name * prepare 0.6 release * use new demo set-up including tenant creation in keycloak Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .env | 2 +- .github/lint/config.json | 1 + .github/workflows/openapi-spec.yml | 4 +- README.md | 31 +- RELEASE_NOTES.md | 4 +- anubis-management-api/README.md | 4 +- .../anubis/policies/routers.py | 12 +- anubis-management-api/anubis/version.py | 2 +- docker-compose-middleware.yaml | 2 +- docker-compose.yaml | 4 +- docs/createpolicy.png | Bin 47240 -> 39699 bytes docs/createresource.png | Bin 50512 -> 55036 bytes docs/index.md | 23 +- docs/logo.jpg | Bin 0 -> 47826 bytes docs/user/walkthrough-middleware.md | 144 +- docs/user/walkthrough.md | 11 +- mkdocs.yml | 1 + open-api-spec/api-manager/openapi.json | 6 +- open-api-spec/middleware/openapi.json | 482 +- .../package-lock.json | 10631 +--------------- policy-governance-middleware/package.json | 2 +- policy-governance-middleware/src/main.js | 171 +- scripts/test_middleware.sh | 4 +- 23 files changed, 865 insertions(+), 10676 deletions(-) create mode 100644 docs/logo.jpg diff --git a/.env b/.env index 7d1cc1ec..7bcc74a4 100644 --- a/.env +++ b/.env @@ -5,7 +5,7 @@ VALID_AUDIENCE=ngsi REACT_APP_URI=http://localhost:3000/ REACT_APP_ANUBIS_API_URL=http://localhost:8085/ REACT_APP_CONFIGURATION_API_URL=http://localhost:4000/configuration -REACT_APP_OIDC_ISSUER=http://localhost:8080/realms/default +REACT_APP_OIDC_ISSUER=http://keycloak:8080/realms/default REACT_APP_OIDC_CLIENT=configure REACT_APP_OIDC_SCOPE="openid profile email" MONGO_DB=mongodb://mongo:27017/graphql diff --git a/.github/lint/config.json b/.github/lint/config.json index 07ac89c5..bf904b85 100644 --- a/.github/lint/config.json +++ b/.github/lint/config.json @@ -1,5 +1,6 @@ { "default": true, + "MD007": { "indent": 4 }, "MD024": { "siblings_only": true }, diff --git a/.github/workflows/openapi-spec.yml b/.github/workflows/openapi-spec.yml index fd856672..71b17412 100644 --- a/.github/workflows/openapi-spec.yml +++ b/.github/workflows/openapi-spec.yml @@ -30,13 +30,15 @@ jobs: openapi-markdown -i open-api-spec/api-manager/openapi.json -o docs/user/walkthrough.md sed -i '1 i\ ' docs/user/walkthrough.md - - name: Generate walktrhough + - name: Generate walktrhough middleware working-directory: . run: | npm install -g openapi-markdown openapi-markdown -i open-api-spec/middleware/openapi.json -o docs/user/walkthrough-middleware.md sed -i '1 i\ ' docs/user/walkthrough-middleware.md + sed -i '/null/d' docs/user/walkthrough-middleware.md + sed -i '/### Terms of service/d' docs/user/walkthrough-middleware.md - name: Commit changes uses: stefanzweifel/git-auto-commit-action@v4 with: diff --git a/README.md b/README.md index 3afc8456..e6720b9a 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ Welcome to Anubis! ## What is the project about? -Anubis is a flexible Policy Enforcement solution +Anubis Anubis is a flexible Policy Enforcement solution that makes easier to reuse security policies across different services, assuming the policies entail the same resource. In short we are dealing with policy portability :) What do you mean by that? @@ -157,20 +158,20 @@ There are two distribution modalities: - *public*, i.e. when the different middleware belong to different organisations in the public internet. In this case: - - resources are considered to be univocally identifiable (if they have + - resources are considered to be univocally identifiable (if they have the same id they are the same resource); - - only user specific policies are distributed; + - only user specific policies are distributed; - - only resource specific policies are distributed. + - only resource specific policies are distributed. - *private*, i.e. when the different middleware belong to the same organisation. In this case: - - resources are considered to be univocally identifiable only within the same + - resources are considered to be univocally identifiable only within the same service and service path; - - all policies are distributed (including the ones for roles and groups and + - all policies are distributed (including the ones for roles and groups and `*` and `default` resource policies). ## Policies @@ -238,6 +239,19 @@ To run this demo you'll need to have the following installed: ### Deployment +To be able to create tenants, the hostname of the token issuer (Keycloak) in +docker and in your local system, needs to be the same, to ensure that, +add the following entry in your `/etc/hosts`: + +```console +127.0.0.1 keycloak +``` + +> **NOTE**: If you don't want to edit your `/etc/hosts` and you are not +interested in testing tenant creation and deletion, in the `.env` file replace +`REACT_APP_OIDC_ISSUER=http://keycloak:8080/realms/default` with +`REACT_APP_OIDC_ISSUER=http://localhost:8080/realms/default`. + To deploy the demo that includes the Auth API, OPA, Keycloak, and a Context Broker, run the following script: @@ -247,6 +261,8 @@ $ cd scripts $ ./run_demo.sh ``` +You can now login with username `admin@mail.com` and password `admin`. + You can run a script to make a few test API calls. You can run the test script with: @@ -404,7 +420,8 @@ Error Set: As of today, Anubis introduces an average overhead of 69msec, while this is not a bad number, it's not impressive. Still -there is a very good news, we know how to improve :) See #14. +there is a very good news, we know how to improve :) See +[#14](https://github.com/orchestracities/anubis/issues/14). ## Test rego diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a760b118..5fdcaad6 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,6 @@ # Anubis Release Notes -## 0.6-dev +## 0.6 ### New features @@ -12,6 +12,8 @@ ### Documentation +- Revise docs (including logo) + ### Continuous Integration ### Technical debt diff --git a/anubis-management-api/README.md b/anubis-management-api/README.md index d3d6ca9a..385826a5 100644 --- a/anubis-management-api/README.md +++ b/anubis-management-api/README.md @@ -47,9 +47,9 @@ The API is composed by three main paths: and service paths). Under the hood, this path also creates and stores information linked to policies: - * Agents (i.e. user or user groups definitions); + * Agents (i.e. user or user groups definitions); - * Modes (i.e. type of action requested on the resource); + * Modes (i.e. type of action requested on the resource); * `/v1/audits` providing audit logs, i.e. reports of policies' evaluations. diff --git a/anubis-management-api/anubis/policies/routers.py b/anubis-management-api/anubis/policies/routers.py index 88e0e1e4..7ae90fff 100644 --- a/anubis-management-api/anubis/policies/routers.py +++ b/anubis-management-api/anubis/policies/routers.py @@ -214,6 +214,8 @@ def read_modes(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): }, } +# TODO if no token, we should return policies for foaf:Agent! + @router.get("/me", response_model=List[schemas.Policy], @@ -242,9 +244,8 @@ def my_policies( - Agent Type - Resource - Resource Type - In case an JWT token is passed over, user id, roles and groups are used to - filter policies that are only valid for him. - # TODO if no token, we should return policies for foaf:Agent! + Requires a JWT token: contained user id, roles and groups are used to + filter policies that are only valid for the user. To return policies from a service path tree, you can used the wildchar "#". For example, using `/Path1/#` you will obtain policies for all subpaths, such as: `/Path1/SubPath1` or `/Path1/SubPath1/SubSubPath1`. @@ -325,8 +326,8 @@ def read_policies( - Agent Type - Resource - Resource Type - In case an JWT token is passed over, user id, roles and groups are used to - filter policies that are only valid for him. Unless the user is super admin or tenant admin. + In case an JWT token is passed over, user id is used to filter policies + where the owner is user id. Unless the user is super admin or tenant admin. To return policies from a service path tree, you can used the wildchar "#". For example, using `/Path1/#` you will obtain policies for all subpaths, such as: `/Path1/SubPath1` or `/Path1/SubPath1/SubSubPath1`. @@ -340,7 +341,6 @@ def read_policies( elif user_info and user_info['email']: owner = user_info['email'] # we don't filter policies in case super admin or tenant admin - # TODO CHANGE LOGIC IT SHOULD LIST POLICIES I CONTROL if agent_type and agent_type not in default.DEFAULT_AGENTS and agent_type not in default.DEFAULT_AGENT_TYPES: raise HTTPException( status_code=422, diff --git a/anubis-management-api/anubis/version.py b/anubis-management-api/anubis/version.py index 577f040e..8a597d31 100644 --- a/anubis-management-api/anubis/version.py +++ b/anubis-management-api/anubis/version.py @@ -1 +1 @@ -ANUBIS_VERSION = '0.6.0-dev' +ANUBIS_VERSION = '0.6.0' diff --git a/docker-compose-middleware.yaml b/docker-compose-middleware.yaml index 91896103..5bfa224f 100644 --- a/docker-compose-middleware.yaml +++ b/docker-compose-middleware.yaml @@ -210,7 +210,7 @@ services: - envoymesh upstream-service: - image: fiware/orion:${ORION_VERSION:-3.3.1} + image: fiware/orion-ld:${ORION_VERSION:-1.1.1} ports: - "1026:1026" command: -logLevel DEBUG -noCache -dbhost mongo diff --git a/docker-compose.yaml b/docker-compose.yaml index ea640841..bc5f0446 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -106,10 +106,10 @@ services: - envoymesh upstream-service: - image: fiware/orion:${ORION_VERSION:-3.3.1} + image: fiware/orion-ld:${ORION_VERSION:-1.1.1} ports: - "1026:1026" - command: -logLevel error -noCache -dbhost mongo + command: -logLevel error -dbhost mongo depends_on: - mongo healthcheck: diff --git a/docs/createpolicy.png b/docs/createpolicy.png index 99f279c1906ebd061827c92fd87394e80c73aa45..1182175737c7f376ad7299bb5d7d8c42861cec5d 100644 GIT binary patch literal 39699 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 aZ`zjB2jm|ks+QjwpGIrxX%?Kf4f!9ym!FLQ literal 47240 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 diff --git a/docs/createresource.png b/docs/createresource.png index ed30eac6fd52ddae56db75f0fc50f53d4ef61bab..98d38578af420cc05b59bc322c6bf4bbc9b760bf 100644 GIT binary patch literal 55036 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 W__Xq>S^P|cpr<`*O02*ltHcAg;gi?Ud9-a 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 UbfPYElY;RWv(cwV&HC$q0sj~Tng9R* diff --git a/docs/index.md b/docs/index.md index 9660f96b..fd6af4de 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,7 @@ # Welcome to Anubis -Anubis is a flexible Policy Enforcement solution +Anubis Anubis is a flexible Policy Enforcement solution that makes easier to reuse security policies across different services, assuming the policies entail the same resource. In short we are dealing with policy portability :) What do you mean by that? @@ -66,13 +67,13 @@ system for souls :) In the design and development of Anubis we tried to leverage different state-of-the-art solutions and standards: -- [[W3C WAC](https://solid.github.io/web-access-control-spec/), one of the +- [W3C WAC](https://solid.github.io/web-access-control-spec/), one of the reference vocabularies for expressing access control policies over web resources. - [W3C ODRL](https://www.w3.org/TR/odrl-model/), a policy expression language that allows representing statements about the usage of content and services. -- [OAUTH2](https://oauth.net/2/)) and [OIDC](https://openid.net/connect/) +- [OAUTH2](https://oauth.net/2/) and [OIDC](https://openid.net/connect/) the today reference protocols for authentication. - [OPA](https://www.openpolicyagent.org/) the state of the art solution for cloud native policy evaluation (not necessarily applied to access @@ -208,21 +209,21 @@ There are two distribution modalities: - *public*, i.e. when the different middleware belong to different organisations in the public internet. In this case: - - resources are considered to be univocally identifiable (if they have - the same id they are the same resource); + - resources are considered to be univocally identifiable (if they have + the same id they are the same resource); - - only user specific policies are distributed; + - only user specific policies are distributed; - - only resource specific policies are distributed. + - only resource specific policies are distributed. - *private*, i.e. when the different middleware belong to the same organisation. In this case: - - resources are considered to be univocally identifiable only within the same - service and service path; + - resources are considered to be univocally identifiable only within the same + service and service path; - - all policies are distributed (including the ones for roles and groups and - `*` and `default` resource policies). + - all policies are distributed (including the ones for roles and groups and + `*` and `default` resource policies). In the public modality, subscribers are required to define the service for which they subscribe on a certain resource. This guarantees that policies diff --git a/docs/logo.jpg b/docs/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f7c2247a2dabef868bd9f74778a17235dc8c86bb GIT binary patch literal 47826 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 -# policy-governance-middleware -Specification JSONs: [v2](/api-spec/v2), [v3](/api-spec/v3). +# Policy Distribution Middleware +This API enables the distributed management of policies for Anubis -The policy governance middleware for Anubis +## Version: 0.6.0 -## Version: 1.0.0 -**License:** Apache License v2 + +**License:** [Apache License v2](https://www.apache.org/licenses/LICENSE-2.0) ### /metadata #### GET ##### Summary: -/metadata +The metadata specific to the middleware node + +##### Parameters + +| Name | Located in | Description | Required | Schema | +| ---- | ---------- | ----------- | -------- | ---- | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | metadata response | + -### /mobile/policies/ +### /user/policies/ #### GET ##### Summary: -/mobile/policies/ +Retrieves all the policies linked to resources owned by a given user + +##### Parameters + +| Name | Located in | Description | Required | Schema | +| ---- | ---------- | ----------- | -------- | ---- | +| user | header | user for which resource policies are retrieved | Yes | string | +| fiware-Service | header | fiware service (only for private mode) | No | string | +| fiware-Servicepath | header | fiware service path (only for private mode) | No | string | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | return all policies of a given resource owner | -### /mobile/policies #### POST ##### Summary: -/mobile/policies +Updates the policies linked to resources owned by a given user + +##### Parameters + +| Name | Located in | Description | Required | Schema | +| ---- | ---------- | ----------- | -------- | ---- | +| fiware-Service | header | fiware service (only for private mode) | No | string | +| fiware-Servicepath | header | fiware service path (only for private mode) | No | string | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | Ok | +| 400 | Failed | + ### /resource/{resourceId}/provide #### POST ##### Summary: -/resource/{resourceId}/provide +Register this middleware as a provider for a given resource ##### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ---- | -| resourceId | path | | Yes | string | +| resourceId | path | The resourceId provided | Yes | string | +| fiware-Service | header | fiware service (only for private mode) | No | string | +| fiware-Servicepath | header | fiware service path (only for private mode) | No | string | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | Ok | +| 400 | Failed | + ### /resource/{resourceId}/exists #### GET ##### Summary: -/resource/{resourceId}/exists +Checks if there is a provider for this resource ##### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ---- | -| resourceId | path | | Yes | string | +| resourceId | path | The resourceId checked | Yes | string | +| fiware-Service | header | fiware service (only for private mode) | No | string | +| fiware-Servicepath | header | fiware service path (only for private mode) | No | string | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | Ok | +| 400 | Failed | + ### /resource/{resourceId}/subscribe #### POST ##### Summary: -/resource/{resourceId}/subscribe +Subscribe this middleware to a given resource ##### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ---- | -| resourceId | path | | Yes | string | +| resourceId | path | The resourceId provided | Yes | string | +| fiware-Service | header | fiware service (required only in public mode) | No | string | +| fiware-Servicepath | header | fiware service path (required only in public mode) | No | string | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | Ok | +| 400 | Failed | + ### /resource/{resourceId}/policy/{policyId} #### POST ##### Summary: -/resource/{resourceId}/policy/{policyId} +Notify this middleware that a new policy was created for a given resource ##### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ---- | -| resourceId | path | | Yes | string | -| policyId | path | | Yes | string | +| resourceId | path | The resourceId of the resource for which the new policy creation is notified | Yes | string | +| policyId | path | The policyId of the new policy | Yes | string | +| fiware-Service | header | fiware service (required only in private mode) | No | string | +| fiware-Servicepath | header | fiware service path (required only in private mode) | No | string | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | Ok | +| 400 | Failed | + #### PUT ##### Summary: -/resource/{resourceId}/policy/{policyId} +Notify this middleware that a policy was updated for a given resource ##### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ---- | -| resourceId | path | | Yes | string | -| policyId | path | | Yes | string | +| resourceId | path | The resourceId of the resource for which the policy update is notified | Yes | string | +| policyId | path | The policyId of the policy updated | Yes | string | +| fiware-Service | header | fiware service (required only in private mode) | No | string | +| fiware-Servicepath | header | fiware service path (required only in private mode) | No | string | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | Ok | +| 400 | Failed | + #### DELETE ##### Summary: -/resource/{resourceId}/policy/{policyId} +Notify this middleware that a policy was deleted for a given resource ##### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ---- | -| resourceId | path | | Yes | string | -| policyId | path | | Yes | string | +| resourceId | path | The resourceId of the resource for which the policy delete is notified | Yes | string | +| policyId | path | The policyId of the policy deleted | Yes | string | +| fiware-Service | header | fiware service (required only in private mode) | No | string | +| fiware-Servicepath | header | fiware service path (required only in private mode) | No | string | ##### Responses | Code | Description | | ---- | ----------- | +| 200 | Ok | +| 400 | Failed | + + +### Models + + +#### Metadata + +A metadata entry + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| policy_api_uri | string | Anubis API endpoint for this middleware | No | + +#### Policy + +A policy for a resource + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| id | string | The id of the policy | Yes | +| actorType | [ string ] | The subject of the policy | Yes | +| mode | [ string ] | The mode of the policy | Yes | + +#### Resource + +A protected resource + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| id | string | The id of the resource | Yes | +| policies | [ [Policy](#policy) ] | The policies that apply to the resource | Yes | + +#### UserResources + +Set of resources by a user + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| user | string | The id of the user | Yes | +| resources | [ [Resource](#resource) ] | The resources owned by the user | Yes | \ No newline at end of file diff --git a/docs/user/walkthrough.md b/docs/user/walkthrough.md index cab51665..fdaea9a6 100644 --- a/docs/user/walkthrough.md +++ b/docs/user/walkthrough.md @@ -2,7 +2,7 @@ # Anubis Anubis is a flexible Policy Enforcement solution that makes easier to reuse security policies across different services, assuming the policies entail the same resource. -## Version: 0.6.0-dev +## Version: 0.6.0 ### /v1/tenants/service_paths @@ -257,9 +257,8 @@ Policies can be filtered by: - Agent Type - Resource - Resource Type -In case an JWT token is passed over, user id, roles and groups are used to -filter policies that are only valid for him. -# TODO if no token, we should return policies for foaf:Agent! +Requires a JWT token: contained user id, roles and groups are used to +filter policies that are only valid for the user. To return policies from a service path tree, you can used the wildchar "#". For example, using `/Path1/#` you will obtain policies for all subpaths, such as: `/Path1/SubPath1` or `/Path1/SubPath1/SubSubPath1`. @@ -308,8 +307,8 @@ Policies can be filtered by: - Agent Type - Resource - Resource Type -In case an JWT token is passed over, user id, roles and groups are used to -filter policies that are only valid for him. Unless the user is super admin or tenant admin. +In case an JWT token is passed over, user id is used to filter policies +where the owner is user id. Unless the user is super admin or tenant admin. To return policies from a service path tree, you can used the wildchar "#". For example, using `/Path1/#` you will obtain policies for all subpaths, such as: `/Path1/SubPath1` or `/Path1/SubPath1/SubSubPath1`. diff --git a/mkdocs.yml b/mkdocs.yml index d706e3ed..6607c3fe 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -22,6 +22,7 @@ nav: - 'Policies': 'user/policies.md' - 'Audit': 'user/audit.md' - 'API Walkthrough': 'user/walkthrough.md' + - 'Policy Distribution API Walkthrough': 'user/walkthrough-middleware.md' - 'Installation & Administration Manual': - 'Introduction': 'admin/index.md' - 'Installing Anubis': 'admin/install.md' diff --git a/open-api-spec/api-manager/openapi.json b/open-api-spec/api-manager/openapi.json index e5d53e29..9a8bd779 100644 --- a/open-api-spec/api-manager/openapi.json +++ b/open-api-spec/api-manager/openapi.json @@ -3,7 +3,7 @@ "info": { "title": "Anubis", "description": "Anubis is a flexible Policy Enforcement solution that makes easier to reuse security policies across different services, assuming the policies entail the same resource.", - "version": "0.6.0-dev" + "version": "0.6.0" }, "paths": { "/v1/tenants/service_paths": { @@ -601,7 +601,7 @@ "policies" ], "summary": "List policies for a given Tenant and Service Path that apply to me", - "description": "Policies can be filtered by:\n - Access Mode\n - Agent\n - Agent Type\n - Resource\n - Resource Type\nIn case an JWT token is passed over, user id, roles and groups are used to\nfilter policies that are only valid for him.\n# TODO if no token, we should return policies for foaf:Agent!\nTo return policies from a service path tree, you can used the wildchar \"#\".\nFor example, using `/Path1/#` you will obtain policies for all subpaths,\nsuch as: `/Path1/SubPath1` or `/Path1/SubPath1/SubSubPath1`.", + "description": "Policies can be filtered by:\n - Access Mode\n - Agent\n - Agent Type\n - Resource\n - Resource Type\nRequires a JWT token: contained user id, roles and groups are used to\nfilter policies that are only valid for the user.\nTo return policies from a service path tree, you can used the wildchar \"#\".\nFor example, using `/Path1/#` you will obtain policies for all subpaths,\nsuch as: `/Path1/SubPath1` or `/Path1/SubPath1/SubSubPath1`.", "operationId": "my_policies_v1_policies_me_get", "parameters": [ { @@ -757,7 +757,7 @@ "policies" ], "summary": "List policies for a given Tenant and Service Path", - "description": "Policies can be filtered by:\n - Access Mode\n - Agent\n - Agent Type\n - Resource\n - Resource Type\nIn case an JWT token is passed over, user id, roles and groups are used to\nfilter policies that are only valid for him. Unless the user is super admin or tenant admin.\nTo return policies from a service path tree, you can used the wildchar \"#\".\nFor example, using `/Path1/#` you will obtain policies for all subpaths,\nsuch as: `/Path1/SubPath1` or `/Path1/SubPath1/SubSubPath1`.", + "description": "Policies can be filtered by:\n - Access Mode\n - Agent\n - Agent Type\n - Resource\n - Resource Type\nIn case an JWT token is passed over, user id is used to filter policies\nwhere the owner is user id. Unless the user is super admin or tenant admin.\nTo return policies from a service path tree, you can used the wildchar \"#\".\nFor example, using `/Path1/#` you will obtain policies for all subpaths,\nsuch as: `/Path1/SubPath1` or `/Path1/SubPath1/SubSubPath1`.", "operationId": "read_policies_v1_policies__get", "parameters": [ { diff --git a/open-api-spec/middleware/openapi.json b/open-api-spec/middleware/openapi.json index 24e302e2..11af57e4 100644 --- a/open-api-spec/middleware/openapi.json +++ b/open-api-spec/middleware/openapi.json @@ -1,94 +1,398 @@ { "openapi": "3.0.0", "info": { - "title": "policy-governance-middleware", - "version": "1.0.0", + "title": "Policy Distribution Middleware", + "description": "This API enables the distributed management of policies for Anubis", "license": { - "name": "Apache License v2" + "name": "Apache License v2", + "url": "https://www.apache.org/licenses/LICENSE-2.0" }, - "description": "Specification JSONs: [v2](/api-spec/v2), [v3](/api-spec/v3).\n\nThe policy governance middleware for Anubis" + "termsOfService": "", + "version": "0.6.0" + }, + "servers": [], + "components": { + "schemas": { + "Metadata": { + "description": "A metadata entry", + "type": "object", + "properties": { + "policy_api_uri": { + "description": "Anubis API endpoint for this middleware", + "type": "string" + } + } + }, + "Policy": { + "description": "A policy for a resource", + "required": [ + "id", + "actorType", + "mode" + ], + "type": "object", + "properties": { + "id": { + "description": "The id of the policy", + "type": "string" + }, + "actorType": { + "description": "The subject of the policy", + "type": "array", + "items": { + "type": "string" + } + }, + "mode": { + "description": "The mode of the policy", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Resource": { + "description": "A protected resource", + "required": [ + "id", + "policies" + ], + "type": "object", + "properties": { + "id": { + "description": "The id of the resource", + "type": "string" + }, + "policies": { + "description": "The policies that apply to the resource", + "type": "array", + "items": { + "$ref": "#/components/schemas/Policy" + } + } + } + }, + "UserResources": { + "description": "Set of resources by a user", + "required": [ + "user", + "resources" + ], + "type": "object", + "properties": { + "user": { + "description": "The id of the user", + "type": "string" + }, + "resources": { + "description": "The resources owned by the user", + "type": "array", + "items": { + "$ref": "#/components/schemas/Resource" + } + } + } + } + } }, "paths": { "/metadata": { "get": { - "summary": "/metadata", - "responses": {}, - "tags": [] + "deprecated": false, + "summary": "The metadata specific to the middleware node", + "security": [], + "responses": { + "200": { + "description": "metadata response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + }, + "parameters": [], + "tags": [ + "Metadata" + ] } }, - "/mobile/policies/": { + "/user/policies/": { "get": { - "summary": "/mobile/policies/", - "responses": {}, - "tags": [] - } - }, - "/mobile/policies": { + "deprecated": false, + "summary": "Retrieves all the policies linked to resources owned by a given user", + "security": [], + "responses": { + "200": { + "description": "return all policies of a given resource owner", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResources" + } + } + } + } + }, + "parameters": [ + { + "name": "user", + "in": "header", + "description": "user for which resource policies are retrieved", + "required": true, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Service", + "in": "header", + "description": "fiware service (only for private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Servicepath", + "in": "header", + "description": "fiware service path (only for private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + } + ], + "tags": [ + "User" + ] + }, "post": { - "summary": "/mobile/policies", - "responses": {}, - "tags": [] + "deprecated": false, + "summary": "Updates the policies linked to resources owned by a given user", + "security": [], + "responses": { + "200": { + "description": "Ok" + }, + "400": { + "description": "Failed" + } + }, + "parameters": [ + { + "name": "fiware-Service", + "in": "header", + "description": "fiware service (only for private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Servicepath", + "in": "header", + "description": "fiware service path (only for private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + } + ], + "tags": [ + "User" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResources" + } + } + }, + "description": "The policies to be stored in the middleware network", + "required": true + } } }, "/resource/{resourceId}/provide": { "post": { - "summary": "/resource/{resourceId}/provide", + "deprecated": false, + "summary": "Register this middleware as a provider for a given resource", + "security": [], + "responses": { + "200": { + "description": "Ok" + }, + "400": { + "description": "Failed" + } + }, "parameters": [ { "name": "resourceId", "in": "path", + "description": "The resourceId provided", "required": true, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Service", + "in": "header", + "description": "fiware service (only for private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Servicepath", + "in": "header", + "description": "fiware service path (only for private mode)", + "required": false, + "deprecated": false, "schema": { "type": "string" } } ], - "responses": {}, - "tags": [] + "tags": [ + "Resource" + ] } }, "/resource/{resourceId}/exists": { "get": { - "summary": "/resource/{resourceId}/exists", + "deprecated": false, + "summary": "Checks if there is a provider for this resource", + "security": [], + "responses": { + "200": { + "description": "Ok" + }, + "400": { + "description": "Failed" + } + }, "parameters": [ { "name": "resourceId", "in": "path", + "description": "The resourceId checked", "required": true, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Service", + "in": "header", + "description": "fiware service (only for private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Servicepath", + "in": "header", + "description": "fiware service path (only for private mode)", + "required": false, + "deprecated": false, "schema": { "type": "string" } } ], - "responses": {}, - "tags": [] + "tags": [ + "Resource" + ] } }, "/resource/{resourceId}/subscribe": { "post": { - "summary": "/resource/{resourceId}/subscribe", + "deprecated": false, + "summary": "Subscribe this middleware to a given resource", + "security": [], + "responses": { + "200": { + "description": "Ok" + }, + "400": { + "description": "Failed" + } + }, "parameters": [ { "name": "resourceId", "in": "path", + "description": "The resourceId provided", "required": true, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Service", + "in": "header", + "description": "fiware service (required only in public mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Servicepath", + "in": "header", + "description": "fiware service path (required only in public mode)", + "required": false, + "deprecated": false, "schema": { "type": "string" } } ], - "responses": {}, - "tags": [] + "tags": [ + "Resource" + ] } }, "/resource/{resourceId}/policy/{policyId}": { "post": { - "summary": "/resource/{resourceId}/policy/{policyId}", + "deprecated": false, + "summary": "Notify this middleware that a new policy was created for a given resource", + "security": [], + "responses": { + "200": { + "description": "Ok" + }, + "400": { + "description": "Failed" + } + }, "parameters": [ { "name": "resourceId", "in": "path", + "description": "The resourceId of the resource for which the new policy creation is notified", "required": true, + "deprecated": false, "schema": { "type": "string" } @@ -96,22 +400,57 @@ { "name": "policyId", "in": "path", + "description": "The policyId of the new policy", "required": true, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Service", + "in": "header", + "description": "fiware service (required only in private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Servicepath", + "in": "header", + "description": "fiware service path (required only in private mode)", + "required": false, + "deprecated": false, "schema": { "type": "string" } } ], - "responses": {}, - "tags": [] + "tags": [ + "Resource" + ] }, "put": { - "summary": "/resource/{resourceId}/policy/{policyId}", + "deprecated": false, + "summary": "Notify this middleware that a policy was updated for a given resource", + "security": [], + "responses": { + "200": { + "description": "Ok" + }, + "400": { + "description": "Failed" + } + }, "parameters": [ { "name": "resourceId", "in": "path", + "description": "The resourceId of the resource for which the policy update is notified", "required": true, + "deprecated": false, "schema": { "type": "string" } @@ -119,22 +458,57 @@ { "name": "policyId", "in": "path", + "description": "The policyId of the policy updated", "required": true, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Service", + "in": "header", + "description": "fiware service (required only in private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Servicepath", + "in": "header", + "description": "fiware service path (required only in private mode)", + "required": false, + "deprecated": false, "schema": { "type": "string" } } ], - "responses": {}, - "tags": [] + "tags": [ + "Resource" + ] }, "delete": { - "summary": "/resource/{resourceId}/policy/{policyId}", + "deprecated": false, + "summary": "Notify this middleware that a policy was deleted for a given resource", + "security": [], + "responses": { + "200": { + "description": "Ok" + }, + "400": { + "description": "Failed" + } + }, "parameters": [ { "name": "resourceId", "in": "path", + "description": "The resourceId of the resource for which the policy delete is notified", "required": true, + "deprecated": false, "schema": { "type": "string" } @@ -142,16 +516,52 @@ { "name": "policyId", "in": "path", + "description": "The policyId of the policy deleted", "required": true, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Service", + "in": "header", + "description": "fiware service (required only in private mode)", + "required": false, + "deprecated": false, + "schema": { + "type": "string" + } + }, + { + "name": "fiware-Servicepath", + "in": "header", + "description": "fiware service path (required only in private mode)", + "required": false, + "deprecated": false, "schema": { "type": "string" } } ], - "responses": {}, - "tags": [] + "tags": [ + "Resource" + ] } } }, - "tags": [] + "tags": [ + { + "name": "Metadata", + "description": "" + }, + { + "name": "Resource", + "description": "" + }, + { + "name": "User", + "description": "" + } + ] } diff --git a/policy-governance-middleware/package-lock.json b/policy-governance-middleware/package-lock.json index 549ca589..ee2397c8 100644 --- a/policy-governance-middleware/package-lock.json +++ b/policy-governance-middleware/package-lock.json @@ -1,9712 +1,43 @@ { "name": "policy-governance-middleware", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "policy-governance-middleware", - "version": "1.0.0", - "license": "Apache License v2", - "dependencies": { - "@chainsafe/libp2p-gossipsub": "^3.4.0", - "@chainsafe/libp2p-noise": "^7.0.1", - "@libp2p/bootstrap": "^2.0.0", - "@libp2p/floodsub": "^3.0.2", - "@libp2p/kad-dht": "^3.0.1", - "@libp2p/mdns": "^3.0.0", - "@libp2p/mplex": "^4.0.2", - "@libp2p/peer-id": "^1.1.15", - "@libp2p/peer-id-factory": "^1.0.18", - "@libp2p/pubsub-peer-discovery": "^6.0.0", - "@libp2p/tcp": "^3.0.2", - "@libp2p/websockets": "^3.0.1", - "@multiformats/multiaddr": "^10.3.3", - "axios": "^0.27.2", - "cors": "^2.8.5", - "delay": "^5.0.0", - "express": "^4.18.1", - "express-oas-generator": "^1.0.45", - "libp2p": "0.37.3-05e8e7e", - "libp2p-gossipsub": "^0.13.0", - "logops": "^2.1.2", - "peer-id": "^0.16.0", - "pm2": "^5.2.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=15.0.0" - } - }, - "node_modules/@achingbrain/ip-address": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@achingbrain/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@achingbrain/nat-port-mapper": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz", - "integrity": "sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg==", - "dependencies": { - "@achingbrain/ssdp": "^4.0.1", - "@libp2p/logger": "^2.0.0", - "default-gateway": "^6.0.2", - "err-code": "^3.0.1", - "it-first": "^1.0.7", - "p-defer": "^4.0.0", - "p-timeout": "^5.0.2", - "xml2js": "^0.4.23" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@achingbrain/ssdp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.1.tgz", - "integrity": "sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ==", - "dependencies": { - "event-iterator": "^2.0.0", - "freeport-promise": "^2.0.0", - "merge-options": "^3.0.4", - "uuid": "^8.3.2", - "xml2js": "^0.4.23" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@aws-crypto/ie11-detection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", - "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - }, - "node_modules/@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - }, - "node_modules/@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - }, - "node_modules/@aws-crypto/supports-web-crypto": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", - "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - }, - "node_modules/@aws-crypto/util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", - "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "^3.110.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/util/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/abort-controller": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.197.0.tgz", - "integrity": "sha512-ROuuIICJmkF/VxfOjoPgp79PXjqwXU/z2HmXB+gtYPzwPCyMhb8WwclevyxG3E/t5VflYvPv0NDxQMiU0obOqw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/abort-controller/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.197.0.tgz", - "integrity": "sha512-lvOhLhHTSRhS3bArzlMK18ldcJ0DhPb2belrE9KeY2Z+86P4prH02jwgi3EdFHizsKz2FmVelMdD3VWk8BxTzg==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.197.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/client-cognito-identity/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.197.0.tgz", - "integrity": "sha512-jqH0DrZSVFhv61wPp0fqjfwUuMDbXEE4dq31K342kJlFyzrtt+XvHPUa1BC5ow8wpLkIn+ZZmt372hiGVKzrxw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/client-sso/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.197.0.tgz", - "integrity": "sha512-ybDqIpY5AsESFhgojlpCN8qJDOfrl7aDmfOOc4MAyhr5au0UlPcq+Vp51sHLvKtWFvdfbAoggcW/mXILtgw+TA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-sdk-sts": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", - "fast-xml-parser": "4.0.11", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/client-sts/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/config-resolver": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.197.0.tgz", - "integrity": "sha512-G7SfNvS4MlADPt06Yb2FV+uHUt3eli17atuzoHjtFGtNzHvoZzTrulJfKxni1F5gswREyYBLMT4kbNxVwLOpqg==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-config-provider": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/config-resolver/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.197.0.tgz", - "integrity": "sha512-VaUIg8bbjwmPH1BXf4Hc/RQyycHE1y3JHn+lFgrkFX6mS61V2tpFcrbmqa3vOMTmNwoNRHDAJI8xO1QjqKZaww==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.197.0.tgz", - "integrity": "sha512-Y1B8A9I78/5OPo7TKwAZCP0CvEi2Q2tXF7fr0Yl6iUOr57WY/QhKz54CsnhwYFL1DFQx62wNHvvWmOopcO6Urg==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-env/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.197.0.tgz", - "integrity": "sha512-DiNwnOolX61Kk5gUoP/yxX1JkPeX1EeT73OKJPYFwe5tHN9Mc/at5TYcbG8qVrvMfNkem314wiZHSOt6EdJZBA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-imds/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.197.0.tgz", - "integrity": "sha512-ngH6vivhi0ss4NdnYLDZiZboCPzEupL94AgTrzIuZVbN8DXcYB7BzccGjNCY196RXeL+UQJqH7Z71DXyOM95cA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.197.0.tgz", - "integrity": "sha512-0vHkgsmrE8p3M0VqHUbq/WSR5a1wuqPggVEiYz8K6HYiKy3hXhmcGBnU923Fv9ZRVWat2QodYNe2HM7FRXcRpw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-ini": "3.197.0", - "@aws-sdk/credential-provider-process": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.197.0.tgz", - "integrity": "sha512-tyKztm3ylza2i7wAaTwGTQTXG5rJgsglIunNsbC9CEsylGwf7PgQrFFlDYtOAprUTqFSkIaVa4D0nKVFtgkGAA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.197.0.tgz", - "integrity": "sha512-do6fcurJTJ+SOD7zCwyFmiqM1ix8W9QiEgAyQsf9kKoHxnfWQGNgTsmF0PxtaGE8NZMRg8G+F4JUYbfY7UfcNQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/client-sso": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.197.0.tgz", - "integrity": "sha512-ls91XURhYKAbF5T1wDjSpTZuRdoW7PPwtAUjHBKzfXee4F7KhrLPSgxTBvHI81vG8b2J2VRbb/0kXtisdF7TAQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/credential-providers": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.197.0.tgz", - "integrity": "sha512-soiuVC1Njte9TDt8z/3Cn/P+rQVirfDMeDM9ypjHIybtoOVc/hozkxlt2W5ggUk2okWItT7/hwOGpzwMOkfKOQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.197.0", - "@aws-sdk/client-sso": "3.197.0", - "@aws-sdk/client-sts": "3.197.0", - "@aws-sdk/credential-provider-cognito-identity": "3.197.0", - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-ini": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/credential-provider-process": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-providers/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.197.0.tgz", - "integrity": "sha512-Ztp71HP/qeG/6AwQDRq49cUlc4UTLAUuAZ7ivcrDaTV/T8HaNtnEde00RnT9MVr3OZCou3I1H37qRwas5+wOVQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/fetch-http-handler/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/hash-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.197.0.tgz", - "integrity": "sha512-NCXDY9IsTDNKPjJBY2yMmpM1GMfc5zcNxTInFeMpIhOjz3yYf6UqrYLtgqdzvTjgZlXhuFneBweqpfWo77KFbg==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-buffer-from": "3.188.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/hash-node/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.197.0.tgz", - "integrity": "sha512-C5yz97yskupjLkj1zKefPzLjPuhV3Ci27zNfQkI1XcjnYyrOJm5bNuR6DUuMEd7flgjOvWL//5L0hmW/sF7vNg==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/invalid-dependency/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.188.0.tgz", - "integrity": "sha512-n69N4zJZCNd87Rf4NzufPzhactUeM877Y0Tp/F3KiHqGeTnVjYUa4Lv1vLBjqtfjYb2HWT3NKlYn5yzrhaEwiQ==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/is-array-buffer/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.197.0.tgz", - "integrity": "sha512-Qvy92+YObZdAR7Qza4dT3yzSe4NfCbPGzw4kvmsUttP/z2cm5knqNk6FUIAvaXhRh3nTnrebGGwxQjbphYNYCQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-content-length/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-endpoint": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.197.0.tgz", - "integrity": "sha512-o6Uc3KoqfPn4xhwVaLO5IDOKw0mvQeQSqzS3hgGgq9uT8yLoDhs8y40cLNWCThYBBVueuXKh71QSUF7FO+X05g==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-config-provider": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-endpoint/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.197.0.tgz", - "integrity": "sha512-Haa5uP0l2IqMOCzIvPp4oDMAo8lBZUKhCp6Ck4ERJ33rHW669dTF6C2xQaevnVYPoL8D4S7mgyEpCFgvFf+CHQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-host-header/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.197.0.tgz", - "integrity": "sha512-AdMB5eNHLpUphtwbVNPLMQzZFFht3N/QbblHtMzchzVvgvjVhiZoS4cVxIzNSpSibMPfZr8ysnPN2bhHcCc1iw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-logger/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.197.0.tgz", - "integrity": "sha512-nPi2iRnqkq0eRYitwFSZfdRrhrHe79Hjq/Iaf9jGSFBs5IJalKl+ximQ28HJrxjQfsp4NWpntAxhol1vpqI1UQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-retry": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.197.0.tgz", - "integrity": "sha512-mEWVL5n/zeF+2MhvT4ROn+5tG3rOX4GJc0aZBz8aUJAqU0Zn6euA1z75XoYXxA6E2zrq20adcWOLxmAvtoHOlg==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/service-error-classification": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-middleware": "3.197.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-retry/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.197.0.tgz", - "integrity": "sha512-hon/cQhC/SP0QEA+hLM53rPchGxy9n1nX6/VCyflj6iPaY/OYV6HmbuktmrrISSm5tf4LnXNrUjA9XaeT1DGPA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-serde": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.197.0.tgz", - "integrity": "sha512-UzQmQrR5QakldkBCKSGl3ei+VM9GFBO0OTL08VYHmU5wuQTOJcBnZ+8qa+lUf2BzLdTTlliR0NfUlr9r1XDx+w==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-serde/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.197.0.tgz", - "integrity": "sha512-PHdtbV92lUtqtuYcMYfYXknh2Lsv6KHeYvy1MZaJouahgJ2urpPsuWlQHjcjEA2dYDpSetjCAtDQvnke0siSTA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-middleware": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-signing/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-stack": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.197.0.tgz", - "integrity": "sha512-+5mDVmoTrFgglTygOwi/6nXv127d9ipite+BeIo18kmkY1JV5uld8ccErXJIcP7vrxsxNt4rt/bUenrL/sDpZg==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-stack/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.197.0.tgz", - "integrity": "sha512-slEmyYlctQmQWkltfMH02cj6z5NWlCodLQQVGdinFzy+jPhfCLtcwxAfFhT+dGLc9/UtVXqtn+OfqkIoUBs+fw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/node-config-provider": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.197.0.tgz", - "integrity": "sha512-gDlha5uTEvacrhLnwKDo2nzfPE1CQpoU+eNUJF7JEfoUv69GGS/23C6Lo1PueWI5UtdkqBP12aY8woKRjwjQfA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/node-config-provider/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/node-http-handler": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.197.0.tgz", - "integrity": "sha512-ZkXqafE0KgOlUdXuFos2VAMoSniGARBGubWkfTnKV8Ky4npXRHNV293dOpxH4KUy38siRIQruv0b+sDU5wxeFw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/abort-controller": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/node-http-handler/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/property-provider": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.197.0.tgz", - "integrity": "sha512-5kLErMu1ELZTwU2oQtJSE6fhaPMRODp9uidUMRvozJLuCqmijygXVb+7adFnX1X/pl5Wv9mi7GkiOncWvjDKjA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/property-provider/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/protocol-http": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.197.0.tgz", - "integrity": "sha512-fKM7GDTQigDnjRlEHu8L2oZRcgTitSgdAHovJ/wu9131H+nM9gbiqvKh4CXToygqA1NUMYoJDUpZTv1LGMwsDQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/protocol-http/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/querystring-builder": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.197.0.tgz", - "integrity": "sha512-+t4oit2tpCD9hJQtKFEOgL+9hPtXJbkCNxLwnNgu9Vr0wr1T0orso825Dbaxh8VM39mnDOaId+zQ9wZJPpXkHA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-uri-escape": "3.188.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/querystring-builder/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/querystring-parser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.197.0.tgz", - "integrity": "sha512-FluJGKzNmXBZ6/yJFlsZQ+xrpnVcg7dK/cWR3vZo/jCB0muw3QpbEMCdC7/frh0C+0zHfClbYh0TbmEuS21XTw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/querystring-parser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/service-error-classification": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.197.0.tgz", - "integrity": "sha512-ok1Nw5plwlTKPkyMVRJI+SVWjiitjfVveiV6zEIN87RXKPjlzQGIuHXFkDChsHT5P2TueHwzPG8lnpGBlHqBBw==", - "optional": true, - "peer": true, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.197.0.tgz", - "integrity": "sha512-dVgGmieJLgnw+OZdGxuifAc/I1zJm/W4Ixf2zowV66KisCScqpJJGhtSylBoTqE4ssWUH804TJHy0fFOxD2GAQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/shared-ini-file-loader/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/signature-v4": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.197.0.tgz", - "integrity": "sha512-8eTw9PeW4146WDGqXUxpFwB4neuW/GYbjJxdjDN29Ec6rThazADHZyKwYOBn/wGUUiiqeBL37deRsBk6x2FgRw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/is-array-buffer": "3.188.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-hex-encoding": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", - "@aws-sdk/util-uri-escape": "3.188.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/smithy-client": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.197.0.tgz", - "integrity": "sha512-8E+OhE/WzC/SGQxtSDc88i5PDxGNCYrrtJRSYJ5JoPSgQ6qPMMizGVbK54ZffridC1Y+Bud2+dntkbRL8NNddQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/smithy-client/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/types": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.197.0.tgz", - "integrity": "sha512-ZM6s4AIWLWeKiuigPCSbSSBn9i7s1o+/U/dRpLax3bSpH7E6PU5hEnIXEzWsIXWU1/8bmTttY8qmYEx3RCmbpw==", - "optional": true, - "peer": true, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/url-parser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.197.0.tgz", - "integrity": "sha512-+ffKdbdEKOja1sjIeLR+IUYx3YgRJ+wnlkXj/8kPt1iGog8RZjoINdz3VYaojtA9GfoTw0pFwehxmLJ+UVBfXQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/querystring-parser": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/url-parser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-base64-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.188.0.tgz", - "integrity": "sha512-qlH+5NZBLiyKziL335BEPedYxX6j+p7KFRWXvDQox9S+s+gLCayednpK+fteOhBenCcR9fUZOVuAPScy1I8qCg==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-base64-browser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-base64-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.188.0.tgz", - "integrity": "sha512-r1dccRsRjKq+OhVRUfqFiW3sGgZBjHbMeHLbrAs9jrOjU2PTQ8PSzAXLvX/9lmp7YjmX17Qvlsg0NCr1tbB9OA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/util-buffer-from": "3.188.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-base64-node/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-body-length-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", - "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-body-length-browser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-body-length-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.188.0.tgz", - "integrity": "sha512-XwqP3vxk60MKp4YDdvDeCD6BPOiG2e+/Ou4AofZOy5/toB6NKz2pFNibQIUg2+jc7mPMnGnvOW3MQEgSJ+gu/Q==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-body-length-node/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-buffer-from": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.188.0.tgz", - "integrity": "sha512-NX1WXZ8TH20IZb4jPFT2CnLKSqZWddGxtfiWxD9M47YOtq/SSQeR82fhqqVjJn4P8w2F5E28f+Du4ntg/sGcxA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/is-array-buffer": "3.188.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-buffer-from/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-config-provider": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.188.0.tgz", - "integrity": "sha512-LBA7tLbi7v4uvbOJhSnjJrxbcRifKK/1ZVK94JTV2MNSCCyNkFotyEI5UWDl10YKriTIUyf7o5cakpiDZ3O4xg==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-config-provider/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.197.0.tgz", - "integrity": "sha512-5DaTKR0DLJR02wd844I+GR0HnRpYO2IZAtXK444ubLL2Mi9M8AZ/aGXNvZpIsAIjy/InTK0K2B/c/8DJzLU23Q==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-browser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.197.0.tgz", - "integrity": "sha512-dZtw/rSHlQ0uCDkSU4Jdxwx/hIdw9lbwW3hCjo0EtjQrRN9c5Cs3NNaYQg3Ghs6VT2F0aO0BcF7KTPQ6ZPcGeg==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-node/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-endpoints": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.197.0.tgz", - "integrity": "sha512-ZcR2sSTfIO7p05MFRbGnp5KJT5WaXTZe675jQKWbgJ2VizQz0loOyoofFS4R1CTIuNitGY9+g5pmMZelULa/Aw==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-endpoints/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.188.0.tgz", - "integrity": "sha512-QyWovTtjQ2RYxqVM+STPh65owSqzuXURnfoof778spyX4iQ4z46wOge1YV2ZtwS8w5LWd9eeVvDrLu5POPYOnA==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-hex-encoding/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.188.0.tgz", - "integrity": "sha512-SxobBVLZkkLSawTCfeQnhVX3Azm9O+C2dngZVe1+BqtF8+retUbVTs7OfYeWBlawVkULKF2e781lTzEHBBjCzw==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-locate-window/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-middleware": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.197.0.tgz", - "integrity": "sha512-ynruKtZuxMT97ZcmbF262GeUeaQKjnSOm4T4HHLgdJx4LeW8vo4xla4ffNh5Tb+MGEJz22V5ldcddrpF4FobnA==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-middleware/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-uri-escape": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.188.0.tgz", - "integrity": "sha512-4Y6AYZMT483Tiuq8dxz5WHIiPNdSFPGrl6tRTo2Oi2FcwypwmFhqgEGcqxeXDUJktvaCBxeA08DLr/AemVhPCg==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-uri-escape/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.197.0.tgz", - "integrity": "sha512-0BhG18FL+qvRiTKJ1kG1vKrMvnCpgh1XuMRTTBjFPl7j/XbW9JMPgnJaZSN/uZqS2ianK2V1Yc+FTv/qfPiNeA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/types": "3.197.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-user-agent-browser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.197.0.tgz", - "integrity": "sha512-ymsZ3rwsmPJWISxpwpEf9MmRkr1Av5cTNyZgHo8Yi+LveeUelZ+41HLjP10p540K8x4iUnCHNP5yUN1UTtNnfA==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } - } - }, - "node_modules/@aws-sdk/util-user-agent-node/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", - "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-utf8-browser/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@aws-sdk/util-utf8-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.188.0.tgz", - "integrity": "sha512-hCgP4+C0Lekjpjt2zFJ2R/iHes5sBGljXa5bScOFAEkRUc0Qw0VNgTv7LpEbIOAwGmqyxBoCwBW0YHPW1DfmYQ==", - "optional": true, - "peer": true, - "dependencies": { - "@aws-sdk/util-buffer-from": "3.188.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-utf8-node/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - }, - "node_modules/@chainsafe/libp2p-gossipsub": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-3.5.0.tgz", - "integrity": "sha512-2Lp2dfWpO17dKAzOmnIQqaoPx0MA/dRLPj1q1QSCafW6+obOPGIUJcw1i1+AcBzizDdlZxmmrQx07FlYc0n+Vw==", - "dependencies": { - "@libp2p/components": "^2.0.0", - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-keys": "^1.0.2", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-pubsub": "^1.0.1", - "@libp2p/interface-registrar": "^2.0.0", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.13", - "@libp2p/peer-record": "^2.0.0", - "@libp2p/pubsub": "^3.0.0", - "@libp2p/topology": "^3.0.0", - "abortable-iterator": "^4.0.2", - "denque": "^1.5.0", - "err-code": "^3.0.1", - "it-length-prefixed": "^7.0.1", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "multiformats": "^9.6.4", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "node_modules/@chainsafe/libp2p-noise": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-7.0.3.tgz", - "integrity": "sha512-kr68a6zEC2y1sp9O1i8MlPu7LgC4U1sLciG/SF9Hvo0kOdDa5a13l3Il9R3rTIqaL9DoVfmQhfpOR/cxY2PWUw==", - "dependencies": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-connection-encrypter": "^1.0.2", - "@libp2p/interface-keys": "^1.0.2", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-collections": "^2.0.0", - "@libp2p/peer-id": "^1.1.8", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "it-length-prefixed": "^8.0.2", - "it-pair": "^2.0.2", - "it-pb-stream": "^2.0.1", - "it-pipe": "^2.0.3", - "it-stream-types": "^1.0.4", - "protons-runtime": "^2.0.1", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/it-length-prefixed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-8.0.2.tgz", - "integrity": "sha512-qYCGZ6lTaI6lcuTXUrJmVpE6clq63ULrkq1FGTxHrzexjB2cCrS/CZ5HCRDZ5IRPw33tSDUDK91S7X5S64dPyQ==", - "dependencies": { - "err-code": "^3.0.1", - "it-stream-types": "^1.0.4", - "uint8-varint": "^1.0.1", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/protons-runtime": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-2.0.2.tgz", - "integrity": "sha512-6aBGGn4scICr82Emc6+rS1qhxp9I5YUdfaR4lR10BJ6skyQxbh1vEHkrzGqQrawogwbChDrjLG8H6dI+PLh2tg==", - "dependencies": { - "byte-access": "^1.0.1", - "longbits": "^1.1.0", - "uint8-varint": "^1.0.2", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/uint8arraylist": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.1.1.tgz", - "integrity": "sha512-G1n0YItY5qdTYaZec+O8kf/yEwV20JGGtql9d3FpPrW6ZiGckS8pGslqHg8zA3N6UF+tQMPhtDGzeRVEiniRPQ==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "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==", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@exodus/schemasafe": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.9.tgz", - "integrity": "sha512-dGGHpb61hLwifAu7sotuHFDBw6GTdpG8aKC0fsK17EuTzMRvUrH7lEAr6LTJ+sx3AZYed9yZ77rltVDHyg2hRg==" - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" - }, - "node_modules/@libp2p/bootstrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-2.0.0.tgz", - "integrity": "sha512-95ekDzxfBm8fHHxJY5xJDPcSZQMuwIzJcHogSvw3+REw/LBPmpHUtTDVfx2BcMdXWpXrJUWVZzCB0zS/rCD9dg==", - "dependencies": { - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.9", - "@multiformats/mafmt": "^11.0.2", - "@multiformats/multiaddr": "^10.1.7" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/components": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/components/-/components-2.0.1.tgz", - "integrity": "sha512-3+HgBnu7MbSBcAODtMRxSbdZ54vNB2TGxmPxeNhDBFb+jTw4pUwCeXUcTkSNzsY8cME0MhsEzQ7bwpdXa9xPeQ==", - "dependencies": { - "@libp2p/interface-address-manager": "^1.0.1", - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-connection-manager": "^1.0.0", - "@libp2p/interface-content-routing": "^1.0.0", - "@libp2p/interface-dht": "^1.0.0", - "@libp2p/interface-metrics": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-routing": "^1.0.0", - "@libp2p/interface-peer-store": "^1.0.0", - "@libp2p/interface-pubsub": "^1.0.0", - "@libp2p/interface-registrar": "^2.0.0", - "@libp2p/interface-transport": "^1.0.0", - "@libp2p/interfaces": "^3.0.2", - "err-code": "^3.0.1", - "interface-datastore": "^6.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/components/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/connection/-/connection-4.0.0.tgz", - "integrity": "sha512-fBiyKzuFQ4jeKK0fQ2tCHjpRgGO/wPM0W4dHCLnb+LB94Jv9mIlMmKbaDnju8+K1Pd67/Y1/L3OQElHtwYJOsA==", - "dependencies": { - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^10.1.5", - "err-code": "^3.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/connection/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/crypto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.1.tgz", - "integrity": "sha512-JZ0OQWsfOaBmrLof1y32T0E2rnCZ94cOnSyPw/6xgXc0x6dnUPhdgQyVGaxiihSMKqWf6TlgX+6rx72vXzxf8w==", - "dependencies": { - "@libp2p/interface-keys": "^1.0.2", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", - "err-code": "^3.0.1", - "iso-random-stream": "^2.0.0", - "multiformats": "^9.4.5", - "node-forge": "^1.1.0", - "protons-runtime": "^2.0.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/crypto/node_modules/protons-runtime": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-2.0.2.tgz", - "integrity": "sha512-6aBGGn4scICr82Emc6+rS1qhxp9I5YUdfaR4lR10BJ6skyQxbh1vEHkrzGqQrawogwbChDrjLG8H6dI+PLh2tg==", - "dependencies": { - "byte-access": "^1.0.1", - "longbits": "^1.1.0", - "uint8-varint": "^1.0.2", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/crypto/node_modules/uint8arraylist": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.1.1.tgz", - "integrity": "sha512-G1n0YItY5qdTYaZec+O8kf/yEwV20JGGtql9d3FpPrW6ZiGckS8pGslqHg8zA3N6UF+tQMPhtDGzeRVEiniRPQ==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/floodsub": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/floodsub/-/floodsub-3.0.2.tgz", - "integrity": "sha512-hCEQ6IZtWhYgHKX2EgHjAqkPTl1RYCsl2R1dPlIkZ/ex9dGV1cRTh4eD3NYwgd+EAZFOsEvsnQArbMOuQFdVSQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-pubsub": "^1.0.3", - "@libp2p/logger": "^2.0.0", - "@libp2p/pubsub": "^3.0.1", - "protons-runtime": "^1.0.3", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-address-manager": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-1.0.2.tgz", - "integrity": "sha512-YUZzuY3yySXaeYd/LXkEDV/aKp6eJBsropXypwqeP3ErmEvkN06nbShQQAyNvRnloecYVAeLt2IZW2N9ImlRFg==", - "dependencies": { - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-1.0.1.tgz", - "integrity": "sha512-4MP+RvqR5xu6EWgrebLo34HWm/X+hGXtzsCKmNfmLN9bpaYhEobzL4Rm3RYi/0ICrgAZmoU8n+x8widiuwERew==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection-encrypter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-1.0.3.tgz", - "integrity": "sha512-3HNg52HmanRuV2rbQRMFUVTPceSqoC1+ifK9Jkqw3mbiTXXf1mdsv5uKbqts6QvNY5ABZeQWuqJb2QqibaI0mw==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection-manager": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-1.0.2.tgz", - "integrity": "sha512-92gM7sZhVidD+vsQbc+LbI4MMvxgRjFy9kUrrsOosbtCt0nl68rIeRFKRpfX92/4QY40tL41VXT69ijCUskEwg==", - "dependencies": { - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection-manager/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-content-routing": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-content-routing/-/interface-content-routing-1.0.2.tgz", - "integrity": "sha512-Ue1X8XrZ4ymTMQk/GWom/EKfPB5Lu7zy33ohjSix26Da/HbBvkXBdnYGDj485vxSOZGZRqeBhh21nCVjD/yLyg==", - "dependencies": { - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-dht": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-dht/-/interface-dht-1.0.1.tgz", - "integrity": "sha512-EToxQznHUnD9frWoHwq8DUaOa7RZ2qoo6beb1aWdQrEJsEdUBi62FHh9qrLkrL+E4W3rkl2+WrhSP6/iHxZZwQ==", - "dependencies": { - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-keys": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.3.tgz", - "integrity": "sha512-K8/HlRl/swbVTWuGHNHF28EytszYfUhKgUHfv8CdbMk9ZA/bgO4uU+d9rcrg/Dhw3511U3aRz2bwl2psn6rJfg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-metrics": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-2.0.0.tgz", - "integrity": "sha512-OUMspbgamrPgTQWA9zjyrcVQtXpWegSzPllDVwySBefv14l6AhpgicvVI8s+FPbzdKSj6AanlYDa7V8Ui/14CQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-discovery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.0.tgz", - "integrity": "sha512-fNP0M6uSbiOOrrJ55IPldwXrOQB/YyQGc/Jup6ZfgVy/83zx/o1JrfXU8c5QpXCnFjXNRcbUiKyTOwp3IqScOA==", - "dependencies": { - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-id": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.0.4.tgz", - "integrity": "sha512-VRnE0MqmS1kN43hyKCEdkhz0gciuDML7hpL3p8zDm0LnveNMLJsR+/VSUaugCi/muOzLaLk26WffKWbMYfnGfA==", - "dependencies": { - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-info": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.1.tgz", - "integrity": "sha512-Ysc8l3w5RGdmuvKGPgvpwBmyNeFMZdjwxpjViGgX39xOaRnYFtTAm09Xk9dNYEZxdCXd6Uycp/wV7g7NfnsIbw==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@multiformats/multiaddr": "^10.2.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-routing": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.1.tgz", - "integrity": "sha512-MKx2g0mIUI6qNuLv3xApKXR2ZrO9CUTT9ZPL0gvRlhpFCXovEkdWJ1h8KnmkR7tGPxKHt2bsCCJ8gqUaFeNstA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-1.2.0.tgz", - "integrity": "sha512-4244DmDppLf6Av6gALoO7iMPVhBO6Hx3dbkUy7Vb3OfxS//Ix+uDUib2hypIK2Q2rKmn3dfzvDBt0GwlkSMJCg==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interface-record": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-pubsub": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-1.0.4.tgz", - "integrity": "sha512-BSkt0h4fbBBHcr3LCF7fTtAoCdQBjKbTGxCa4tIJpI3m5suxC5h6OrLC2rmrexOxR9aZRkr9da4VShRyOfRLag==", - "dependencies": { - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "it-pushable": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-pubsub/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-pubsub/node_modules/it-pushable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.0.0.tgz", - "integrity": "sha512-Lpo9Q6wghDDoX8RyA2vIkpNckd5E0EY7RzIKwgiTPakrTmwDw7tKMx6DDJ1ZXrunYnHdKHnKSHYJL3Csya5U2w==" - }, - "node_modules/@libp2p/interface-record": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-record/-/interface-record-1.0.1.tgz", - "integrity": "sha512-aD8ssBCom5+lyaj1/T+xvDxWjiVvdmHaIpkYhlfbnv7zys4hNT8udW3mau0QXFf1TdRNl675WosOhmTFThZYng==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-registrar": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-registrar/-/interface-registrar-2.0.2.tgz", - "integrity": "sha512-HqDQua9J6T9KzrdYA9EhYsI0oc4CeSR1sfi0qdk073/IB3SlP+XtD7RzzVuGeyXjssqZtqf3RwjV7C+zOlHYlw==", - "dependencies": { - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-registrar/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-stream-muxer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-2.0.1.tgz", - "integrity": "sha512-DDh9DT6kgN6Uo/EkydHh0/MqLMuM7eg9AyoUV4X/tt6kWulXr/Xq5i4Ho3PsPGPEz+o+75cgZkzywOIenD0VWA==", - "dependencies": { - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-stream-muxer/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-transport": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-1.0.0.tgz", - "integrity": "sha512-dejL6gfnBIH5EG6s4YxtnSEl9ADiGJmoC5LpEsrgH0m2iHxB6EXNp8hz8ptJm86XbiMKFYXWBAeltmvHCONt9A==", - "dependencies": { - "@libp2p/interface-connection": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interfaces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.0.3.tgz", - "integrity": "sha512-8IIxw7TKpaYTtVfZN3jePLlm/E/VzqPpqerN+jhA+1s86akRSeyxVBYi3W9SWDSf0oIauHJSDE8KNxLceAfeag==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/kad-dht": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-3.0.1.tgz", - "integrity": "sha512-oZPsX9F4IUjOq/qEHb3qxRpAt18Lsvh1nzgdVbHQG1nJP1qArHcPpvX7Y+0TLsBRoQKW0rzvP2wNEXLbd8vKeA==", - "dependencies": { - "@libp2p/components": "^2.0.0", - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-address-manager": "^1.0.1", - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-connection-manager": "^1.0.0", - "@libp2p/interface-dht": "^1.0.0", - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interface-peer-store": "^1.0.0", - "@libp2p/interface-registrar": "^2.0.0", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.13", - "@libp2p/record": "^2.0.0", - "@libp2p/topology": "^3.0.0", - "@multiformats/multiaddr": "^10.1.5", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "datastore-core": "^7.0.0", - "err-code": "^3.0.1", - "hashlru": "^2.3.0", - "interface-datastore": "^6.1.0", - "it-all": "^1.0.6", - "it-drain": "^1.0.5", - "it-first": "^1.0.6", - "it-length": "^1.0.3", - "it-length-prefixed": "^8.0.2", - "it-map": "^1.0.6", - "it-merge": "^1.0.3", - "it-parallel": "^2.0.1", - "it-pipe": "^2.0.3", - "it-stream-types": "^1.0.4", - "it-take": "^1.0.2", - "k-bucket": "^5.1.0", - "multiformats": "^9.6.3", - "p-defer": "^4.0.0", - "p-queue": "^7.2.0", - "private-ip": "^2.3.3", - "protons-runtime": "^2.0.2", - "timeout-abort-controller": "^3.0.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/kad-dht/node_modules/it-length-prefixed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-8.0.2.tgz", - "integrity": "sha512-qYCGZ6lTaI6lcuTXUrJmVpE6clq63ULrkq1FGTxHrzexjB2cCrS/CZ5HCRDZ5IRPw33tSDUDK91S7X5S64dPyQ==", - "dependencies": { - "err-code": "^3.0.1", - "it-stream-types": "^1.0.4", - "uint8-varint": "^1.0.1", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/kad-dht/node_modules/protons-runtime": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-2.0.2.tgz", - "integrity": "sha512-6aBGGn4scICr82Emc6+rS1qhxp9I5YUdfaR4lR10BJ6skyQxbh1vEHkrzGqQrawogwbChDrjLG8H6dI+PLh2tg==", - "dependencies": { - "byte-access": "^1.0.1", - "longbits": "^1.1.0", - "uint8-varint": "^1.0.2", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/kad-dht/node_modules/uint8arraylist": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.1.1.tgz", - "integrity": "sha512-G1n0YItY5qdTYaZec+O8kf/yEwV20JGGtql9d3FpPrW6ZiGckS8pGslqHg8zA3N6UF+tQMPhtDGzeRVEiniRPQ==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/logger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.0.tgz", - "integrity": "sha512-aC1Yz4bni8Cui1tKCL5PzQSlS3BE/hhvyVnEHhcUz+GCo+MpbmyrZSPAb/m1e7bHrDDKkT1f9DSr7vgmS/NkuQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.2", - "debug": "^4.3.3", - "interface-datastore": "^6.1.0", - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/mdns": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-3.0.0.tgz", - "integrity": "sha512-c21HCFQ8h9MDUepuRGXYOh09i3c4PbUxK1nfo6yfkUGmW6ZnyMxD17fcWH06QD/rgKh6/HHTy7c3Dxr+RB209w==", - "dependencies": { - "@libp2p/components": "^2.0.1", - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.9", - "@multiformats/multiaddr": "^10.1.5", - "@types/multicast-dns": "^7.2.1", - "multicast-dns": "^7.2.0", - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/mplex": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-4.0.2.tgz", - "integrity": "sha512-2c1T3njtExdCZttNCRcAP4p0rG1LISSEPz3wRnlmC1iWu5tLln9/wtEkbD1loK2rEc1uhhAdBdcyiLcEzy5GGA==", - "dependencies": { - "@libp2p/components": "^2.0.0", - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-stream-muxer": "^2.0.0", - "@libp2p/logger": "^2.0.0", - "@libp2p/tracked-map": "^2.0.0", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "err-code": "^3.0.1", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^1.4.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/mplex/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/mplex/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "node_modules/@libp2p/multistream-select": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-2.0.2.tgz", - "integrity": "sha512-xW8BVHXw4JDSLFC+/3PxctwkPxPHfEYdq1hiB7F7adVp65ERg+65TEd0RD/knNOj+aMQkrQl0DUsldSTRNTWkw==", - "dependencies": { - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "it-first": "^1.0.6", - "it-handshake": "^4.0.1", - "it-length-prefixed": "^8.0.2", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/multistream-select/node_modules/it-length-prefixed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-8.0.2.tgz", - "integrity": "sha512-qYCGZ6lTaI6lcuTXUrJmVpE6clq63ULrkq1FGTxHrzexjB2cCrS/CZ5HCRDZ5IRPw33tSDUDK91S7X5S64dPyQ==", - "dependencies": { - "err-code": "^3.0.1", - "it-stream-types": "^1.0.4", - "uint8-varint": "^1.0.1", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/multistream-select/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "node_modules/@libp2p/multistream-select/node_modules/uint8arraylist": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.1.1.tgz", - "integrity": "sha512-G1n0YItY5qdTYaZec+O8kf/yEwV20JGGtql9d3FpPrW6ZiGckS8pGslqHg8zA3N6UF+tQMPhtDGzeRVEiniRPQ==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-collections": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-2.0.0.tgz", - "integrity": "sha512-A074sSs0Kv3g/1gaf3ZvMc05sLmho3c3uJtkep4L3cgHokMW0pF+3YovU5KvdgBCB8GEepXiUvYsdPYzehVl7A==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/peer-id": "^1.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-id": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.15.tgz", - "integrity": "sha512-Y33JLEfsLmLUjuC2nhQ2lBXP6PIsR892gSsNy4Vd7oILkuRhjPouIojP9BbME0m9bhVbAws+Zh9NBKtp7UH7wA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "err-code": "^3.0.1", - "multiformats": "^9.6.3", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-id-factory": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-1.0.18.tgz", - "integrity": "sha512-x7lyPrfF4kkMj6az+h1sq5L6ifTvZt2exKi8yS6/Gi/hT8rfqXROdBDtanMjJivIFlzVKJyZdfW5f5RK9Av3iQ==", - "dependencies": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-keys": "^1.0.2", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/peer-id": "^1.0.0", - "multiformats": "^9.6.3", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-id-factory/node_modules/long": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", - "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" - }, - "node_modules/@libp2p/peer-id-factory/node_modules/protobufjs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.0.0.tgz", - "integrity": "sha512-ffNIEm+quOcYtQvHdW406v1NQmZSuqVklxsXk076BtuFnlYZfigLU+JOMrTD8TUOyqHYbRI/fSVNvgd25YeN3w==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@libp2p/peer-id-factory/node_modules/protons-runtime": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-3.1.0.tgz", - "integrity": "sha512-S1iSPQC0McdHKJRi0XcATBkWgwWPx46UDfrnshYDXBvGHSYqkFtn4MQ8Gatf67w7FzFtHivA+Hb0ZPq56upG8w==", - "dependencies": { - "protobufjs": "^7.0.0", - "uint8arraylist": "^2.3.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - }, - "peerDependencies": { - "uint8arraylist": "^2.3.2" - } - }, - "node_modules/@libp2p/peer-id-factory/node_modules/uint8arraylist": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.3.2.tgz", - "integrity": "sha512-4ybc/jixmtGhUrebJ0bzB95TjEbskWxBKBRrAozw7P6WcAcZdPMYSLdDuNoEEGo/Cwe+0TNic9CXzWUWzy1quw==", - "dependencies": { - "uint8arrays": "^3.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-record": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-2.0.2.tgz", - "integrity": "sha512-JkH9fBpBpGQYqDMJP3+LNtXLyjNCf0fVcBkdjyfPTSwUXTPJ5NxsluJAH+MZkkrJG9YJG22NgrZO5784GSLAaA==", - "dependencies": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-record": "^1.0.1", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.13", - "@libp2p/utils": "^2.0.0", - "@multiformats/multiaddr": "^10.1.5", - "err-code": "^3.0.1", - "interface-datastore": "^6.1.0", - "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-map": "^1.0.6", - "it-pipe": "^2.0.3", - "multiformats": "^9.6.3", - "protons-runtime": "^1.0.4", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-store": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-3.1.0.tgz", - "integrity": "sha512-GYOK/kTjrDxVW2CIQII60zGgLx4EDG1CLXHOOcsdob8MCw/A23UwKEdIxsw2YAJvQBExDWPZjZvbG1ewPHtrFQ==", - "dependencies": { - "@libp2p/components": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interface-peer-store": "^1.1.0", - "@libp2p/interface-record": "^1.0.1", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.0", - "@libp2p/peer-record": "^2.0.0", - "@multiformats/multiaddr": "^10.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^6.1.0", - "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-map": "^1.0.6", - "it-pipe": "^2.0.3", - "mortice": "^3.0.0", - "multiformats": "^9.6.3", - "protons-runtime": "^1.0.4", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/pubsub": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-3.0.3.tgz", - "integrity": "sha512-DKIkvjjX7/I+no7SAyCiK4lSs/u2FdnSaksvxkD4TocUyKqlXcDO89rYQElSHGN5HaHa59DLaClyQdzuqoLLCg==", - "dependencies": { - "@libp2p/components": "^2.0.0", - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-pubsub": "^1.0.3", - "@libp2p/interface-registrar": "^2.0.0", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-collections": "^2.0.0", - "@libp2p/peer-id": "^1.1.0", - "@libp2p/topology": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "iso-random-stream": "^2.0.0", - "it-length-prefixed": "^7.0.1", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "multiformats": "^9.6.3", - "p-queue": "^7.2.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/pubsub-peer-discovery": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/pubsub-peer-discovery/-/pubsub-peer-discovery-6.0.0.tgz", - "integrity": "sha512-5+5n182x98r7XimoT5tIfVe1azaN0rEEN9YwcwKfVAzXsEgoGO1nN1bKIgDSpCOe/A8VJXT8E9Qbryqfcf1JjQ==", - "dependencies": { - "@libp2p/components": "^1.0.0", - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interface-pubsub": "^1.0.1", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.8", - "@multiformats/multiaddr": "^10.1.7", - "protons-runtime": "^1.0.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/pubsub-peer-discovery/node_modules/@libp2p/components": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/components/-/components-1.0.0.tgz", - "integrity": "sha512-FksZm+bboEWAqHmw6GBRn+ppQEUwyt7TDTEn4J6nsA8OAXRi4R0bQc9KrdTrzomdaWjBTyAtA4hA1DYxQmmEmg==", - "dependencies": { - "@libp2p/interface-address-manager": "^1.0.1", - "@libp2p/interface-connection": "^1.0.0", - "@libp2p/interface-connection-manager": "^1.0.0", - "@libp2p/interface-content-routing": "^1.0.0", - "@libp2p/interface-dht": "^1.0.0", - "@libp2p/interface-metrics": "^1.0.2", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-routing": "^1.0.0", - "@libp2p/interface-peer-store": "^1.0.0", - "@libp2p/interface-pubsub": "^1.0.0", - "@libp2p/interface-registrar": "^1.0.0", - "@libp2p/interface-transport": "^1.0.0", - "@libp2p/interfaces": "^3.0.2", - "err-code": "^3.0.1", - "interface-datastore": "^6.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/pubsub-peer-discovery/node_modules/@libp2p/interface-metrics": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-1.0.3.tgz", - "integrity": "sha512-kPSQY/dJqeJ92YeldismoIAxWn0z13kOz0UJY7M5QE7KcW5tJAYDNzDw6sIKKbbWN7bU6KJydnYBSRzhXpLlDw==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/pubsub-peer-discovery/node_modules/@libp2p/interface-registrar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-registrar/-/interface-registrar-1.1.0.tgz", - "integrity": "sha512-1Uoyn3KAecklXhsit7ANrc0FP8+mh8pVXB7c8LwGpVwKHK4IPAAfB+beUZSrHHEabp16T87FokaVYRLrGYUqRQ==", - "dependencies": { - "@libp2p/interface-connection": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/pubsub/node_modules/it-pushable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.0.0.tgz", - "integrity": "sha512-Lpo9Q6wghDDoX8RyA2vIkpNckd5E0EY7RzIKwgiTPakrTmwDw7tKMx6DDJ1ZXrunYnHdKHnKSHYJL3Csya5U2w==" - }, - "node_modules/@libp2p/record": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-2.0.0.tgz", - "integrity": "sha512-DkGDNV1pTXmXSc8ncqn57vlIJNX0soYc/EAJZnoQv9SRYuWGWXtX6FzEpMFL3w/FvTf26U1pXVvHjYI8f6LeVg==", - "dependencies": { - "@libp2p/interface-dht": "^1.0.0", - "err-code": "^3.0.1", - "multiformats": "^9.4.5", - "protons-runtime": "^1.0.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/tcp": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-3.0.2.tgz", - "integrity": "sha512-2+9KkMkY0EN0D3BzfG/DeBHW6FJYS5d5RTjw7Fyr5a6vpFoWxTmdX+J+yNgpz6szXX9paQ+iSJLHp5xvQ70hrw==", - "dependencies": { - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-transport": "^1.0.0", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/utils": "^3.0.0", - "@multiformats/mafmt": "^11.0.2", - "@multiformats/multiaddr": "^10.1.5", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "stream-to-it": "^0.2.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/tcp/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/tcp/node_modules/@libp2p/utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-3.0.0.tgz", - "integrity": "sha512-ik2IjnoO+73/5b3gSfXyMS3+eQAhNpzhzvvqQNOI8gcU6jcLvliStldwt1LKiMe9M3ZUOy6LHeB/3vF1dO9CSA==", - "dependencies": { - "@achingbrain/ip-address": "^8.1.0", - "@libp2p/interface-connection": "^2.1.0", - "@libp2p/interface-peer-store": "^1.0.0", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^10.1.1", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "is-loopback-addr": "^2.0.1", - "it-stream-types": "^1.0.4", - "private-ip": "^2.1.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/topology": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/topology/-/topology-3.0.0.tgz", - "integrity": "sha512-gQMkO1j7D/7A9MfL2mtLxr0StXzjqK0V554w7hk25E66Ly0wp1K7vPEfhE9rExLSaQqe9ir4nijhbA3rNnxZng==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-registrar": "^2.0.0", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^10.2.0", - "err-code": "^3.0.1", - "it-all": "^1.0.6" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/tracked-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/tracked-map/-/tracked-map-2.0.1.tgz", - "integrity": "sha512-T0/m67VAZuEw+AO9U+rlLFkHUqB1w0Dy9Pqw2+f0XL6uplv2xXKSJeU0yUAjiOGsfrJ4pUPPQbgsz2Xr3WNoIQ==", - "dependencies": { - "@libp2p/interface-metrics": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-2.0.1.tgz", - "integrity": "sha512-R0r9fkskuTmm5jMrlRXWpTdYJeDYcNQ1KdfSEmoVlCs5AlTeWn31+cdaHQihSEbkpEKtVCExfsZkwa3f7C1l8A==", - "dependencies": { - "@achingbrain/ip-address": "^8.1.0", - "@libp2p/interface-connection": "^1.0.1", - "@libp2p/interface-peer-store": "^1.0.0", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^10.1.1", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "is-loopback-addr": "^2.0.1", - "it-stream-types": "^1.0.4", - "private-ip": "^2.1.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/websockets": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-3.0.1.tgz", - "integrity": "sha512-H9xyxvZ0+0SACIGY6Ppa19K3h567set8tfSnxy/fjzUAJRM6ZwYMROh5N0dMLjyl/vjqTNh5iyJmnO3upddGGA==", - "dependencies": { - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-transport": "^1.0.0", - "@libp2p/interfaces": "^3.0.1", - "@libp2p/logger": "^2.0.0", - "@libp2p/utils": "^3.0.0", - "@multiformats/mafmt": "^11.0.2", - "@multiformats/multiaddr": "^10.1.5", - "@multiformats/multiaddr-to-uri": "^9.0.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "it-ws": "^5.0.0", - "p-defer": "^4.0.0", - "p-timeout": "^5.0.2", - "wherearewe": "^1.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/websockets/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/websockets/node_modules/@libp2p/utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-3.0.0.tgz", - "integrity": "sha512-ik2IjnoO+73/5b3gSfXyMS3+eQAhNpzhzvvqQNOI8gcU6jcLvliStldwt1LKiMe9M3ZUOy6LHeB/3vF1dO9CSA==", - "dependencies": { - "@achingbrain/ip-address": "^8.1.0", - "@libp2p/interface-connection": "^2.1.0", - "@libp2p/interface-peer-store": "^1.0.0", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^10.1.1", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "is-loopback-addr": "^2.0.1", - "it-stream-types": "^1.0.4", - "private-ip": "^2.1.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@multiformats/mafmt": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-11.0.2.tgz", - "integrity": "sha512-KesMM4fSEpMz1kZPzlvdwYNYrq5iH38S5EDKLu5qsGG4NT94UaruTjase9osaDW+CcDfshK9uZUD9lzpXJGreA==", - "dependencies": { - "@multiformats/multiaddr": "^10.1.1" - } - }, - "node_modules/@multiformats/multiaddr": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.3.3.tgz", - "integrity": "sha512-+LX9RovG7DJsANb+U6VchV/tApcdJzeafbi5+MPUam90oL91BbEh6ozNZOz4Qf5ZEeilexc12oomatmODJh1/w==", - "dependencies": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^4.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@multiformats/multiaddr-to-uri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.1.tgz", - "integrity": "sha512-kSyHZ2lKjoEzHu/TM4ZVwFj4AWV1B9qFBFJjYb/fK1NqrnrNb/M3uhoyckJvP7WZvpDsnEc7fUCpmPipDY6LMw==", - "dependencies": { - "@multiformats/multiaddr": "^10.1.1" - } - }, - "node_modules/@noble/ed25519": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.6.0.tgz", - "integrity": "sha512-UKju89WV37IUALIMfKhKW3psO8AqmrE/GvH6QbPKjzolQ98zM7WmGUeY+xdIgSf5tqPFf75ZCYMgym6E9Jsw3Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/secp256k1": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.0.tgz", - "integrity": "sha512-DWSsg8zMHOYMYBqIQi96BQuthZrp98LCeMNcUOaffCIVYQ5yxDbNikLF+H7jEnmNNmXbtVic46iCuVWzar+MgA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@opencensus/core": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz", - "integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==", - "dependencies": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@opencensus/core/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@opencensus/core/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/@opencensus/propagation-b3": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", - "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", - "dependencies": { - "@opencensus/core": "^0.0.8", - "uuid": "^3.2.1" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", - "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", - "dependencies": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@opencensus/propagation-b3/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@opencensus/propagation-b3/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/@pm2/agent": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.1.tgz", - "integrity": "sha512-QKHMm6yexcvdDfcNE7PL9D6uEjoQPGRi+8dh+rc4Hwtbpsbh5IAvZbz3BVGjcd4HaX6pt2xGpOohG7/Y2L4QLw==", - "dependencies": { - "async": "~3.2.0", - "chalk": "~3.0.0", - "dayjs": "~1.8.24", - "debug": "~4.3.1", - "eventemitter2": "~5.0.1", - "fast-json-patch": "^3.0.0-1", - "fclone": "~1.0.11", - "nssocket": "0.6.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "proxy-agent": "~5.0.0", - "semver": "~7.2.0", - "ws": "~7.4.0" - } - }, - "node_modules/@pm2/agent/node_modules/semver": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", - "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/agent/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@pm2/io": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", - "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", - "dependencies": { - "@opencensus/core": "0.0.9", - "@opencensus/propagation-b3": "0.0.8", - "async": "~2.6.1", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "require-in-the-middle": "^5.0.0", - "semver": "6.3.0", - "shimmer": "^1.2.0", - "signal-exit": "^3.0.3", - "tslib": "1.9.3" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@pm2/io/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/io/node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" - }, - "node_modules/@pm2/io/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@pm2/js-api": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", - "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", - "dependencies": { - "async": "^2.6.3", - "axios": "^0.21.0", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "ws": "^7.0.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@pm2/js-api/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/js-api/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/@pm2/js-api/node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" - }, - "node_modules/@pm2/js-api/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "dependencies": { - "@stablelib/int": "^1.0.1" - } - }, - "node_modules/@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "node_modules/@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "node_modules/@stablelib/hkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", - "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", - "dependencies": { - "@stablelib/hash": "^1.0.1", - "@stablelib/hmac": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/hmac": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", - "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "node_modules/@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "dependencies": { - "@stablelib/bytes": "^1.0.1" - } - }, - "node_modules/@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha256": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", - "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "node_modules/@stablelib/x25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.2.tgz", - "integrity": "sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw==", - "dependencies": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/dns-packet": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.2.4.tgz", - "integrity": "sha512-OAruArypdNxR/tzbmrtoyEuXeNTLaZCpO19BXaNC10T5ACIbvjmvhmV2RDEy2eLc3w8IjK7SY3cvUCcAW+sfoQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/multicast-dns": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@types/multicast-dns/-/multicast-dns-7.2.1.tgz", - "integrity": "sha512-A2PmB8MRcNVEkw6wzGT5rtBHqyHOVjiRMkJH+zpJKXipSi+GGkHg6JjNFApDiYK9WefJqkVG0taln1VMl4TGfw==", - "dependencies": { - "@types/dns-packet": "*", - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "17.0.43", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.43.tgz", - "integrity": "sha512-jnUpgw8fL9kP2iszfIDyBQtw5Mf4/XSqy0Loc1J9pI14ejL83XcCEvSf50Gs/4ET0I9VCCDoOfufQysj0S66xA==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "node_modules/@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==", - "peer": true - }, - "node_modules/@types/whatwg-url": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", - "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", - "peer": true, - "dependencies": { - "@types/node": "*", - "@types/webidl-conversions": "*" - } - }, - "node_modules/abortable-iterator": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-4.0.2.tgz", - "integrity": "sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g==", - "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^1.0.3" - } - }, - "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.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/amp": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==" - }, - "node_modules/amp-message": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==", - "dependencies": { - "amp": "0.3.1" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "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==", - "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/any-signal": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", - "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "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/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ast-types/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/async-listener": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", - "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", - "dependencies": { - "semver": "^5.3.0", - "shimmer": "^1.1.0" - }, - "engines": { - "node": "<=0.11.8 || >0.11.10" - } - }, - "node_modules/async-listener/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.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==" - }, - "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==", - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/blessed": { - "version": "0.1.81", - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", - "integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==", - "bin": { - "blessed": "bin/tput.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/bodec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", - "integrity": "sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==" - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "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.10.3", - "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/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/bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true, - "peer": true - }, - "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==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", - "peer": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/bson/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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.2.1" - } - }, - "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==", - "peer": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/byte-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/byte-access/-/byte-access-1.0.1.tgz", - "integrity": "sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw==", - "dependencies": { - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/byte-access/node_modules/uint8arraylist": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.0.0.tgz", - "integrity": "sha512-OOx2TiInuBOlvDDhS0um83DWVTvgvazvo96xkMVBV3RbDI5HPxdqudzsIKMzh2lklP52diJ/tVhAhlxHS2f0jA==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.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.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" - }, - "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/charm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==" - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/cli-tableau": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", - "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", - "dependencies": { - "chalk": "3.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "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==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "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/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color/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==" - }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "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==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "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.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/continuation-local-storage": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", - "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", - "dependencies": { - "async-listener": "^0.6.0", - "emitter-listener": "^1.1.1" - } - }, - "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/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/croner": { - "version": "4.1.97", - "resolved": "https://registry.npmjs.org/croner/-/croner-4.1.97.tgz", - "integrity": "sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==" - }, - "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==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/culvert": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", - "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==" - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "peer": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/datastore-core": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-7.0.1.tgz", - "integrity": "sha512-TrV0PRtwwDo2OfzYpnVQmVgDc4HwtpYkzb6da5GZxKElZN7eDT5mBtrkVbXbyTn+Y2+WPiMBm6/KbJD7p0TBfA==", - "dependencies": { - "debug": "^4.1.1", - "err-code": "^3.0.1", - "interface-datastore": "^6.0.2", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "it-take": "^1.0.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "node_modules/datastore-core/node_modules/it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "dependencies": { - "fast-fifo": "^1.0.0" - } - }, - "node_modules/dayjs": { - "version": "1.8.36", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", - "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" - }, - "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/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==" - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/degenerator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", - "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==", - "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.8" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, - "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/dns-over-http-resolver": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.0.tgz", - "integrity": "sha512-eb8RGy6k54JdD7Rjw8g65y1MyA4z3m3IIYh7uazkgZuKIdFn8gYt8dydMm3op+2UshDdk9EexrXcDluKNY/CDg==", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^4.0.2", - "receptacle": "^1.3.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "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/emitter-listener": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", - "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", - "dependencies": { - "shimmer": "^1.2.0" - } - }, - "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==" - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "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/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "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==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "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==", - "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/event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, - "node_modules/eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==" - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "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==", - "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/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "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.10.3", - "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-list-endpoints": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/express-list-endpoints/-/express-list-endpoints-3.0.1.tgz", - "integrity": "sha512-Ul3OY7r7Lc84R4z/xI5Jx6wbMzxg61SQh4BhVNDIPPtim6vHPjrKY+QhYYM8FdOswjHZstGK7J0I6HYf8FKtVA==" - }, - "node_modules/express-oas-generator": { - "version": "1.0.45", - "resolved": "https://registry.npmjs.org/express-oas-generator/-/express-oas-generator-1.0.45.tgz", - "integrity": "sha512-QBLVG/fwaS/Hk9PhablHZHJb5+xiwV394PJr7Ao65E6RypQnJexrS+tuUMaVEQZcLER/Bfm7MKn9SQrbzyxEug==", - "dependencies": { - "@types/express": "^4.17.13", - "express-list-endpoints": "^3.0.1", - "generate-schema": "^2.6.0", - "lodash.merge": "^4.6.2", - "mkdirp": "^1.0.4", - "openapi-types": "^1.3.5", - "swagger-ui-express": "^4.4.0", - "swagger2openapi": "^7.0.8", - "typescript": "^3.9.10", - "winston": "^3.8.1" - }, - "peerDependencies": { - "bson": "^4.0.4", - "mongoose": "^6.4.6", - "mongoose-to-swagger": "^1.4.0" - } - }, - "node_modules/express-oas-generator/node_modules/openapi-types": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.5.tgz", - "integrity": "sha512-11oi4zYorsgvg5yBarZplAqbpev5HkuVNPlZaPTknPDzAynq+lnJdXAmruGWP0s+dNYZS7bjM+xrTpJw7184Fg==" - }, - "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/fast-fifo": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", - "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==" - }, - "node_modules/fast-json-patch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", - "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==" - }, - "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==" - }, - "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/fast-xml-parser": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", - "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", - "optional": true, - "peer": true, - "dependencies": { - "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - }, - "node_modules/fclone": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", - "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==" - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "peer": true, - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "engines": { - "node": ">= 6" - } - }, - "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==", - "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/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "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==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "peer": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "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/freeport-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/freeport-promise/-/freeport-promise-2.0.0.tgz", - "integrity": "sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "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": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "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==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ftp/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ftp/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/generate-schema": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/generate-schema/-/generate-schema-2.6.0.tgz", - "integrity": "sha512-EUBKfJNzT8f91xUk5X5gKtnbdejZeE065UAJ3BCzE8VEbvwKI9Pm5jaWmqVeK1MYc1g5weAVFDTSJzN7ymtTqA==", - "dependencies": { - "commander": "^2.9.0", - "type-of-is": "^3.4.0" - }, - "bin": { - "generate-schema": "bin/generate-schema" - } - }, - "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==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-2.0.0.tgz", - "integrity": "sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg==" - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/get-uri/node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/git-node-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", - "integrity": "sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ==" - }, - "node_modules/git-sha1": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", - "integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "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/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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-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/hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - }, - "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/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http2-client": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", - "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "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==", - "engines": { - "node": ">=10.17.0" - } - }, - "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/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "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/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/interface-datastore": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.0.tgz", - "integrity": "sha512-oNHdsrWBsI/kDwUtEgt+aaZtQFKtQYN0TGZzc3SGiIA6m+plZ6malhmsygtbmDpfpIsNNC7ce9Gyaj+Tki+gVw==", - "dependencies": { - "interface-store": "^2.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/interface-store": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", - "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" - }, - "node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" - }, - "node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "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==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-electron": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz", - "integrity": "sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw==" - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "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==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-ip": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-4.0.0.tgz", - "integrity": "sha512-4B4XA2HEIm/PY+OSpeMBXr8pGWBYbXuHgjMAqrwbLO3CPTCAd9ArEJzBUKGZtk9viY6+aSfadGnWyjY3ydYZkw==", - "dependencies": { - "ip-regex": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-loopback-addr": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz", - "integrity": "sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw==" - }, - "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==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/iso-random-stream": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", - "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", - "dependencies": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/iso-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", - "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", - "engines": { - "node": ">=12" - } - }, - "node_modules/it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" - }, - "node_modules/it-drain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" - }, - "node_modules/it-filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" - }, - "node_modules/it-first": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" - }, - "node_modules/it-foreach": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-0.1.1.tgz", - "integrity": "sha512-ZLxL651N5w5SL/EIIcrXELgYrrkuEKj/TErG93C4lr6lNZziKsf338ljSG85PjQfu7Frg/1wESl5pLrPSFXI9g==" - }, - "node_modules/it-handshake": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.0.1.tgz", - "integrity": "sha512-80dJPkxA77iTy172OnTWg5pjiOQ7KO0+o2FGCyJn3Vb/NJQKQiWL7LJY50uT5n8EYzv8SV5dDNF234PwMsQAXw==", - "dependencies": { - "it-map": "^1.0.6", - "it-pushable": "^3.0.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-handshake/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "node_modules/it-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-1.0.4.tgz", - "integrity": "sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA==" - }, - "node_modules/it-length-prefixed": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-7.0.1.tgz", - "integrity": "sha512-UozKoT0zZPUa0LO9OSq5KaLKPn83U7Vsy/BNAN0TUXfTI/pKrOz6RuyTSOok6NDad12FZsShBGnl9DKlfDT95g==", - "dependencies": { - "err-code": "^3.0.1", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^1.2.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-map": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" - }, - "node_modules/it-merge": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz", - "integrity": "sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw==", - "dependencies": { - "it-pushable": "^1.4.0" - } - }, - "node_modules/it-merge/node_modules/it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "dependencies": { - "fast-fifo": "^1.0.0" - } - }, - "node_modules/it-pair": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.2.tgz", - "integrity": "sha512-QGgUwGtzE4mI8yPZawL+9wq49SBmhQdjKW+ChKBm4PUwRNdkgSoyPlu280iNyS0JscBG3pvytJ8JNVPSEBQNjg==", - "dependencies": { - "it-stream-types": "^1.0.3", - "p-defer": "^4.0.0" - } - }, - "node_modules/it-parallel": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-2.0.1.tgz", - "integrity": "sha512-VnHs9UJXSr8jmPnquS76qhLU+tE3WvLJqBUKMjAD2/Z1O5JsjpHMqq8yvVByyuwuFnh1OG9faJVGc5c9t+T6Kg==", - "dependencies": { - "p-defer": "^3.0.0" - } - }, - "node_modules/it-parallel/node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/it-pb-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-pb-stream/-/it-pb-stream-2.0.1.tgz", - "integrity": "sha512-nX/61k3xNeOYhQVLo2w3fhM3x9/I/WRo8Q+gBcuFTw8ki2A9mSB956CnL2bQ2qGqevWOXPeJBwMJuGGSvfgyJw==", - "dependencies": { - "it-handshake": "^4.0.1", - "it-length-prefixed": "^8.0.2", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-pb-stream/node_modules/it-length-prefixed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-8.0.2.tgz", - "integrity": "sha512-qYCGZ6lTaI6lcuTXUrJmVpE6clq63ULrkq1FGTxHrzexjB2cCrS/CZ5HCRDZ5IRPw33tSDUDK91S7X5S64dPyQ==", - "dependencies": { - "err-code": "^3.0.1", - "it-stream-types": "^1.0.4", - "uint8-varint": "^1.0.1", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-pb-stream/node_modules/uint8arraylist": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.1.1.tgz", - "integrity": "sha512-G1n0YItY5qdTYaZec+O8kf/yEwV20JGGtql9d3FpPrW6ZiGckS8pGslqHg8zA3N6UF+tQMPhtDGzeRVEiniRPQ==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-pipe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-2.0.3.tgz", - "integrity": "sha512-1bfNC0v8yFDQu5KwZpHZrVO+nxOIEXfrobYtv55NXcsMfGu2SueMOCyCm63khejA+sCU0gLcRFQIfKWlBNNTGw==", - "dependencies": { - "it-merge": "^1.0.4", - "it-pushable": "^2.0.0", - "it-stream-types": "^1.0.3" - } - }, - "node_modules/it-pushable": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-2.0.2.tgz", - "integrity": "sha512-f/n6HqXGDbHvuMR/3UN+S6W4y/bS1Pxg6Lb0oVc5dbflxy5f3NKkizKs86B8vzqHnB9hm1YpE0pgcEvI3FKDQw==" - }, - "node_modules/it-reader": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.1.tgz", - "integrity": "sha512-C+YRk3OTufbKSJMNEonfEw+9F38llmwwZvqhkjb0xIgob7l4L3p01Yt43+bHRI8SSppAOgk5AKLqas7ea0UTAw==", - "dependencies": { - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-reader/node_modules/uint8arraylist": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.1.1.tgz", - "integrity": "sha512-G1n0YItY5qdTYaZec+O8kf/yEwV20JGGtql9d3FpPrW6ZiGckS8pGslqHg8zA3N6UF+tQMPhtDGzeRVEiniRPQ==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-sort": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-1.0.1.tgz", - "integrity": "sha512-c+C48cP7XMMebB9irLrJs2EmpLILId8NYSojqAqN8etE8ienx0azBgaKvZHYH1DkerqIul0Fl2FqISu2BZgTEQ==", - "dependencies": { - "it-all": "^1.0.6" - } - }, - "node_modules/it-stream-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.4.tgz", - "integrity": "sha512-0F3CqTIcIHwtnmIgqd03a7sw8BegAmE32N2w7anIGdALea4oAN4ltqPgDMZ7zn4XPLZifXEZlBXSzgg64L1Ebw==" - }, - "node_modules/it-take": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" - }, - "node_modules/it-ws": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-5.0.2.tgz", - "integrity": "sha512-beq/nBWuKm2Ds4nYSfPuZRF0USVZJhsIvuUH3kRE5QdaCzivDK7zyeewDgsNBSPr6hPgF5dyPP5NXcXhUcb9QQ==", - "dependencies": { - "event-iterator": "^2.0.0", - "iso-url": "^1.1.2", - "it-stream-types": "^1.0.2", - "uint8arrays": "^3.0.0", - "ws": "^8.4.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/js-git": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", - "integrity": "sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==", - "dependencies": { - "bodec": "^0.1.0", - "culvert": "^0.1.2", - "git-sha1": "^0.1.2", - "pako": "^0.2.5" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "optional": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/kareem": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz", - "integrity": "sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA==", - "peer": true - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "node_modules/lazy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==", - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libp2p": { - "version": "0.37.3-05e8e7e", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.37.3-05e8e7e.tgz", - "integrity": "sha512-0RR5X6Cjkt8odz6MTw/Y5eOgtg8YHLwHZt0uETKiS6MRhebgwl3ytlIuZDjT8WsvKVBqGeDGtXtWSEHvy3SlSw==", - "dependencies": { - "@achingbrain/nat-port-mapper": "^1.0.3", - "@libp2p/components": "^2.0.1", - "@libp2p/connection": "^4.0.0", - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-address-manager": "^1.0.1", - "@libp2p/interface-connection": "^2.0.0", - "@libp2p/interface-connection-encrypter": "^1.0.2", - "@libp2p/interface-content-routing": "^1.0.1", - "@libp2p/interface-dht": "^1.0.0", - "@libp2p/interface-metrics": "^2.0.0", - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interface-peer-routing": "^1.0.0", - "@libp2p/interface-peer-store": "^1.2.0", - "@libp2p/interface-pubsub": "^1.0.3", - "@libp2p/interface-registrar": "^2.0.0", - "@libp2p/interface-stream-muxer": "^2.0.1", - "@libp2p/interface-transport": "^1.0.0", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/multistream-select": "^2.0.1", - "@libp2p/peer-collections": "^2.0.0", - "@libp2p/peer-id": "^1.1.10", - "@libp2p/peer-id-factory": "^1.0.9", - "@libp2p/peer-record": "^3.0.0", - "@libp2p/peer-store": "^3.0.0", - "@libp2p/tracked-map": "^2.0.1", - "@libp2p/utils": "^3.0.0", - "@multiformats/mafmt": "^11.0.2", - "@multiformats/multiaddr": "^10.1.8", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "datastore-core": "^7.0.0", - "err-code": "^3.0.1", - "events": "^3.3.0", - "hashlru": "^2.3.0", - "interface-datastore": "^6.1.0", - "it-all": "^1.0.6", - "it-drain": "^1.0.5", - "it-filter": "^1.0.3", - "it-first": "^1.0.6", - "it-foreach": "^0.1.1", - "it-handshake": "^4.0.0", - "it-length-prefixed": "^7.0.1", - "it-map": "^1.0.6", - "it-merge": "^1.0.3", - "it-pair": "^2.0.2", - "it-pipe": "^2.0.3", - "it-sort": "^1.0.1", - "it-stream-types": "^1.0.4", - "merge-options": "^3.0.4", - "multiformats": "^9.6.3", - "mutable-proxy": "^1.0.0", - "node-forge": "^1.2.1", - "p-fifo": "^1.0.0", - "p-retry": "^5.0.0", - "p-settle": "^5.0.0", - "private-ip": "^2.3.3", - "protons-runtime": "^1.0.4", - "retimer": "^3.0.0", - "sanitize-filename": "^1.6.3", - "set-delayed-interval": "^1.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arrays": "^3.0.0", - "wherearewe": "^1.0.0", - "xsalsa20": "^1.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p-crypto": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz", - "integrity": "sha512-EXFrhSpiHtJ+/L8xXDvQNK5VjUMG51u878jzZcaT5XhuN/zFg6PWJFnl/qB2Y2j7eMWnvCRP7Kp+ua2H36cG4g==", - "dependencies": { - "@noble/ed25519": "^1.5.1", - "@noble/secp256k1": "^1.3.0", - "err-code": "^3.0.1", - "iso-random-stream": "^2.0.0", - "multiformats": "^9.4.5", - "node-forge": "^1.2.1", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/libp2p-gossipsub": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/libp2p-gossipsub/-/libp2p-gossipsub-0.13.0.tgz", - "integrity": "sha512-xy2jRZGmJpjy++Di6f1admtjve8Fx0z5l8NISTQS282egwbRMmTPE6/UeYktb6hNGAgtSTIwXdHjXmMOiTarFA==", - "dependencies": { - "@types/debug": "^4.1.7", - "debug": "^4.3.1", - "denque": "^1.5.0", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "libp2p-interfaces": "^4.0.4", - "peer-id": "^0.16.0", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/libp2p-gossipsub/node_modules/it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "node_modules/libp2p-interfaces": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-4.0.6.tgz", - "integrity": "sha512-3KjzNEIWhi+VoOamLvgKKUE/xqwxSw/JYqsBnfMhAWVRvRtosROtVT03wci2XbuuowCYw+/hEX1xKJIR1w5n0A==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-length-prefixed": "^5.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "libp2p-crypto": "^0.21.0", - "multiaddr": "^10.0.0", - "multiformats": "^9.1.2", - "p-queue": "^6.6.2", - "peer-id": "^0.16.0", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/libp2p-interfaces/node_modules/abortable-iterator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", - "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/libp2p-interfaces/node_modules/get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "node_modules/libp2p-interfaces/node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-interfaces/node_modules/it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "node_modules/libp2p-interfaces/node_modules/it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "dependencies": { - "fast-fifo": "^1.0.0" - } - }, - "node_modules/libp2p-interfaces/node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/libp2p-interfaces/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/libp2p/node_modules/@libp2p/interface-connection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-2.1.1.tgz", - "integrity": "sha512-gjugaMsZvfo3r4tCc/yPifVQsfLogmEmJtW+eXMNiNDna3ZfmwWD9Z+KyEwuVsXKs0C4GESXei2y4SJSCEfkbA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^10.2.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/@libp2p/peer-record": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-3.0.0.tgz", - "integrity": "sha512-JN7Q78G1lg9fRiaghbzN0ZlerkOE646XaMrtUtAmMWsumrs75tTuZHgcYLsoAxiL6WmzJ4I9uCoY+jUl3O7l/Q==", - "dependencies": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-record": "^1.0.1", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.13", - "@libp2p/utils": "^3.0.0", - "@multiformats/multiaddr": "^10.1.5", - "err-code": "^3.0.1", - "interface-datastore": "^6.1.0", - "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-map": "^1.0.6", - "it-pipe": "^2.0.3", - "multiformats": "^9.6.3", - "protons-runtime": "^1.0.4", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/@libp2p/utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-3.0.0.tgz", - "integrity": "sha512-ik2IjnoO+73/5b3gSfXyMS3+eQAhNpzhzvvqQNOI8gcU6jcLvliStldwt1LKiMe9M3ZUOy6LHeB/3vF1dO9CSA==", - "dependencies": { - "@achingbrain/ip-address": "^8.1.0", - "@libp2p/interface-connection": "^2.1.0", - "@libp2p/interface-peer-store": "^1.0.0", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^10.1.1", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "is-loopback-addr": "^2.0.1", - "it-stream-types": "^1.0.4", - "private-ip": "^2.1.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "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.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "engines": { - "node": ">=0.8.6" - } - }, - "node_modules/logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "dependencies": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/logops": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/logops/-/logops-2.1.2.tgz", - "integrity": "sha512-J58XQ0myBbOKNesMcChdoYhmf4OLorNP8h/p+aII0bFLRN2Y3EKX0GHAN7H0sN00aocb6lWJwayGT1Lnvdi7Ig==", - "dependencies": { - "chalk": "^4.1.2", - "lodash": "^4.17.15", - "safe-json-stringify": "^1.2.0", - "serr": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/logops/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/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/longbits": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/longbits/-/longbits-1.1.0.tgz", - "integrity": "sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ==", - "dependencies": { - "byte-access": "^1.0.1", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/longbits/node_modules/uint8arraylist": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.0.0.tgz", - "integrity": "sha512-OOx2TiInuBOlvDDhS0um83DWVTvgvazvo96xkMVBV3RbDI5HPxdqudzsIKMzh2lklP52diJ/tVhAhlxHS2f0jA==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "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==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "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/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true, - "peer": true - }, - "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-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==" - }, - "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/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-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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "node_modules/mongodb": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", - "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", - "peer": true, - "dependencies": { - "bson": "^4.7.0", - "denque": "^2.1.0", - "mongodb-connection-string-url": "^2.5.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">=12.9.0" - }, - "optionalDependencies": { - "@aws-sdk/credential-providers": "^3.186.0", - "saslprep": "^1.0.3" - } - }, - "node_modules/mongodb-connection-string-url": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz", - "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==", - "peer": true, - "dependencies": { - "@types/whatwg-url": "^8.2.1", - "whatwg-url": "^11.0.0" - } - }, - "node_modules/mongodb/node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/mongoose": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.7.0.tgz", - "integrity": "sha512-Jt6NSiSpgcrSBzRb9+YwkpjjVuq4H532c4jbf+5Nu0wd/nIPHSOKhr8jnQZ8gQTdPjubF+szR5r6KMSqaY4/Wg==", - "peer": true, - "dependencies": { - "bson": "^4.6.5", - "kareem": "2.4.1", - "mongodb": "4.11.0", - "mpath": "0.9.0", - "mquery": "4.0.3", - "ms": "2.1.3", - "sift": "16.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mongoose-to-swagger": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mongoose-to-swagger/-/mongoose-to-swagger-1.4.0.tgz", - "integrity": "sha512-7O5f2bSVT7euXgMMhlxe4gz6sJW8E3GWHties2FR3B+W41yhW5dpG4RuC7rGL3tKi9nyDN/nkorkbs5v0AHLyg==", - "peer": true - }, - "node_modules/mongoose/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==", - "peer": true - }, - "node_modules/mortice": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.0.tgz", - "integrity": "sha512-g4rgq//2PWn4m52G6TpCSGmtWabJM8LKCZTQY4W7z0foiaQkqw+FG9a6pwIqUcTkCgBQoet8G/24V6adVMpnHw==", - "dependencies": { - "nanoid": "^3.1.20", - "observable-webworkers": "^2.0.1", - "p-queue": "^7.2.0", - "p-timeout": "^5.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz", - "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==", - "peer": true, - "dependencies": { - "debug": "4.x" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "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/multiaddr": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", - "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", - "dependencies": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "node_modules/multiaddr/node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, - "node_modules/multiaddr/node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/multiaddr/node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/multiaddr/node_modules/native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multiformats": { - "version": "9.6.5", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.5.tgz", - "integrity": "sha512-vMwf/FUO+qAPvl3vlSZEgEVFY/AxeZq5yg761ScF3CZsXgmTi/HGkicUiNN0CI4PW8FiY2P0OLklOcmQjdQJhw==" - }, - "node_modules/mutable-proxy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", - "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==", - "engines": { - "node": ">=6.X.X", - "npm": ">=3.X.X" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/native-fetch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", - "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", - "peerDependencies": { - "undici": "*" - } - }, - "node_modules/needle": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "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/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "peer": true, - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", - "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", - "peer": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-fetch-h2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", - "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", - "dependencies": { - "http2-client": "^1.2.5" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "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-readfiles": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", - "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", - "dependencies": { - "es6-promise": "^3.2.1" - } - }, - "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==", - "engines": { - "node": ">=0.10.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==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nssocket": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", - "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==", - "dependencies": { - "eventemitter2": "~0.4.14", - "lazy": "~1.0.11" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/nssocket/node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==" - }, - "node_modules/oas-kit-common": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", - "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/oas-linter": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", - "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", - "dependencies": { - "@exodus/schemasafe": "^1.0.0-rc.2", - "should": "^13.2.1", - "yaml": "^1.10.0" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-resolver": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", - "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", - "dependencies": { - "node-fetch-h2": "^2.3.0", - "oas-kit-common": "^1.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - }, - "bin": { - "resolve": "resolve.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-schema-walker": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", - "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-validator": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", - "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", - "dependencies": { - "call-me-maybe": "^1.0.1", - "oas-kit-common": "^1.0.8", - "oas-linter": "^3.2.2", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "reftools": "^1.1.9", - "should": "^13.2.1", - "yaml": "^1.10.0" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "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.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/observable-webworkers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "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==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", - "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", - "dependencies": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/p-fifo/node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-queue": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.2.0.tgz", - "integrity": "sha512-Kvv7p13M46lTYLQ/PsZdaj/1Vj6u/8oiIJgyQyx4oVkOfHdd7M2EZvXigDvcsSzRwanCzQirV5bJPQFoSQt5MA==", - "dependencies": { - "eventemitter3": "^4.0.7", - "p-timeout": "^5.0.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-reflect": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-3.1.0.tgz", - "integrity": "sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", - "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", - "dependencies": { - "@types/retry": "0.12.1", - "retry": "^0.13.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-settle": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-5.1.0.tgz", - "integrity": "sha512-ujR6UFfh09ziOKyC5aaJak5ZclsjlLw57SYtFZg6yllMofyygnaibQRZ4jf6QPWqoOCGUXyb1cxUKELeAyKO7g==", - "dependencies": { - "p-limit": "^4.0.0", - "p-reflect": "^3.1.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-settle/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-settle/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pac-resolver": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz", - "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==", - "dependencies": { - "degenerator": "^3.0.2", - "ip": "^1.1.5", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" - }, - "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-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "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==", - "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==" - }, - "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/peer-id": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.16.0.tgz", - "integrity": "sha512-EmL7FurFUduU9m1PS9cfJ5TAuCvxKQ7DKpfx3Yj6IKWyBRtosriFuOag/l3ni/dtPgPLwiA4R9IvpL7hsDLJuQ==", - "dependencies": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.21.0", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=15.0.0" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidusage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.0.tgz", - "integrity": "sha512-8VJLToXhj+RYZGNVw8oxc7dS54iCQXUJ+MDFHezQ/fwF5B8W4OWodAMboc1wb08S/4LiHwAmkT4ohf/d3YPPsw==", - "dependencies": { - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pm2": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/pm2/-/pm2-5.2.0.tgz", - "integrity": "sha512-PO5hMVhQ85cTszFM++6v07Me9hPJMkFbHjkFigtMMk+La8ty2wCi2dlBTeZYJDhPUSjK8Ccltpq2buNRcyMOTw==", - "dependencies": { - "@pm2/agent": "~2.0.0", - "@pm2/io": "~5.0.0", - "@pm2/js-api": "~0.6.7", - "@pm2/pm2-version-check": "latest", - "async": "~3.2.0", - "blessed": "0.1.81", - "chalk": "3.0.0", - "chokidar": "^3.5.1", - "cli-tableau": "^2.0.0", - "commander": "2.15.1", - "croner": "~4.1.92", - "dayjs": "~1.8.25", - "debug": "^4.3.1", - "enquirer": "2.3.6", - "eventemitter2": "5.0.1", - "fclone": "1.0.11", - "mkdirp": "1.0.4", - "needle": "2.4.0", - "pidusage": "~3.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.1", - "pm2-deploy": "~1.0.2", - "pm2-multimeter": "^0.1.2", - "promptly": "^2", - "semver": "^7.2", - "source-map-support": "0.5.19", - "sprintf-js": "1.1.2", - "vizion": "~2.2.1", - "yamljs": "0.3.0" - }, - "bin": { - "pm2": "bin/pm2", - "pm2-dev": "bin/pm2-dev", - "pm2-docker": "bin/pm2-docker", - "pm2-runtime": "bin/pm2-runtime" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "pm2-sysmonit": "^1.2.8" - } - }, - "node_modules/pm2-axon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", - "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", - "dependencies": { - "amp": "~0.3.1", - "amp-message": "~0.1.1", - "debug": "^4.3.1", - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=5" - } - }, - "node_modules/pm2-axon-rpc": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", - "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", - "dependencies": { - "debug": "^4.3.1" - }, - "engines": { - "node": ">=5" - } - }, - "node_modules/pm2-deploy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", - "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", - "dependencies": { - "run-series": "^1.1.8", - "tv4": "^1.3.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pm2-multimeter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", - "integrity": "sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA==", - "dependencies": { - "charm": "~0.1.1" - } - }, - "node_modules/pm2-sysmonit": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz", - "integrity": "sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==", - "optional": true, - "dependencies": { - "async": "^3.2.0", - "debug": "^4.3.1", - "pidusage": "^2.0.21", - "systeminformation": "^5.7", - "tx2": "~1.0.4" - } - }, - "node_modules/pm2-sysmonit/node_modules/pidusage": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", - "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", - "optional": true, - "dependencies": { - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pm2/node_modules/@pm2/pm2-version-check": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", - "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", - "dependencies": { - "debug": "^4.3.1" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/private-ip": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.3.tgz", - "integrity": "sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw==", - "dependencies": { - "ip-regex": "^4.3.0", - "ipaddr.js": "^2.0.1", - "is-ip": "^3.1.0", - "netmask": "^2.0.2" - } - }, - "node_modules/private-ip/node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/private-ip/node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/promptly": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", - "integrity": "sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==", - "dependencies": { - "read": "^1.0.4" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/protons-runtime": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-1.0.4.tgz", - "integrity": "sha512-DSKWjAgwaXhtYO5Jo/MrU8n/75I/P2IhxU0Fk/lSrXx6Gxl5DH+I6cHcbGAYFmAlOBmU4QRa0mvVme8VXlDeUg==", - "dependencies": { - "uint8arraylist": "^1.4.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "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/proxy-addr/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/proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "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.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/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "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==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/reftools": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", - "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.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/retimer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/run-series": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", - "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", - "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/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/safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==" - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz", - "integrity": "sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==", - "engines": { - "node": ">=10" - } - }, - "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/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "peer": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "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/serr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/serr/-/serr-1.0.1.tgz", - "integrity": "sha512-OjFv824oXNQorw6ObvsF56faCc3umfCcUjZ2i7G2WEEo7TJNSqPw9Y+Z8aTSy3wblmC2Rt80F++SyWBIGQ9/Fg==", - "dependencies": { - "lodash": "^4.0.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-delayed-interval": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", - "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" - }, - "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==", - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "node_modules/should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "dependencies": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } - }, - "node_modules/should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "dependencies": { - "should-type": "^1.4.0" - } - }, - "node_modules/should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", - "dependencies": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "node_modules/should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==" - }, - "node_modules/should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "dependencies": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" - } - }, - "node_modules/should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sift": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz", - "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ==", - "peer": true - }, - "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==" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/socks/node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "optional": true, - "peer": true, - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "engines": { - "node": "*" - } - }, - "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/stream-to-it": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/stream-to-it/node_modules/get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "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==", - "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==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true, - "peer": true - }, - "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==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swagger-ui-dist": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.15.1.tgz", - "integrity": "sha512-DlZARu6ckUFqDe0j5IPayO4k0gQvYQw9Un02MhxAgaMtVnTH2vmyyDe+yKeV0r1LiiPx3JbasdS/5Yyb/AV3iw==" - }, - "node_modules/swagger-ui-express": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.5.0.tgz", - "integrity": "sha512-DHk3zFvsxrkcnurGvQlAcLuTDacAVN1JHKDgcba/gr2NFRE4HGwP1YeHIXMiGznkWR4AeS7X5vEblNn4QljuNA==", - "dependencies": { - "swagger-ui-dist": ">=4.11.0" - }, - "engines": { - "node": ">= v0.10.32" - }, - "peerDependencies": { - "express": ">=4.0.0" - } - }, - "node_modules/swagger2openapi": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", - "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", - "dependencies": { - "call-me-maybe": "^1.0.1", - "node-fetch": "^2.6.1", - "node-fetch-h2": "^2.3.0", - "node-readfiles": "^0.2.0", - "oas-kit-common": "^1.0.8", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "oas-validator": "^5.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - }, - "bin": { - "boast": "boast.js", - "oas-validate": "oas-validate.js", - "swagger2openapi": "swagger2openapi.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/swagger2openapi/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/swagger2openapi/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/swagger2openapi/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/swagger2openapi/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/systeminformation": { - "version": "5.12.6", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.12.6.tgz", - "integrity": "sha512-FkCvT5BOuH1OE3+8lFM25oXIYJ0CM8kq4Wgvz2jyBTrsOIgha/6gdJXgbF4rv+g0j/5wJqQLDKan7kc/p7uIvw==", - "optional": true, - "os": [ - "darwin", - "linux", - "win32", - "freebsd", - "openbsd", - "netbsd", - "sunos", - "android" - ], - "bin": { - "systeminformation": "lib/cli.js" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "Buy me a coffee", - "url": "https://www.buymeacoffee.com/systeminfo" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/timeout-abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz", - "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==", - "dependencies": { - "retimer": "^3.0.0" - } - }, - "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==", - "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/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "peer": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, - "node_modules/tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" - }, - "node_modules/tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/tx2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz", - "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==", - "optional": true, - "dependencies": { - "json-stringify-safe": "^5.0.1" - } - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "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/type-of-is": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/type-of-is/-/type-of-is-3.5.1.tgz", - "integrity": "sha512-SOnx8xygcAh8lvDU2exnK2bomASfNjzB3Qz71s2tw9QnX8fkAo7aC+D0H7FV0HjRKj94CKV2Hi71kVkkO6nOxg==", - "engines": { - "node": ">=0.10.5" - } - }, - "node_modules/typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uint8-varint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-1.0.2.tgz", - "integrity": "sha512-IubsiyUyX2snBV+XmTa+Q9hjGejhDznwIzXMyl3ZjVWog3h/mDijB8s/s/9ujQpJ2Yskj51hWAvbeS7B7Em61g==", - "dependencies": { - "byte-access": "^1.0.0", - "longbits": "^1.1.0", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/uint8-varint/node_modules/uint8arraylist": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.0.0.tgz", - "integrity": "sha512-OOx2TiInuBOlvDDhS0um83DWVTvgvazvo96xkMVBV3RbDI5HPxdqudzsIKMzh2lklP52diJ/tVhAhlxHS2f0jA==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/uint8arraylist": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-1.5.1.tgz", - "integrity": "sha512-UpPGcVlTVc7Brtwt4W2MfTqvJQsr8owHMKBnICsueSImiarVAHf8NGMjhMklFtgbCZN1/9S9oW5k1JwlalGHoA==", - "dependencies": { - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/uint8arrays": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", - "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/undici": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.11.0.tgz", - "integrity": "sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw==", - "peer": true, - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=12.18" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.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/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" - }, - "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": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "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/vizion": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", - "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", - "dependencies": { - "async": "^2.6.3", - "git-node-fs": "^1.0.0", - "ini": "^1.3.5", - "js-git": "^0.7.8" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/vizion/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/vm2": { - "version": "3.9.11", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.11.tgz", - "integrity": "sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==", - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "peer": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/wherearewe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.2.tgz", - "integrity": "sha512-HyLZ7n1Yox+w1qWaFEgP/sMs5D7ka2UXmoVNaY0XzbEHLGljo4ScBchYm6cWRYNO33tmFX3Mgg4BiZkDOjihyw==", - "dependencies": { - "is-electron": "^2.2.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.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==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "dependencies": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "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==" - }, - "node_modules/ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", - "engines": { - "node": "*" - } - }, - "node_modules/xsalsa20": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", - "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "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==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yamljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", - "dependencies": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - }, - "bin": { - "json2yaml": "bin/json2yaml", - "yaml2json": "bin/yaml2json" - } - }, - "node_modules/yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", - "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.0.0" - }, - "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==", - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@achingbrain/ip-address": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@achingbrain/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw==", - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - } - }, - "@achingbrain/nat-port-mapper": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz", - "integrity": "sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg==", - "requires": { - "@achingbrain/ssdp": "^4.0.1", - "@libp2p/logger": "^2.0.0", - "default-gateway": "^6.0.2", - "err-code": "^3.0.1", - "it-first": "^1.0.7", - "p-defer": "^4.0.0", - "p-timeout": "^5.0.2", - "xml2js": "^0.4.23" - } - }, - "@achingbrain/ssdp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.1.tgz", - "integrity": "sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ==", - "requires": { - "event-iterator": "^2.0.0", - "freeport-promise": "^2.0.0", - "merge-options": "^3.0.4", - "uuid": "^8.3.2", - "xml2js": "^0.4.23" - } - }, - "@aws-crypto/ie11-detection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", - "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - } - } - }, - "@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", - "optional": true, - "peer": true, - "requires": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - } - } - }, - "@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", - "optional": true, - "peer": true, - "requires": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - } - } - }, - "@aws-crypto/supports-web-crypto": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", - "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - } - } - }, - "@aws-crypto/util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", - "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "^3.110.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/abort-controller": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.197.0.tgz", - "integrity": "sha512-ROuuIICJmkF/VxfOjoPgp79PXjqwXU/z2HmXB+gtYPzwPCyMhb8WwclevyxG3E/t5VflYvPv0NDxQMiU0obOqw==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/client-cognito-identity": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.197.0.tgz", - "integrity": "sha512-lvOhLhHTSRhS3bArzlMK18ldcJ0DhPb2belrE9KeY2Z+86P4prH02jwgi3EdFHizsKz2FmVelMdD3VWk8BxTzg==", - "optional": true, - "peer": true, - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.197.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/client-sso": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.197.0.tgz", - "integrity": "sha512-jqH0DrZSVFhv61wPp0fqjfwUuMDbXEE4dq31K342kJlFyzrtt+XvHPUa1BC5ow8wpLkIn+ZZmt372hiGVKzrxw==", - "optional": true, - "peer": true, - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/client-sts": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.197.0.tgz", - "integrity": "sha512-ybDqIpY5AsESFhgojlpCN8qJDOfrl7aDmfOOc4MAyhr5au0UlPcq+Vp51sHLvKtWFvdfbAoggcW/mXILtgw+TA==", - "optional": true, - "peer": true, - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/fetch-http-handler": "3.197.0", - "@aws-sdk/hash-node": "3.197.0", - "@aws-sdk/invalid-dependency": "3.197.0", - "@aws-sdk/middleware-content-length": "3.197.0", - "@aws-sdk/middleware-endpoint": "3.197.0", - "@aws-sdk/middleware-host-header": "3.197.0", - "@aws-sdk/middleware-logger": "3.197.0", - "@aws-sdk/middleware-recursion-detection": "3.197.0", - "@aws-sdk/middleware-retry": "3.197.0", - "@aws-sdk/middleware-sdk-sts": "3.197.0", - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/middleware-user-agent": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/node-http-handler": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/smithy-client": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "@aws-sdk/util-base64-node": "3.188.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.188.0", - "@aws-sdk/util-defaults-mode-browser": "3.197.0", - "@aws-sdk/util-defaults-mode-node": "3.197.0", - "@aws-sdk/util-endpoints": "3.197.0", - "@aws-sdk/util-user-agent-browser": "3.197.0", - "@aws-sdk/util-user-agent-node": "3.197.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.188.0", - "fast-xml-parser": "4.0.11", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/config-resolver": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.197.0.tgz", - "integrity": "sha512-G7SfNvS4MlADPt06Yb2FV+uHUt3eli17atuzoHjtFGtNzHvoZzTrulJfKxni1F5gswREyYBLMT4kbNxVwLOpqg==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-config-provider": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-provider-cognito-identity": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.197.0.tgz", - "integrity": "sha512-VaUIg8bbjwmPH1BXf4Hc/RQyycHE1y3JHn+lFgrkFX6mS61V2tpFcrbmqa3vOMTmNwoNRHDAJI8xO1QjqKZaww==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/client-cognito-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-provider-env": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.197.0.tgz", - "integrity": "sha512-Y1B8A9I78/5OPo7TKwAZCP0CvEi2Q2tXF7fr0Yl6iUOr57WY/QhKz54CsnhwYFL1DFQx62wNHvvWmOopcO6Urg==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-provider-imds": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.197.0.tgz", - "integrity": "sha512-DiNwnOolX61Kk5gUoP/yxX1JkPeX1EeT73OKJPYFwe5tHN9Mc/at5TYcbG8qVrvMfNkem314wiZHSOt6EdJZBA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-provider-ini": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.197.0.tgz", - "integrity": "sha512-ngH6vivhi0ss4NdnYLDZiZboCPzEupL94AgTrzIuZVbN8DXcYB7BzccGjNCY196RXeL+UQJqH7Z71DXyOM95cA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-provider-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.197.0.tgz", - "integrity": "sha512-0vHkgsmrE8p3M0VqHUbq/WSR5a1wuqPggVEiYz8K6HYiKy3hXhmcGBnU923Fv9ZRVWat2QodYNe2HM7FRXcRpw==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-ini": "3.197.0", - "@aws-sdk/credential-provider-process": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-provider-process": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.197.0.tgz", - "integrity": "sha512-tyKztm3ylza2i7wAaTwGTQTXG5rJgsglIunNsbC9CEsylGwf7PgQrFFlDYtOAprUTqFSkIaVa4D0nKVFtgkGAA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-provider-sso": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.197.0.tgz", - "integrity": "sha512-do6fcurJTJ+SOD7zCwyFmiqM1ix8W9QiEgAyQsf9kKoHxnfWQGNgTsmF0PxtaGE8NZMRg8G+F4JUYbfY7UfcNQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/client-sso": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-provider-web-identity": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.197.0.tgz", - "integrity": "sha512-ls91XURhYKAbF5T1wDjSpTZuRdoW7PPwtAUjHBKzfXee4F7KhrLPSgxTBvHI81vG8b2J2VRbb/0kXtisdF7TAQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/credential-providers": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.197.0.tgz", - "integrity": "sha512-soiuVC1Njte9TDt8z/3Cn/P+rQVirfDMeDM9ypjHIybtoOVc/hozkxlt2W5ggUk2okWItT7/hwOGpzwMOkfKOQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/client-cognito-identity": "3.197.0", - "@aws-sdk/client-sso": "3.197.0", - "@aws-sdk/client-sts": "3.197.0", - "@aws-sdk/credential-provider-cognito-identity": "3.197.0", - "@aws-sdk/credential-provider-env": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/credential-provider-ini": "3.197.0", - "@aws-sdk/credential-provider-node": "3.197.0", - "@aws-sdk/credential-provider-process": "3.197.0", - "@aws-sdk/credential-provider-sso": "3.197.0", - "@aws-sdk/credential-provider-web-identity": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/fetch-http-handler": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.197.0.tgz", - "integrity": "sha512-Ztp71HP/qeG/6AwQDRq49cUlc4UTLAUuAZ7ivcrDaTV/T8HaNtnEde00RnT9MVr3OZCou3I1H37qRwas5+wOVQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-base64-browser": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/hash-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.197.0.tgz", - "integrity": "sha512-NCXDY9IsTDNKPjJBY2yMmpM1GMfc5zcNxTInFeMpIhOjz3yYf6UqrYLtgqdzvTjgZlXhuFneBweqpfWo77KFbg==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-buffer-from": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/invalid-dependency": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.197.0.tgz", - "integrity": "sha512-C5yz97yskupjLkj1zKefPzLjPuhV3Ci27zNfQkI1XcjnYyrOJm5bNuR6DUuMEd7flgjOvWL//5L0hmW/sF7vNg==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/is-array-buffer": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.188.0.tgz", - "integrity": "sha512-n69N4zJZCNd87Rf4NzufPzhactUeM877Y0Tp/F3KiHqGeTnVjYUa4Lv1vLBjqtfjYb2HWT3NKlYn5yzrhaEwiQ==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-content-length": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.197.0.tgz", - "integrity": "sha512-Qvy92+YObZdAR7Qza4dT3yzSe4NfCbPGzw4kvmsUttP/z2cm5knqNk6FUIAvaXhRh3nTnrebGGwxQjbphYNYCQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-endpoint": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.197.0.tgz", - "integrity": "sha512-o6Uc3KoqfPn4xhwVaLO5IDOKw0mvQeQSqzS3hgGgq9uT8yLoDhs8y40cLNWCThYBBVueuXKh71QSUF7FO+X05g==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/middleware-serde": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/url-parser": "3.197.0", - "@aws-sdk/util-config-provider": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-host-header": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.197.0.tgz", - "integrity": "sha512-Haa5uP0l2IqMOCzIvPp4oDMAo8lBZUKhCp6Ck4ERJ33rHW669dTF6C2xQaevnVYPoL8D4S7mgyEpCFgvFf+CHQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-logger": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.197.0.tgz", - "integrity": "sha512-AdMB5eNHLpUphtwbVNPLMQzZFFht3N/QbblHtMzchzVvgvjVhiZoS4cVxIzNSpSibMPfZr8ysnPN2bhHcCc1iw==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-recursion-detection": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.197.0.tgz", - "integrity": "sha512-nPi2iRnqkq0eRYitwFSZfdRrhrHe79Hjq/Iaf9jGSFBs5IJalKl+ximQ28HJrxjQfsp4NWpntAxhol1vpqI1UQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-retry": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.197.0.tgz", - "integrity": "sha512-mEWVL5n/zeF+2MhvT4ROn+5tG3rOX4GJc0aZBz8aUJAqU0Zn6euA1z75XoYXxA6E2zrq20adcWOLxmAvtoHOlg==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/service-error-classification": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-middleware": "3.197.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-sdk-sts": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.197.0.tgz", - "integrity": "sha512-hon/cQhC/SP0QEA+hLM53rPchGxy9n1nX6/VCyflj6iPaY/OYV6HmbuktmrrISSm5tf4LnXNrUjA9XaeT1DGPA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/middleware-signing": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-serde": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.197.0.tgz", - "integrity": "sha512-UzQmQrR5QakldkBCKSGl3ei+VM9GFBO0OTL08VYHmU5wuQTOJcBnZ+8qa+lUf2BzLdTTlliR0NfUlr9r1XDx+w==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-signing": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.197.0.tgz", - "integrity": "sha512-PHdtbV92lUtqtuYcMYfYXknh2Lsv6KHeYvy1MZaJouahgJ2urpPsuWlQHjcjEA2dYDpSetjCAtDQvnke0siSTA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/signature-v4": "3.197.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-middleware": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-stack": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.197.0.tgz", - "integrity": "sha512-+5mDVmoTrFgglTygOwi/6nXv127d9ipite+BeIo18kmkY1JV5uld8ccErXJIcP7vrxsxNt4rt/bUenrL/sDpZg==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/middleware-user-agent": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.197.0.tgz", - "integrity": "sha512-slEmyYlctQmQWkltfMH02cj6z5NWlCodLQQVGdinFzy+jPhfCLtcwxAfFhT+dGLc9/UtVXqtn+OfqkIoUBs+fw==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/node-config-provider": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.197.0.tgz", - "integrity": "sha512-gDlha5uTEvacrhLnwKDo2nzfPE1CQpoU+eNUJF7JEfoUv69GGS/23C6Lo1PueWI5UtdkqBP12aY8woKRjwjQfA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/shared-ini-file-loader": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/node-http-handler": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.197.0.tgz", - "integrity": "sha512-ZkXqafE0KgOlUdXuFos2VAMoSniGARBGubWkfTnKV8Ky4npXRHNV293dOpxH4KUy38siRIQruv0b+sDU5wxeFw==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/abort-controller": "3.197.0", - "@aws-sdk/protocol-http": "3.197.0", - "@aws-sdk/querystring-builder": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/property-provider": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.197.0.tgz", - "integrity": "sha512-5kLErMu1ELZTwU2oQtJSE6fhaPMRODp9uidUMRvozJLuCqmijygXVb+7adFnX1X/pl5Wv9mi7GkiOncWvjDKjA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/protocol-http": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.197.0.tgz", - "integrity": "sha512-fKM7GDTQigDnjRlEHu8L2oZRcgTitSgdAHovJ/wu9131H+nM9gbiqvKh4CXToygqA1NUMYoJDUpZTv1LGMwsDQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/querystring-builder": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.197.0.tgz", - "integrity": "sha512-+t4oit2tpCD9hJQtKFEOgL+9hPtXJbkCNxLwnNgu9Vr0wr1T0orso825Dbaxh8VM39mnDOaId+zQ9wZJPpXkHA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-uri-escape": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/querystring-parser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.197.0.tgz", - "integrity": "sha512-FluJGKzNmXBZ6/yJFlsZQ+xrpnVcg7dK/cWR3vZo/jCB0muw3QpbEMCdC7/frh0C+0zHfClbYh0TbmEuS21XTw==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/service-error-classification": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.197.0.tgz", - "integrity": "sha512-ok1Nw5plwlTKPkyMVRJI+SVWjiitjfVveiV6zEIN87RXKPjlzQGIuHXFkDChsHT5P2TueHwzPG8lnpGBlHqBBw==", - "optional": true, - "peer": true - }, - "@aws-sdk/shared-ini-file-loader": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.197.0.tgz", - "integrity": "sha512-dVgGmieJLgnw+OZdGxuifAc/I1zJm/W4Ixf2zowV66KisCScqpJJGhtSylBoTqE4ssWUH804TJHy0fFOxD2GAQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/signature-v4": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.197.0.tgz", - "integrity": "sha512-8eTw9PeW4146WDGqXUxpFwB4neuW/GYbjJxdjDN29Ec6rThazADHZyKwYOBn/wGUUiiqeBL37deRsBk6x2FgRw==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/is-array-buffer": "3.188.0", - "@aws-sdk/types": "3.197.0", - "@aws-sdk/util-hex-encoding": "3.188.0", - "@aws-sdk/util-middleware": "3.197.0", - "@aws-sdk/util-uri-escape": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/smithy-client": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.197.0.tgz", - "integrity": "sha512-8E+OhE/WzC/SGQxtSDc88i5PDxGNCYrrtJRSYJ5JoPSgQ6qPMMizGVbK54ZffridC1Y+Bud2+dntkbRL8NNddQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/middleware-stack": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/types": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.197.0.tgz", - "integrity": "sha512-ZM6s4AIWLWeKiuigPCSbSSBn9i7s1o+/U/dRpLax3bSpH7E6PU5hEnIXEzWsIXWU1/8bmTttY8qmYEx3RCmbpw==", - "optional": true, - "peer": true - }, - "@aws-sdk/url-parser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.197.0.tgz", - "integrity": "sha512-+ffKdbdEKOja1sjIeLR+IUYx3YgRJ+wnlkXj/8kPt1iGog8RZjoINdz3VYaojtA9GfoTw0pFwehxmLJ+UVBfXQ==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/querystring-parser": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-base64-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.188.0.tgz", - "integrity": "sha512-qlH+5NZBLiyKziL335BEPedYxX6j+p7KFRWXvDQox9S+s+gLCayednpK+fteOhBenCcR9fUZOVuAPScy1I8qCg==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-base64-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.188.0.tgz", - "integrity": "sha512-r1dccRsRjKq+OhVRUfqFiW3sGgZBjHbMeHLbrAs9jrOjU2PTQ8PSzAXLvX/9lmp7YjmX17Qvlsg0NCr1tbB9OA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/util-buffer-from": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-body-length-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", - "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-body-length-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.188.0.tgz", - "integrity": "sha512-XwqP3vxk60MKp4YDdvDeCD6BPOiG2e+/Ou4AofZOy5/toB6NKz2pFNibQIUg2+jc7mPMnGnvOW3MQEgSJ+gu/Q==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-buffer-from": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.188.0.tgz", - "integrity": "sha512-NX1WXZ8TH20IZb4jPFT2CnLKSqZWddGxtfiWxD9M47YOtq/SSQeR82fhqqVjJn4P8w2F5E28f+Du4ntg/sGcxA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/is-array-buffer": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-config-provider": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.188.0.tgz", - "integrity": "sha512-LBA7tLbi7v4uvbOJhSnjJrxbcRifKK/1ZVK94JTV2MNSCCyNkFotyEI5UWDl10YKriTIUyf7o5cakpiDZ3O4xg==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-defaults-mode-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.197.0.tgz", - "integrity": "sha512-5DaTKR0DLJR02wd844I+GR0HnRpYO2IZAtXK444ubLL2Mi9M8AZ/aGXNvZpIsAIjy/InTK0K2B/c/8DJzLU23Q==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-defaults-mode-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.197.0.tgz", - "integrity": "sha512-dZtw/rSHlQ0uCDkSU4Jdxwx/hIdw9lbwW3hCjo0EtjQrRN9c5Cs3NNaYQg3Ghs6VT2F0aO0BcF7KTPQ6ZPcGeg==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/config-resolver": "3.197.0", - "@aws-sdk/credential-provider-imds": "3.197.0", - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/property-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-endpoints": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.197.0.tgz", - "integrity": "sha512-ZcR2sSTfIO7p05MFRbGnp5KJT5WaXTZe675jQKWbgJ2VizQz0loOyoofFS4R1CTIuNitGY9+g5pmMZelULa/Aw==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-hex-encoding": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.188.0.tgz", - "integrity": "sha512-QyWovTtjQ2RYxqVM+STPh65owSqzuXURnfoof778spyX4iQ4z46wOge1YV2ZtwS8w5LWd9eeVvDrLu5POPYOnA==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-locate-window": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.188.0.tgz", - "integrity": "sha512-SxobBVLZkkLSawTCfeQnhVX3Azm9O+C2dngZVe1+BqtF8+retUbVTs7OfYeWBlawVkULKF2e781lTzEHBBjCzw==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-middleware": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.197.0.tgz", - "integrity": "sha512-ynruKtZuxMT97ZcmbF262GeUeaQKjnSOm4T4HHLgdJx4LeW8vo4xla4ffNh5Tb+MGEJz22V5ldcddrpF4FobnA==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-uri-escape": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.188.0.tgz", - "integrity": "sha512-4Y6AYZMT483Tiuq8dxz5WHIiPNdSFPGrl6tRTo2Oi2FcwypwmFhqgEGcqxeXDUJktvaCBxeA08DLr/AemVhPCg==", - "optional": true, - "peer": true, - "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-user-agent-browser": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.197.0.tgz", - "integrity": "sha512-0BhG18FL+qvRiTKJ1kG1vKrMvnCpgh1XuMRTTBjFPl7j/XbW9JMPgnJaZSN/uZqS2ianK2V1Yc+FTv/qfPiNeA==", - "optional": true, - "peer": true, - "requires": { - "@aws-sdk/types": "3.197.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } - } - }, - "@aws-sdk/util-user-agent-node": { - "version": "3.197.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.197.0.tgz", - "integrity": "sha512-ymsZ3rwsmPJWISxpwpEf9MmRkr1Av5cTNyZgHo8Yi+LveeUelZ+41HLjP10p540K8x4iUnCHNP5yUN1UTtNnfA==", - "optional": true, - "peer": true, + "dependencies": { + "@achingbrain/ip-address": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@achingbrain/ip-address/-/ip-address-8.1.0.tgz", + "integrity": "sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw==", "requires": { - "@aws-sdk/node-config-provider": "3.197.0", - "@aws-sdk/types": "3.197.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } + "jsbn": "1.1.0", + "sprintf-js": "1.1.2" } }, - "@aws-sdk/util-utf8-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", - "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", - "optional": true, - "peer": true, + "@achingbrain/nat-port-mapper": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz", + "integrity": "sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg==", "requires": { - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } + "@achingbrain/ssdp": "^4.0.1", + "@libp2p/logger": "^2.0.0", + "default-gateway": "^6.0.2", + "err-code": "^3.0.1", + "it-first": "^1.0.7", + "p-defer": "^4.0.0", + "p-timeout": "^5.0.2", + "xml2js": "^0.4.23" } }, - "@aws-sdk/util-utf8-node": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.188.0.tgz", - "integrity": "sha512-hCgP4+C0Lekjpjt2zFJ2R/iHes5sBGljXa5bScOFAEkRUc0Qw0VNgTv7LpEbIOAwGmqyxBoCwBW0YHPW1DfmYQ==", - "optional": true, - "peer": true, + "@achingbrain/ssdp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.1.tgz", + "integrity": "sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ==", "requires": { - "@aws-sdk/util-buffer-from": "3.188.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true, - "peer": true - } + "event-iterator": "^2.0.0", + "freeport-promise": "^2.0.0", + "merge-options": "^3.0.4", + "uuid": "^8.3.2", + "xml2js": "^0.4.23" } }, "@chainsafe/libp2p-gossipsub": { @@ -9816,26 +147,6 @@ } } }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" - }, - "@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "@exodus/schemasafe": { - "version": "1.0.0-rc.9", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.9.tgz", - "integrity": "sha512-dGGHpb61hLwifAu7sotuHFDBw6GTdpG8aKC0fsK17EuTzMRvUrH7lEAr6LTJ+sx3AZYed9yZ77rltVDHyg2hRg==" - }, "@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -10921,8 +1232,7 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" } } }, @@ -10999,11 +1309,18 @@ "ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" } } }, + "@pm2/pm2-version-check": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", + "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", + "requires": { + "debug": "^4.3.1" + } + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -11189,23 +1506,6 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, "@types/debug": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", @@ -11222,37 +1522,11 @@ "@types/node": "*" } }, - "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, "@types/long": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, - "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" - }, "@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", @@ -11272,46 +1546,11 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.43.tgz", "integrity": "sha512-jnUpgw8fL9kP2iszfIDyBQtw5Mf4/XSqy0Loc1J9pI14ejL83XcCEvSf50Gs/4ET0I9VCCDoOfufQysj0S66xA==" }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, "@types/retry": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" }, - "@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==", - "peer": true - }, - "@types/whatwg-url": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", - "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", - "peer": true, - "requires": { - "@types/node": "*", - "@types/webidl-conversions": "*" - } - }, "abortable-iterator": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-4.0.2.tgz", @@ -11366,11 +1605,6 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11532,13 +1766,6 @@ } } }, - "bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true, - "peer": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -11551,30 +1778,9 @@ "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", - "peer": true, + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { - "buffer": "^5.6.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "peer": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } + "fill-range": "^7.0.1" } }, "buffer": { @@ -11591,15 +1797,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "peer": true, - "requires": { - "streamsearch": "^1.1.0" - } - }, "byte-access": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/byte-access/-/byte-access-1.0.1.tgz", @@ -11632,11 +1829,6 @@ "get-intrinsic": "^1.0.2" } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -11679,40 +1871,6 @@ "chalk": "3.0.0" } }, - "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==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - }, - "dependencies": { - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - } - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -11726,24 +1884,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "requires": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -11828,12 +1968,6 @@ "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==" }, - "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "peer": true - }, "datastore-core": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-7.0.1.tgz", @@ -11947,6 +2081,14 @@ "@leichtgewicht/ip-codec": "^2.0.1" } }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -11960,16 +2102,6 @@ "shimmer": "^1.2.0" } }, - "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==" - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -11988,16 +2120,6 @@ "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" }, - "es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -12129,32 +2251,27 @@ } } }, - "express-list-endpoints": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/express-list-endpoints/-/express-list-endpoints-3.0.1.tgz", - "integrity": "sha512-Ul3OY7r7Lc84R4z/xI5Jx6wbMzxg61SQh4BhVNDIPPtim6vHPjrKY+QhYYM8FdOswjHZstGK7J0I6HYf8FKtVA==" - }, - "express-oas-generator": { - "version": "1.0.45", - "resolved": "https://registry.npmjs.org/express-oas-generator/-/express-oas-generator-1.0.45.tgz", - "integrity": "sha512-QBLVG/fwaS/Hk9PhablHZHJb5+xiwV394PJr7Ao65E6RypQnJexrS+tuUMaVEQZcLER/Bfm7MKn9SQrbzyxEug==", - "requires": { - "@types/express": "^4.17.13", - "express-list-endpoints": "^3.0.1", - "generate-schema": "^2.6.0", - "lodash.merge": "^4.6.2", - "mkdirp": "^1.0.4", - "openapi-types": "^1.3.5", - "swagger-ui-express": "^4.4.0", - "swagger2openapi": "^7.0.8", - "typescript": "^3.9.10", - "winston": "^3.8.1" + "express-jsdoc-swagger": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/express-jsdoc-swagger/-/express-jsdoc-swagger-1.8.0.tgz", + "integrity": "sha512-1Ij+2tSRldJzduxi56Dm3zS87UKQl83VXanhy7GPmXHxChCxafPcbf0SCJTIu+NdO0kq0seSPE1fQdwaEq+Vrg==", + "requires": { + "chalk": "^4.1.0", + "doctrine": "^3.0.0", + "express": "^4.17.1", + "glob": "^7.1.6", + "merge": "^2.1.1", + "swagger-ui-express": "^4.3.0" }, "dependencies": { - "openapi-types": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.5.tgz", - "integrity": "sha512-11oi4zYorsgvg5yBarZplAqbpev5HkuVNPlZaPTknPDzAynq+lnJdXAmruGWP0s+dNYZS7bjM+xrTpJw7184Fg==" + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } } } }, @@ -12173,41 +2290,11 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, - "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==" - }, - "fast-xml-parser": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", - "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", - "optional": true, - "peer": true, - "requires": { - "strnum": "^1.0.5" - } - }, "fclone": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==" }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "peer": true, - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, "file-uri-to-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", @@ -12250,11 +2337,6 @@ } } }, - "fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, "follow-redirects": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", @@ -12270,15 +2352,6 @@ "mime-types": "^2.1.12" } }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "peer": true, - "requires": { - "fetch-blob": "^3.1.2" - } - }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -12347,20 +2420,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "generate-schema": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/generate-schema/-/generate-schema-2.6.0.tgz", - "integrity": "sha512-EUBKfJNzT8f91xUk5X5gKtnbdejZeE065UAJ3BCzE8VEbvwKI9Pm5jaWmqVeK1MYc1g5weAVFDTSJzN7ymtTqA==", - "requires": { - "commander": "^2.9.0", - "type-of-is": "^3.4.0" - } - }, - "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==" - }, "get-intrinsic": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", @@ -12482,11 +2541,6 @@ "debug": "4" } }, - "http2-client": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", - "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==" - }, "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -12563,11 +2617,6 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -12594,11 +2643,6 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, - "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==" - }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -12901,17 +2945,6 @@ "randombytes": "^2.1.0" } }, - "kareem": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz", - "integrity": "sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA==", - "peer": true - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, "lazy": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", @@ -13173,28 +3206,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "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==" - }, "log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" }, - "logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "requires": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, "logops": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/logops/-/logops-2.1.2.tgz", @@ -13254,12 +3270,10 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, - "memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true, - "peer": true + "merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" }, "merge-descriptors": { "version": "1.0.1", @@ -13325,67 +3339,6 @@ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" }, - "mongodb": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", - "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", - "peer": true, - "requires": { - "@aws-sdk/credential-providers": "^3.186.0", - "bson": "^4.7.0", - "denque": "^2.1.0", - "mongodb-connection-string-url": "^2.5.4", - "saslprep": "^1.0.3", - "socks": "^2.7.1" - }, - "dependencies": { - "denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "peer": true - } - } - }, - "mongodb-connection-string-url": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz", - "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==", - "peer": true, - "requires": { - "@types/whatwg-url": "^8.2.1", - "whatwg-url": "^11.0.0" - } - }, - "mongoose": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.7.0.tgz", - "integrity": "sha512-Jt6NSiSpgcrSBzRb9+YwkpjjVuq4H532c4jbf+5Nu0wd/nIPHSOKhr8jnQZ8gQTdPjubF+szR5r6KMSqaY4/Wg==", - "peer": true, - "requires": { - "bson": "^4.6.5", - "kareem": "2.4.1", - "mongodb": "4.11.0", - "mpath": "0.9.0", - "mquery": "4.0.3", - "ms": "2.1.3", - "sift": "16.0.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "peer": true - } - } - }, - "mongoose-to-swagger": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mongoose-to-swagger/-/mongoose-to-swagger-1.4.0.tgz", - "integrity": "sha512-7O5f2bSVT7euXgMMhlxe4gz6sJW8E3GWHties2FR3B+W41yhW5dpG4RuC7rGL3tKi9nyDN/nkorkbs5v0AHLyg==", - "peer": true - }, "mortice": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.0.tgz", @@ -13397,21 +3350,6 @@ "p-timeout": "^5.0.2" } }, - "mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "peer": true - }, - "mquery": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz", - "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==", - "peer": true, - "requires": { - "debug": "4.x" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -13456,8 +3394,7 @@ "native-fetch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "requires": {} + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==" } } }, @@ -13493,8 +3430,7 @@ "native-fetch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", - "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", - "requires": {} + "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==" }, "needle": { "version": "2.4.0", @@ -13526,44 +3462,11 @@ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "peer": true - }, - "node-fetch": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", - "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", - "peer": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, - "node-fetch-h2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", - "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", - "requires": { - "http2-client": "^1.2.5" - } - }, "node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" }, - "node-readfiles": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", - "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", - "requires": { - "es6-promise": "^3.2.1" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -13593,56 +3496,6 @@ } } }, - "oas-kit-common": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", - "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", - "requires": { - "fast-safe-stringify": "^2.0.7" - } - }, - "oas-linter": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", - "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", - "requires": { - "@exodus/schemasafe": "^1.0.0-rc.2", - "should": "^13.2.1", - "yaml": "^1.10.0" - } - }, - "oas-resolver": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", - "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", - "requires": { - "node-fetch-h2": "^2.3.0", - "oas-kit-common": "^1.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - } - }, - "oas-schema-walker": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", - "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==" - }, - "oas-validator": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", - "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", - "requires": { - "call-me-maybe": "^1.0.1", - "oas-kit-common": "^1.0.8", - "oas-linter": "^3.2.2", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "reftools": "^1.1.9", - "should": "^13.2.1", - "yaml": "^1.10.0" - } - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -13674,14 +3527,6 @@ "wrappy": "1" } }, - "one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "requires": { - "fn.name": "1.x.x" - } - }, "onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -13870,7 +3715,7 @@ "@pm2/agent": "~2.0.0", "@pm2/io": "~5.0.0", "@pm2/js-api": "~0.6.7", - "@pm2/pm2-version-check": "latest", + "@pm2/pm2-version-check": "^1.0.4", "async": "~3.2.0", "blessed": "0.1.81", "chalk": "3.0.0", @@ -13897,16 +3742,6 @@ "sprintf-js": "1.1.2", "vizion": "~2.2.1", "yamljs": "0.3.0" - }, - "dependencies": { - "@pm2/pm2-version-check": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", - "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", - "requires": { - "debug": "^4.3.1" - } - } } }, "pm2-axon": { @@ -14073,12 +3908,6 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "peer": true - }, "qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", @@ -14145,16 +3974,6 @@ "ms": "^2.1.1" } }, - "reftools": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", - "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==" - }, - "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==" - }, "require-in-the-middle": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", @@ -14200,11 +4019,6 @@ "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==" }, - "safe-stable-stringify": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz", - "integrity": "sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==" - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -14218,16 +4032,6 @@ "truncate-utf8-bytes": "^1.0.0" } }, - "saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "peer": true, - "requires": { - "sparse-bitfield": "^3.0.3" - } - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -14345,54 +4149,6 @@ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" }, - "should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "requires": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } - }, - "should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "requires": { - "should-type": "^1.4.0" - } - }, - "should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", - "requires": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==" - }, - "should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "requires": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" - } - }, - "should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" - }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -14403,25 +4159,11 @@ "object-inspect": "^1.9.0" } }, - "sift": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz", - "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ==", - "peer": true - }, "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==" }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "requires": { - "is-arrayish": "^0.3.1" - } - }, "smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -14467,26 +4209,11 @@ "source-map": "^0.6.0" } }, - "sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "optional": true, - "peer": true, - "requires": { - "memory-pager": "^1.0.2" - } - }, "sprintf-js": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" - }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -14507,12 +4234,6 @@ } } }, - "streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "peer": true - }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -14521,36 +4242,11 @@ "safe-buffer": "~5.2.0" } }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, "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==" }, - "strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true, - "peer": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14577,64 +4273,12 @@ "swagger-ui-dist": ">=4.11.0" } }, - "swagger2openapi": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", - "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", - "requires": { - "call-me-maybe": "^1.0.1", - "node-fetch": "^2.6.1", - "node-fetch-h2": "^2.3.0", - "node-readfiles": "^0.2.0", - "oas-kit-common": "^1.0.8", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "oas-validator": "^5.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "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==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, "systeminformation": { "version": "5.12.6", "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.12.6.tgz", "integrity": "sha512-FkCvT5BOuH1OE3+8lFM25oXIYJ0CM8kq4Wgvz2jyBTrsOIgha/6gdJXgbF4rv+g0j/5wJqQLDKan7kc/p7uIvw==", "optional": true }, - "text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -14661,20 +4305,6 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "peer": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -14719,16 +4349,6 @@ "mime-types": "~2.1.24" } }, - "type-of-is": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/type-of-is/-/type-of-is-3.5.1.tgz", - "integrity": "sha512-SOnx8xygcAh8lvDU2exnK2bomASfNjzB3Qz71s2tw9QnX8fkAo7aC+D0H7FV0HjRKj94CKV2Hi71kVkkO6nOxg==" - }, - "typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==" - }, "uint8-varint": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-1.0.2.tgz", @@ -14765,15 +4385,6 @@ "multiformats": "^9.4.2" } }, - "undici": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.11.0.tgz", - "integrity": "sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw==", - "peer": true, - "requires": { - "busboy": "^1.6.0" - } - }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -14844,28 +4455,6 @@ "acorn-walk": "^8.2.0" } }, - "web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "peer": true - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "peer": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "peer": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, "wherearewe": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.2.tgz", @@ -14882,49 +4471,11 @@ "isexe": "^2.0.0" } }, - "winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "requires": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - } - }, - "winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "requires": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, - "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==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -14933,8 +4484,7 @@ "ws": { "version": "8.8.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", - "requires": {} + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==" }, "xml2js": { "version": "0.4.23", @@ -14960,21 +4510,11 @@ "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - }, "yamljs": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", @@ -14983,25 +4523,6 @@ "argparse": "^1.0.7", "glob": "^7.0.5" } - }, - "yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", - "requires": { - "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.0.0" - } - }, - "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==" } } } diff --git a/policy-governance-middleware/package.json b/policy-governance-middleware/package.json index cabac254..920a40f1 100644 --- a/policy-governance-middleware/package.json +++ b/policy-governance-middleware/package.json @@ -30,7 +30,7 @@ "cors": "^2.8.5", "delay": "^5.0.0", "express": "^4.18.1", - "express-oas-generator": "^1.0.45", + "express-jsdoc-swagger": "^1.8.0", "libp2p": "0.37.3-05e8e7e", "libp2p-gossipsub": "^0.13.0", "logops": "^2.1.2", diff --git a/policy-governance-middleware/src/main.js b/policy-governance-middleware/src/main.js index 2a5669eb..c929d7d4 100644 --- a/policy-governance-middleware/src/main.js +++ b/policy-governance-middleware/src/main.js @@ -1,5 +1,5 @@ import express from "express" -import expressOasGenerator from 'express-oas-generator' +import expressJSDocSwagger from 'express-jsdoc-swagger' import bp from "body-parser" import { createLibp2p } from 'libp2p' import { TCP } from '@libp2p/tcp' @@ -23,6 +23,8 @@ import { Multiaddr } from "@multiformats/multiaddr"; import dns from "dns/promises"; import cors from 'cors'; import logger from 'logops'; +import path from 'path'; +import {fileURLToPath} from 'url'; //TODO: set-up a code linter (see the configuration-api one) //TODO: set-up some unit testing @@ -46,10 +48,44 @@ if(listen_address.includes("dnsaddr") && options.host != 'localhost') { listen_ma = new Multiaddr(listen_ma.toString().replace(options.host, lookup.address).replace("dnsaddr", "ip4")) } +const __filename = fileURLToPath(import.meta.url); + +const __dirname = path.dirname(__filename); + +const openApiOptions = { + info: { + version: '0.6.0', + title: 'Policy Distribution Middleware', + description: 'This API enables the distributed management of policies for Anubis', + license: { + name: 'Apache License v2', + url: 'https://www.apache.org/licenses/LICENSE-2.0', + } + }, + baseDir: __dirname, + // Glob pattern to find your jsdoc files (multiple patterns can be added in an array) + filesPattern: '*.js', + // URL where SwaggerUI will be rendered + swaggerUIPath: '/docs', + // Expose OpenAPI UI + exposeSwaggerUI: true, + // Expose Open API JSON Docs documentation in `apiDocsPath` path. + exposeApiDocs: true, + // Open API JSON Docs endpoint. + apiDocsPath: '/api-spec/v3', + // Set non-required fields as nullable by default + notRequiredAsNullable: false, + // You can customize your UI options. + // you can extend swagger-ui-express config. You can checkout an example of this + // in the `example/configuration/swaggerOptions.js` + swaggerUiOptions: {}, + // multiple option in case you want more that one instance + multiple: true, +}; + // Setting up Node app var app = express() -// TODO: check if it is possible to improve auto generated openapi specs -expressOasGenerator.handleResponses(app, {}) +expressJSDocSwagger(app)(openApiOptions); app.use(cors()) app.use(bp.json()) app.use(bp.urlencoded({ extended: true })) @@ -88,13 +124,54 @@ const node = await createLibp2p({ } }) -// Endpoint to retrieve node metadata +/** + * A metadata entry + * @typedef {object} Metadata + * @property {string} policy_api_uri - Anubis API endpoint for this middleware + */ + + /** + * A policy for a resource + * @typedef {object} Policy + * @property {string} id.required - The id of the policy + * @property {array} actorType.required - The subject of the policy + * @property {array} mode.required - The mode of the policy + */ + + /** + * A protected resource + * @typedef {object} Resource + * @property {string} id.required - The id of the resource + * @property {array} policies.required - The policies that apply to the resource + */ + + /** + * Set of resources by a user + * @typedef {object} UserResources + * @property {string} user.required - The id of the user + * @property {array} resources.required - The resources owned by the user + */ + +/** + * GET /metadata + * @summary The metadata specific to the middleware node + * @return {Metadata} 200 - metadata response + * @tags Metadata + */ app.get('/metadata', async(req, res) => { res.json({"policy_api_uri": anubis_api_uri}) }) -// Endpoint for receiving resources from the mobile app -app.get('/mobile/policies/', async(req, res) => { +/** + * GET /user/policies/ + * @summary Retrieves all the policies linked to resources owned by a given user + * @param {string} user.header.required - user for which resource policies are retrieved + * @param {string} fiware-Service.header - fiware service (only for private mode) + * @param {string} fiware-Servicepath.header - fiware service path (only for private mode) + * @return {UserResources} 200 - return all policies of a given resource owner + * @tags User + */ +app.get('/user/policies/', async(req, res) => { var user = req.get('user') // if we are in mode public we should not get any of these. @@ -219,7 +296,16 @@ app.get('/mobile/policies/', async(req, res) => { res.json(responseData) }) -// Endpoint for providing a resource from the mobile app +/** + * POST /user/policies/ + * @summary Updates the policies linked to resources owned by a given user + * @param {UserResources} request.body.required - The policies to be stored in the middleware network - application/json + * @param {string} fiware-Service.header - fiware service (only for private mode) + * @param {string} fiware-Servicepath.header - fiware service path (only for private mode) + * @return 200 - Ok + * @return 400 - Failed + * @tags User + */ app.post('/mobile/policies', async(req, res) => { if (!Object.keys(req.body).length) { return res.status(400).json({ @@ -282,7 +368,16 @@ app.post('/mobile/policies', async(req, res) => { res.end() }) -// Endpoint for providing a resource +/** + * POST /resource/{resourceId}/provide + * @summary Register this middleware as a provider for a given resource + * @param {string} resourceId.path.required - The resourceId provided + * @param {string} fiware-Service.header - fiware service (only for private mode) + * @param {string} fiware-Servicepath.header - fiware service path (only for private mode) + * @return 200 - Ok + * @return 400 - Failed + * @tags Resource + */ app.post('/resource/:resourceId/provide', async(req, res) => { if (!req.params.resourceId) { return res.status(400).json({ @@ -317,7 +412,16 @@ app.post('/resource/:resourceId/provide', async(req, res) => { }) -// Endpoint to check that a resource is managed by the middleware +/** + * GET /resource/{resourceId}/exists + * @summary Checks if there is a provider for this resource + * @param {string} resourceId.path.required - The resourceId checked + * @param {string} fiware-Service.header - fiware service (only for private mode) + * @param {string} fiware-Servicepath.header - fiware service path (only for private mode) + * @return 200 - Ok + * @return 400 - Failed + * @tags Resource + */ app.get('/resource/:resourceId/exists', async(req, res) => { if (!req.params.resourceId) { return res.status(400).json({ @@ -355,7 +459,16 @@ app.get('/resource/:resourceId/exists', async(req, res) => { }) -// Endpoint for subscribing to a resource topic +/** + * POST /resource/{resourceId}/subscribe + * @summary Subscribe this middleware to a given resource + * @param {string} resourceId.path.required - The resourceId provided + * @param {string} fiware-Service.header - fiware service (required only in public mode) + * @param {string} fiware-Servicepath.header - fiware service path (required only in public mode) + * @return 200 - Ok + * @return 400 - Failed + * @tags Resource + */ app.post('/resource/:resourceId/subscribe', async(req, res) => { if (!req.params.resourceId) { return res.status(400).json({ @@ -472,7 +585,17 @@ app.post('/resource/:resourceId/subscribe', async(req, res) => { res.end(`Subscribed to ${resource}`) }) -// Endpoint when a new policy is created +/** + * POST /resource/{resourceId}/policy/{policyId} + * @summary Notify this middleware that a new policy was created for a given resource + * @param {string} resourceId.path.required - The resourceId of the resource for which the new policy creation is notified + * @param {string} policyId.path.required - The policyId of the new policy + * @param {string} fiware-Service.header - fiware service (required only in private mode) + * @param {string} fiware-Servicepath.header - fiware service path (required only in private mode) + * @return 200 - Ok + * @return 400 - Failed + * @tags Resource + */ app.post('/resource/:resourceId/policy/:policyId', async(req, res) => { if (!req.params.resourceId) { return res.status(400).json({ @@ -517,7 +640,17 @@ app.post('/resource/:resourceId/policy/:policyId', async(req, res) => { logger.info("Policy message sent: " + message) }) -// Endpoint when a policy is updated +/** + * PUT /resource/{resourceId}/policy/{policyId} + * @summary Notify this middleware that a policy was updated for a given resource + * @param {string} resourceId.path.required - The resourceId of the resource for which the policy update is notified + * @param {string} policyId.path.required - The policyId of the policy updated + * @param {string} fiware-Service.header - fiware service (required only in private mode) + * @param {string} fiware-Servicepath.header - fiware service path (required only in private mode) + * @return 200 - Ok + * @return 400 - Failed + * @tags Resource + */ app.put('/resource/:resourceId/policy/:policyId', async(req, res) => { if (!req.params.resourceId) { return res.status(400).json({ @@ -562,7 +695,17 @@ app.put('/resource/:resourceId/policy/:policyId', async(req, res) => { logger.info("Policy message sent: " + message) }) -// Endpoint when a policy is deleted +/** + * DELETE /resource/{resourceId}/policy/{policyId} + * @summary Notify this middleware that a policy was deleted for a given resource + * @param {string} resourceId.path.required - The resourceId of the resource for which the policy delete is notified + * @param {string} policyId.path.required - The policyId of the policy deleted + * @param {string} fiware-Service.header - fiware service (required only in private mode) + * @param {string} fiware-Servicepath.header - fiware service path (required only in private mode) + * @return 200 - Ok + * @return 400 - Failed + * @tags Resource + */ app.delete('/resource/:resourceId/policy/:policyId', async(req, res) => { if (!req.params.resourceId) { return res.status(400).json({ @@ -725,8 +868,6 @@ async function saveConfiguration() { } // Starting server -expressOasGenerator.handleRequests() - var server = app.listen(server_port, async() => { await node.start() diff --git a/scripts/test_middleware.sh b/scripts/test_middleware.sh index 5a015ee4..74e4be7d 100755 --- a/scripts/test_middleware.sh +++ b/scripts/test_middleware.sh @@ -41,12 +41,12 @@ fi echo "" echo "Can retrieve mobile data from node 2 for user admin@mail.com?" echo "===============================================================" -export response=`curl -s -o /dev/null -w "%{http_code}" --request GET 'http://localhost:8099/mobile/policies' --header 'user: admin@mail.com'` +export response=`curl -s -o /dev/null -w "%{http_code}" --request GET 'http://localhost:8099/user/policies' --header 'user: admin@mail.com'` if [ $response == "200" ] then echo "PASSED" else - echo "ERROR: Can't get mobile data" + echo "ERROR: Can't get user data" exit 1 fi