From 6748e4df35b2aa1e0a885c51e738c8efec975d76 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 8 Jan 2024 11:19:12 +0100 Subject: [PATCH 01/49] Initian setup --- scripts/export-recommendation-data.sh | 36 +++++++++++++++++++++++ src/utils/RecommendationServiceManager.ts | 31 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 scripts/export-recommendation-data.sh create mode 100644 src/utils/RecommendationServiceManager.ts diff --git a/scripts/export-recommendation-data.sh b/scripts/export-recommendation-data.sh new file mode 100644 index 000000000..a556f06f4 --- /dev/null +++ b/scripts/export-recommendation-data.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +SCRIPT_PATH="$(dirname "$0")" +cd $SCRIPT_PATH/.. + +EXPORT_FOLDER="recommendations" +if [ -d "./$EXPORT_FOLDER" ]; then + echo "Deleting old export files..." + rm -f "./$EXPORT_FOLDER"/* +else + echo "Creating it folder for export files..." + mkdir "./$EXPORT_FOLDER" +fi + +DB_HOST="localhost" +DB_PORT=23798 +DB_NAME="squid" +DB_USER="postgres" +DOCKER_EXEC_COMMAND="docker exec -it orion_db psql -p $DB_PORT -h $DB_HOST -U $DB_USER -d $DB_NAME" +export PGPASSWORD="$1" + +VIDEO_SELECT_QUERY="SELECT id as Item_ID, duration, comments_count, EXTRACT(EPOCH FROM created_at) as timestamp, reactions_count, views_num FROM admin.video" +ACCOUNT_SELECT_QUERY="SELECT id as User_ID, EXTRACT(EPOCH FROM registered_at) as timestamp FROM admin.account" + +VIEWS_SELECT_QUERY="SELECT acc.id as user_id, viewEvent.video_id as item_id, EXTRACT(EPOCH FROM viewEvent.timestamp) as timestamp, 'watch' as event_type FROM admin.video_view_event as viewEvent LEFT JOIN admin.account as acc on acc.user_id = viewEvent.user_id WHERE acc.id IS NOT NULL" +REACTIONS_SELECT_QUERY="SELECT acc.id as User_ID, video_id as Item_ID, EXTRACT(EPOCH from created_at) as timestamp, 'reaction' as event_type FROM admin.video_reaction LEFT JOIN admin.account as acc on acc.membership_id = member_id WHERE acc.id IS NOT NULL" +INTERACTIONS_QUERY="WITH viewsCte as (${VIEWS_SELECT_QUERY}), reactionsCte as (${REACTIONS_SELECT_QUERY}) SELECT * FROM viewsCte UNION ALL SELECT * FROM reactionsCte" + +echo "Exporting videos..." +${DOCKER_EXEC_COMMAND} -c "COPY (${VIDEO_SELECT_QUERY}) TO STDOUT WITH CSV HEADER" > ./${EXPORT_FOLDER}/videos_export.csv +echo "Exporting users..." +${DOCKER_EXEC_COMMAND} -c "COPY (${ACCOUNT_SELECT_QUERY}) TO STDOUT WITH CSV HEADER" > ./${EXPORT_FOLDER}/accounts_export.csv +echo "Exporting interactions..." +${DOCKER_EXEC_COMMAND} -c "COPY (${INTERACTIONS_QUERY}) TO STDOUT WITH CSV HEADER" > ./${EXPORT_FOLDER}/interactions_export.csv + +exit diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts new file mode 100644 index 000000000..5f28e602b --- /dev/null +++ b/src/utils/RecommendationServiceManager.ts @@ -0,0 +1,31 @@ +import { Account, User, Video } from '../model' + +type RSVideo = Pick< + Video, + 'duration' | 'categoryId' | 'commentsCount' | 'createdAt' | 'reactionsCount' | 'viewsNum' +> + +type RSUser = Pick + +type InteractionEventType = 'watch' | 'click' | 'like' | 'comment' + +type RSInteraction = { + userId: string + itemId: string + timestamp: number + eventType: InteractionEventType +} + +class RecommendationServiceManager { + async updateVideo(videoId: string, params: Partial) { + /**/ + } + + async newVideo(videoId: string, params: RSVideo) { + /**/ + } + + async newUser(user: RSUser) { + /**/ + } +} From c36b5b10591eb6f4b3296d4726967c9e789d2c34 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 8 Jan 2024 15:01:56 +0100 Subject: [PATCH 02/49] Override schema --- .../{1701263174334-Data.js => 1704717446430-Data.js} | 6 +++--- schema/hidden.graphql | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) rename db/migrations/{1701263174334-Data.js => 1704717446430-Data.js} (99%) diff --git a/db/migrations/1701263174334-Data.js b/db/migrations/1704717446430-Data.js similarity index 99% rename from db/migrations/1701263174334-Data.js rename to db/migrations/1704717446430-Data.js index 24d099c96..536969739 100644 --- a/db/migrations/1701263174334-Data.js +++ b/db/migrations/1704717446430-Data.js @@ -1,11 +1,11 @@ -module.exports = class Data1701263174334 { - name = 'Data1701263174334' +module.exports = class Data1704717446430 { + name = 'Data1704717446430' async up(db) { await db.query(`CREATE TABLE "channel_follow" ("id" character varying NOT NULL, "user_id" character varying, "channel_id" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_9410df2b9a316af3f0d216f9487" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_822778b4b1ea8e3b60b127cb8b" ON "channel_follow" ("user_id") `) await db.query(`CREATE INDEX "IDX_9bc0651dda94437ec18764a260" ON "channel_follow" ("channel_id") `) - await db.query(`CREATE TABLE "video_view_event" ("id" character varying NOT NULL, "video_id" text NOT NULL, "user_id" character varying, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_2efd85597a6a7a704fc4d0f7701" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "video_view_event" ("id" character varying NOT NULL, "video_id" text NOT NULL, "user_id" character varying, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "video_view_percentage" integer NOT NULL, CONSTRAINT "PK_2efd85597a6a7a704fc4d0f7701" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_2e29fba63e12a2b1818e0782d7" ON "video_view_event" ("video_id") `) await db.query(`CREATE INDEX "IDX_31e1e798ec387ad905cf98d33b" ON "video_view_event" ("user_id") `) await db.query(`CREATE TABLE "report" ("id" character varying NOT NULL, "user_id" character varying, "channel_id" text, "video_id" text, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "rationale" text NOT NULL, CONSTRAINT "PK_99e4d0bea58cba73c57f935a546" PRIMARY KEY ("id"))`) diff --git a/schema/hidden.graphql b/schema/hidden.graphql index 97cb6527e..5aa25bc35 100644 --- a/schema/hidden.graphql +++ b/schema/hidden.graphql @@ -10,6 +10,9 @@ type VideoViewEvent @entity { "Video view event timestamp" timestamp: DateTime! + + "Percentage of video viewed" + videoViewPercentage: Int! } type Report @entity { From e1a8dc4b8283cd3191358b0ba8a606a860fe9aec Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 8 Jan 2024 15:02:25 +0100 Subject: [PATCH 03/49] Add resolver to update video view --- .../resolvers/VideosResolver/index.ts | 47 +++++++++++++++++++ .../resolvers/VideosResolver/types.ts | 18 ++++++- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index b1e78b236..04550ba51 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -6,6 +6,8 @@ import { ExcludeVideoInfo, MostViewedVideosConnectionArgs, ReportVideoArgs, + UpdateVideoViewArgs, + UpdateVideoViewResult, VideoReportInfo, } from './types' import { VideosConnection } from '../baseTypes' @@ -260,6 +262,51 @@ export class VideosResolver { }) } + @UseMiddleware(UserOnly) + @Mutation(() => AddVideoViewResult) + async updateViewPercentage( + @Args() { percentage, viewId }: UpdateVideoViewArgs, + @Ctx() ctx: Context + ): Promise { + const em = await this.em() + const { user } = ctx + + return withHiddenEntities(em, async () => { + const videoView = await em.findOne(VideoViewEvent, { + where: { id: viewId }, + }) + + if (!videoView) { + throw new Error('Unable to find given view') + } + + if (videoView.userId !== user.id) { + throw new Error('Cannot update someones else view') + } + + const video = await em.findOneOrFail(Video, { + where: { + id: videoView?.videoId, + }, + }) + + const duration = video.duration ?? 0 + const maxTimeToUpdate = duration * 1_000 * 1.5 + + if (videoView.timestamp.getTime() + maxTimeToUpdate < Date.now()) { + throw new Error('View cannot be updated after some time') + } + + videoView.videoViewPercentage = percentage + + await em.save(videoView) + + return { + updated: true, + } + }) + } + @UseMiddleware(UserOnly) @Mutation(() => VideoReportInfo) async reportVideo( diff --git a/src/server-extension/resolvers/VideosResolver/types.ts b/src/server-extension/resolvers/VideosResolver/types.ts index 0f0854b91..3cc526428 100644 --- a/src/server-extension/resolvers/VideosResolver/types.ts +++ b/src/server-extension/resolvers/VideosResolver/types.ts @@ -1,7 +1,7 @@ import { ArgsType, Field, ObjectType, Int } from 'type-graphql' import { Video, VideoOrderByInput, VideoWhereInput } from '../baseTypes' import { EntityReportInfo } from '../commonTypes' -import { MaxLength } from 'class-validator' +import { MaxLength, Max } from 'class-validator' @ObjectType() export class VideosSearchResult { @@ -69,6 +69,22 @@ export class AddVideoViewResult { added!: boolean } +@ArgsType() +export class UpdateVideoViewArgs { + @Field(() => String, { nullable: false }) + viewId!: string + + @Field(() => Int, { nullable: false }) + @Max(100, { message: 'View cannot reach over 100%' }) + percentage!: number +} + +@ObjectType() +export class UpdateVideoViewResult { + @Field(() => Boolean, { nullable: false }) + updated!: boolean +} + @ArgsType() export class ReportVideoArgs { @Field(() => String, { nullable: false }) From d302d4601f7e4da4ea3c2896fe2e5ecc2b83366f Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 9 Jan 2024 11:02:46 +0100 Subject: [PATCH 04/49] Switch account id for user id --- scripts/export-recommendation-data.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/export-recommendation-data.sh b/scripts/export-recommendation-data.sh index a556f06f4..e564940aa 100644 --- a/scripts/export-recommendation-data.sh +++ b/scripts/export-recommendation-data.sh @@ -20,10 +20,10 @@ DOCKER_EXEC_COMMAND="docker exec -it orion_db psql -p $DB_PORT -h $DB_HOST -U $D export PGPASSWORD="$1" VIDEO_SELECT_QUERY="SELECT id as Item_ID, duration, comments_count, EXTRACT(EPOCH FROM created_at) as timestamp, reactions_count, views_num FROM admin.video" -ACCOUNT_SELECT_QUERY="SELECT id as User_ID, EXTRACT(EPOCH FROM registered_at) as timestamp FROM admin.account" +ACCOUNT_SELECT_QUERY="SELECT id as User_ID FROM admin.user" -VIEWS_SELECT_QUERY="SELECT acc.id as user_id, viewEvent.video_id as item_id, EXTRACT(EPOCH FROM viewEvent.timestamp) as timestamp, 'watch' as event_type FROM admin.video_view_event as viewEvent LEFT JOIN admin.account as acc on acc.user_id = viewEvent.user_id WHERE acc.id IS NOT NULL" -REACTIONS_SELECT_QUERY="SELECT acc.id as User_ID, video_id as Item_ID, EXTRACT(EPOCH from created_at) as timestamp, 'reaction' as event_type FROM admin.video_reaction LEFT JOIN admin.account as acc on acc.membership_id = member_id WHERE acc.id IS NOT NULL" +VIEWS_SELECT_QUERY="SELECT viewEvent.user_id as User_ID, viewEvent.video_id as item_id, EXTRACT(EPOCH FROM viewEvent.timestamp) as timestamp, 'watch' as event_type FROM admin.video_view_event as viewEvent" +REACTIONS_SELECT_QUERY="SELECT acc.user_id as User_ID, video_id as Item_ID, EXTRACT(EPOCH from created_at) as timestamp, 'like' as event_type FROM admin.video_reaction LEFT JOIN admin.account as acc on acc.membership_id = member_id WHERE acc.user_id IS NOT NULL" INTERACTIONS_QUERY="WITH viewsCte as (${VIEWS_SELECT_QUERY}), reactionsCte as (${REACTIONS_SELECT_QUERY}) SELECT * FROM viewsCte UNION ALL SELECT * FROM reactionsCte" echo "Exporting videos..." From 723466adc4d1a00014e3cee1ee7905277fcaf9d3 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 12 Jan 2024 14:22:30 +0100 Subject: [PATCH 05/49] Ineractions service: initial setup --- .env | 1 + Makefile | 5 +- docker-compose.yml | 21 + package-lock.json | 516 +++++++++++++++++- package.json | 5 + scripts/copyfiles.sh | 3 +- scripts/export-recommendation-data.sh | 8 +- src/interactions-server/errors.ts | 33 ++ .../generated/api-types.ts | 179 ++++++ src/interactions-server/index.ts | 77 +++ .../interactionsLimiter.ts | 11 + src/interactions-server/openapi.yml | 226 ++++++++ src/interactions-server/rateLimits.ts | 89 +++ src/utils/RecommendationServiceManager.ts | 154 +++++- 14 files changed, 1297 insertions(+), 31 deletions(-) create mode 100644 src/interactions-server/errors.ts create mode 100644 src/interactions-server/generated/api-types.ts create mode 100644 src/interactions-server/index.ts create mode 100644 src/interactions-server/interactionsLimiter.ts create mode 100644 src/interactions-server/openapi.yml create mode 100644 src/interactions-server/rateLimits.ts diff --git a/.env b/.env index 2de6afd2d..1153e3b62 100644 --- a/.env +++ b/.env @@ -16,6 +16,7 @@ PROCESSOR_PROMETHEUS_PORT=3337 GQL_PORT=4350 # Auth api port AUTH_API_PORT=4074 +INTERACTIONS_API_PORT=4075 # Archive gateway url ARCHIVE_GATEWAY_URL=${CUSTOM_ARCHIVE_GATEWAY_URL:-http://localhost:8888/graphql} diff --git a/Makefile b/Makefile index c8f0626a0..d841057a3 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,9 @@ serve: serve-auth-api: @npm run auth-server-start +serve-interactions-api: + @npm run interactions-server-start + migrate: @npx squid-typeorm-migration apply @@ -45,7 +48,7 @@ up: up-archive up-squid down-squid: @docker-compose down -v - + down-archive: @docker-compose -f archive/docker-compose.yml down -v diff --git a/docker-compose.yml b/docker-compose.yml index 6b6b59ddb..ae7c536df 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -79,6 +79,27 @@ services: ports: - '${AUTH_API_PORT}:${AUTH_API_PORT}' + orion_interations-api: + container_name: orion_interations-api + hostname: orion_interations-api + image: node:14 + restart: unless-stopped + env_file: + - .env + - docker.env + environment: + - SQD_TRACE=interactions + depends_on: + - orion_db + volumes: + - type: bind + source: . + target: /orion + working_dir: /orion + command: [ 'make', 'serve-interactions-api' ] + ports: + - '${INTERACTIONS_API_PORT}:${INTERACTIONS_API_PORT}' + volumes: orion_db_data: diff --git a/package-lock.json b/package-lock.json index 073f860cc..328a8e874 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,8 @@ "p-limit": "3.1.0", "patch-package": "^6.5.0", "pg": "8.8.0", + "recombee-api-client": "^4.1.5", + "rolling-rate-limiter": "^0.4.2", "swagger-ui-express": "^4.6.2", "type-graphql": "^1.2.0-rc.1", "typeorm": "^0.3.11", @@ -5668,6 +5670,17 @@ "node": "6.* || 8.* || >=10.*" } }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@sqltools/formatter": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", @@ -6288,6 +6301,17 @@ "@substrate/txwrapper-core": "^3.1.3" } }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -6352,6 +6376,17 @@ "@types/node": "*" } }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "node_modules/@types/chai": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", @@ -6444,6 +6479,11 @@ "@types/node": "*" } }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, "node_modules/@types/inquirer": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", @@ -6509,6 +6549,14 @@ "@types/node": "*" } }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/lodash": { "version": "4.14.189", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.189.tgz", @@ -6617,6 +6665,14 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/retry": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.3.tgz", @@ -8604,6 +8660,31 @@ "node": ">= 0.8" } }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -9228,6 +9309,17 @@ "node": ">=0.8" } }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cluster-key-slot": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.1.tgz", @@ -9938,6 +10030,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, "node_modules/deferred-leveldown": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", @@ -10428,8 +10528,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "optional": true, "dependencies": { "once": "^1.4.0" } @@ -12054,6 +12152,29 @@ "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==", "dev": true }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -12159,6 +12280,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -12705,6 +12875,11 @@ "entities": "^4.4.0" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "node_modules/http-call": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", @@ -12810,6 +12985,18 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -15862,6 +16049,15 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/jssha": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jssha/-/jssha-2.4.2.tgz", + "integrity": "sha512-/jsi/9C0S70zfkT/4UlKQa5E1xKurDnXcQizcww9JSR/Fv+uIbWM2btG+bFcL3iNoK9jIGS0ls9HWLr1iw0kFg==", + "deprecated": "jsSHA versions < 3.0.0 will no longer receive feature updates", + "engines": { + "node": "*" + } + }, "node_modules/juice": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/juice/-/juice-9.1.0.tgz", @@ -16384,6 +16580,14 @@ "tslib": "^2.0.3" } }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, "node_modules/lru-cache": { "version": "7.13.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", @@ -16681,6 +16885,24 @@ "node": ">=8.6" } }, + "node_modules/microtime": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/microtime/-/microtime-3.1.1.tgz", + "integrity": "sha512-to1r7o24cDsud9IhN6/8wGmMx5R2kT0w2Xwm5okbYI3d1dk6Xv0m+Z+jg2vS9pt+ocgQHTCtgs/YuyJhySzxNg==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.4.0" + }, + "engines": { + "node": ">= 14.13.0" + } + }, + "node_modules/microtime/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -16723,8 +16945,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true, "engines": { "node": ">=4" } @@ -17991,6 +18211,17 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -18296,6 +18527,14 @@ "node": ">=0.10.0" } }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, "node_modules/p-defer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", @@ -19231,6 +19470,17 @@ } ] }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/rabin": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/rabin/-/rabin-1.6.0.tgz", @@ -19405,6 +19655,15 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/recombee-api-client": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/recombee-api-client/-/recombee-api-client-4.1.5.tgz", + "integrity": "sha512-VTN7vYonV+Ajdb/hMluEGzftKJMQt+FOEwE2AiXMAINLSsB+NarDTu18ehG1UhBbJEZWiGvRwP0Mc4FYyEnTuQ==", + "dependencies": { + "got": "^11.8.2", + "jssha": "^2.3.0" + } + }, "node_modules/redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", @@ -19560,6 +19819,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -19578,6 +19842,17 @@ "node": ">=0.8" } }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -19649,6 +19924,18 @@ "rlp": "bin/rlp" } }, + "node_modules/rolling-rate-limiter": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/rolling-rate-limiter/-/rolling-rate-limiter-0.4.2.tgz", + "integrity": "sha512-4lKCwwuINmfPvyfLtvAHn+SiwXisH8fmmEvTSHYAenAfKF0p6IErkUEIS+9dvWAslU+97WtX000ne26RAToo2w==", + "dependencies": { + "microtime": "^3.0.0", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/run": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/run/-/run-1.4.0.tgz", @@ -26489,6 +26776,11 @@ "@sendgrid/helpers": "^7.7.0" } }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, "@sqltools/formatter": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", @@ -27007,6 +27299,14 @@ "@substrate/txwrapper-core": "^3.1.3" } }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -27068,6 +27368,17 @@ "@types/node": "*" } }, + "@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "@types/chai": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", @@ -27159,6 +27470,11 @@ "@types/node": "*" } }, + "@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, "@types/inquirer": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", @@ -27223,6 +27539,14 @@ "@types/node": "*" } }, + "@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "requires": { + "@types/node": "*" + } + }, "@types/lodash": { "version": "4.14.189", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.189.tgz", @@ -27330,6 +27654,14 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "requires": { + "@types/node": "*" + } + }, "@types/retry": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.3.tgz", @@ -28814,6 +29146,25 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -29308,6 +29659,14 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, "cluster-key-slot": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.1.tgz", @@ -29903,6 +30262,11 @@ "clone": "^1.0.2" } }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "deferred-leveldown": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", @@ -30284,8 +30648,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "optional": true, "requires": { "once": "^1.4.0" } @@ -31527,6 +31889,25 @@ "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==", "dev": true }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + }, + "dependencies": { + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, "get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -31602,6 +31983,39 @@ "get-intrinsic": "^1.1.3" } }, + "got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -32012,6 +32426,11 @@ "entities": "^4.4.0" } }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "http-call": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", @@ -32093,6 +32512,15 @@ } } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -34490,6 +34918,11 @@ } } }, + "jssha": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jssha/-/jssha-2.4.2.tgz", + "integrity": "sha512-/jsi/9C0S70zfkT/4UlKQa5E1xKurDnXcQizcww9JSR/Fv+uIbWM2btG+bFcL3iNoK9jIGS0ls9HWLr1iw0kFg==" + }, "juice": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/juice/-/juice-9.1.0.tgz", @@ -34898,6 +35331,11 @@ "tslib": "^2.0.3" } }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, "lru-cache": { "version": "7.13.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", @@ -35128,6 +35566,22 @@ "picomatch": "^2.3.1" } }, + "microtime": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/microtime/-/microtime-3.1.1.tgz", + "integrity": "sha512-to1r7o24cDsud9IhN6/8wGmMx5R2kT0w2Xwm5okbYI3d1dk6Xv0m+Z+jg2vS9pt+ocgQHTCtgs/YuyJhySzxNg==", + "requires": { + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.4.0" + }, + "dependencies": { + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + } + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -35154,9 +35608,7 @@ "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimalistic-assert": { "version": "1.0.1", @@ -36242,6 +36694,11 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -36471,6 +36928,11 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "p-defer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", @@ -37208,6 +37670,11 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "rabin": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/rabin/-/rabin-1.6.0.tgz", @@ -37365,6 +37832,15 @@ } } }, + "recombee-api-client": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/recombee-api-client/-/recombee-api-client-4.1.5.tgz", + "integrity": "sha512-VTN7vYonV+Ajdb/hMluEGzftKJMQt+FOEwE2AiXMAINLSsB+NarDTu18ehG1UhBbJEZWiGvRwP0Mc4FYyEnTuQ==", + "requires": { + "got": "^11.8.2", + "jssha": "^2.3.0" + } + }, "redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", @@ -37481,6 +37957,11 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -37493,6 +37974,14 @@ "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", "devOptional": true }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -37545,6 +38034,15 @@ "bn.js": "^5.2.0" } }, + "rolling-rate-limiter": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/rolling-rate-limiter/-/rolling-rate-limiter-0.4.2.tgz", + "integrity": "sha512-4lKCwwuINmfPvyfLtvAHn+SiwXisH8fmmEvTSHYAenAfKF0p6IErkUEIS+9dvWAslU+97WtX000ne26RAToo2w==", + "requires": { + "microtime": "^3.0.0", + "uuid": "^9.0.0" + } + }, "run": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/run/-/run-1.4.0.tgz", diff --git a/package.json b/package.json index efe3c5852..158f87735 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "generate:schema": "./scripts/generate-schema-file.sh", "generate:types:auth-api": "npx openapi-typescript ./src/auth-server/openapi.yml -o ./src/auth-server/generated/api-types.ts -c ./prettierrc.js", "generate:docs:auth-api": "rm -rf ./src/auth-server/docs/* && npx openapi-generator-cli generate -i ./src/auth-server/openapi.yml -g markdown -o ./src/auth-server/docs", + "generate:types:interactions-api": "npx openapi-typescript ./src/interactions-server/openapi.yml -o ./src/interactions-server/generated/api-types.ts -c ./prettierrc.js", + "generate:docs:interactions-api": "rm -rf ./src/interactions-server/docs/* && npx openapi-generator-cli generate -i ./src/interactions-server/openapi.yml -g markdown -o ./src/interactions-server/docs", "generate:emails": "./scripts/generate-emails.js -i ./src/auth-server/emails/templates/mjml/*.mjml -o ./src/auth-server/emails/templates -p ./src/auth-server/emails/templates/preview", "watch:generate:emails": "node --watch ./scripts/generate-emails.js --watch -i ./src/auth-server/emails/templates/mjml/*.mjml -o ./src/auth-server/emails/templates -p ./src/auth-server/emails/templates/preview", "build": "npm run generate:schema; npm run generate:emails; rm -rf lib && tsc && ./scripts/copyfiles.sh", @@ -18,6 +20,7 @@ "processor-start": "node -r dotenv-expand/config lib/processor.js", "query-node-start": "NODE_ENV=production patch-package --patch-dir assets/patches && squid-graphql-server --subscriptions", "auth-server-start": "node lib/auth-server/index.js", + "interactions-server-start": "node lib/interactions-server/index.js", "postinstall": "patch-package --patch-dir assets/patches", "mail-scheduler": "npx ts-node ./src/mail-scheduler/index.ts", "tests:codegen": "npx graphql-codegen -c ./src/tests/v1/codegen.yml && npx graphql-codegen -c ./src/tests/v2/codegen.yml", @@ -72,6 +75,8 @@ "p-limit": "3.1.0", "patch-package": "^6.5.0", "pg": "8.8.0", + "recombee-api-client": "^4.1.5", + "rolling-rate-limiter": "^0.4.2", "swagger-ui-express": "^4.6.2", "type-graphql": "^1.2.0-rc.1", "typeorm": "^0.3.11", diff --git a/scripts/copyfiles.sh b/scripts/copyfiles.sh index 9111a4b5b..b6943cfef 100755 --- a/scripts/copyfiles.sh +++ b/scripts/copyfiles.sh @@ -5,4 +5,5 @@ cd $SCRIPT_PATH/.. # Copy files post-build cp ./src/auth-server/openapi.yml ./lib/auth-server/openapi.yml -cp -R ./src/auth-server/emails/templates ./lib/auth-server/emails/templates \ No newline at end of file +cp ./src/interactions-server/openapi.yml ./lib/interactions-server/openapi.yml +cp -R ./src/auth-server/emails/templates ./lib/auth-server/emails/templates diff --git a/scripts/export-recommendation-data.sh b/scripts/export-recommendation-data.sh index e564940aa..77c3f6e83 100644 --- a/scripts/export-recommendation-data.sh +++ b/scripts/export-recommendation-data.sh @@ -19,11 +19,11 @@ DB_USER="postgres" DOCKER_EXEC_COMMAND="docker exec -it orion_db psql -p $DB_PORT -h $DB_HOST -U $DB_USER -d $DB_NAME" export PGPASSWORD="$1" -VIDEO_SELECT_QUERY="SELECT id as Item_ID, duration, comments_count, EXTRACT(EPOCH FROM created_at) as timestamp, reactions_count, views_num FROM admin.video" -ACCOUNT_SELECT_QUERY="SELECT id as User_ID FROM admin.user" +VIDEO_SELECT_QUERY="SELECT id as \"itemId\", category_id, channel_id, title, language, duration, comments_count, EXTRACT(EPOCH FROM created_at) as timestamp, reactions_count, views_num FROM admin.video" +ACCOUNT_SELECT_QUERY="SELECT id as user_id FROM admin.user" -VIEWS_SELECT_QUERY="SELECT viewEvent.user_id as User_ID, viewEvent.video_id as item_id, EXTRACT(EPOCH FROM viewEvent.timestamp) as timestamp, 'watch' as event_type FROM admin.video_view_event as viewEvent" -REACTIONS_SELECT_QUERY="SELECT acc.user_id as User_ID, video_id as Item_ID, EXTRACT(EPOCH from created_at) as timestamp, 'like' as event_type FROM admin.video_reaction LEFT JOIN admin.account as acc on acc.membership_id = member_id WHERE acc.user_id IS NOT NULL" +VIEWS_SELECT_QUERY="SELECT viewEvent.user_id as user_id, viewEvent.video_id as item_id, EXTRACT(EPOCH FROM viewEvent.timestamp) as timestamp, 'watch' as event_type FROM admin.video_view_event as viewEvent" +REACTIONS_SELECT_QUERY="SELECT acc.user_id as user_id, video_id as item_id, EXTRACT(EPOCH from created_at) as timestamp, 'like' as event_type FROM admin.video_reaction LEFT JOIN admin.account as acc on acc.membership_id = member_id WHERE acc.user_id IS NOT NULL" INTERACTIONS_QUERY="WITH viewsCte as (${VIEWS_SELECT_QUERY}), reactionsCte as (${REACTIONS_SELECT_QUERY}) SELECT * FROM viewsCte UNION ALL SELECT * FROM reactionsCte" echo "Exporting videos..." diff --git a/src/interactions-server/errors.ts b/src/interactions-server/errors.ts new file mode 100644 index 000000000..25268994e --- /dev/null +++ b/src/interactions-server/errors.ts @@ -0,0 +1,33 @@ +import { AuthApiError } from '../auth-server/errors' + +export class InteractionsApiError extends Error { + readonly status: number + constructor(message: string, statusCode: number) { + super(message) + this.status = statusCode + } +} + +export class TooManyRequestsFromIp extends InteractionsApiError { + constructor(message = 'Bad request') { + super(message, 400) + } +} + +export class BadRequestError extends AuthApiError { + constructor(message = 'Bad request') { + super(message, 400) + } +} + +export class UnauthorizedError extends InteractionsApiError { + constructor(message = 'Unauthorized') { + super(message, 401) + } +} + +export class TooManyRequestsError extends InteractionsApiError { + constructor(message = 'Too many requests') { + super(message, 429) + } +} diff --git a/src/interactions-server/generated/api-types.ts b/src/interactions-server/generated/api-types.ts new file mode 100644 index 000000000..ba89b0c39 --- /dev/null +++ b/src/interactions-server/generated/api-types.ts @@ -0,0 +1,179 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + + +export interface paths { + "/video-consumed": { + /** @description Dispatches video consumed event to the recommendation service. */ + post: operations["videoConsumed"]; + }; + "/video-portion": { + /** @description Dispatches video portion event to the recommendation service. */ + post: operations["videoPortion"]; + }; + "/video-clicked": { + /** @description Dispatches video click event to the recommendation service. */ + post: operations["videoClicked"]; + }; + "/channel-clicked": { + /** @description Dispatches channel click event to the recommendation service. */ + post: operations["channelClicked"]; + }; + "/rate-video": { + /** @description Dispatches video rate event to the recommendation service. */ + post: operations["rateVideo"]; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + ItemRateInteractionRequestData: { + itemId?: string; + rating?: number; + recommId?: string; + }; + ItemClickInteractionRequestData: { + itemId?: string; + duration?: number; + recommId?: string; + }; + ItemConsumedInteractionRequestData: { + itemId?: string; + recommId?: string; + }; + ItemPortionInteractionRequestData: { + itemId?: string; + portion?: number; + recommId?: string; + }; + GenericErrorResponseData: { + message?: string; + errors?: (string)[]; + }; + GenericOkResponseData: { + success: boolean; + }; + }; + responses: { + /** @description Invalid request data */ + GenericBadRequestResponse: { + content: { + "application/json": components["schemas"]["GenericErrorResponseData"]; + }; + }; + /** @description Internal server error */ + GenericInternalServerErrorResponse: { + content: { + "application/json": components["schemas"]["GenericErrorResponseData"]; + }; + }; + /** @description Ok */ + GenericOkResponse: { + content: { + "application/json": components["schemas"]["GenericOkResponseData"]; + }; + }; + /** @description Access token (session id) is missing or invalid. */ + GenericUnauthorizedResponse: { + content: { + "application/json": components["schemas"]["GenericErrorResponseData"]; + }; + }; + /** @description Too many requests sent within a given timeframe. */ + GenericTooManyRequestsResponse: { + content: { + "application/json": components["schemas"]["GenericErrorResponseData"]; + }; + }; + }; + parameters: never; + requestBodies: { + ItemRateInteractionBody?: { + content: { + "application/json": components["schemas"]["ItemRateInteractionRequestData"]; + }; + }; + ItemClickInteractionBody?: { + content: { + "application/json": components["schemas"]["ItemClickInteractionRequestData"]; + }; + }; + ItemConsumedInteractionBody?: { + content: { + "application/json": components["schemas"]["ItemConsumedInteractionRequestData"]; + }; + }; + ItemPortionInteractionBody?: { + content: { + "application/json": components["schemas"]["ItemPortionInteractionRequestData"]; + }; + }; + }; + headers: never; + pathItems: never; +} + +export type external = Record; + +export interface operations { + + /** @description Dispatches video consumed event to the recommendation service. */ + videoConsumed: { + requestBody: components["requestBodies"]["ItemConsumedInteractionBody"]; + responses: { + 200: components["responses"]["GenericOkResponse"]; + 400: components["responses"]["GenericBadRequestResponse"]; + 401: components["responses"]["GenericUnauthorizedResponse"]; + 429: components["responses"]["GenericTooManyRequestsResponse"]; + default: components["responses"]["GenericInternalServerErrorResponse"]; + }; + }; + /** @description Dispatches video portion event to the recommendation service. */ + videoPortion: { + requestBody: components["requestBodies"]["ItemPortionInteractionBody"]; + responses: { + 200: components["responses"]["GenericOkResponse"]; + 400: components["responses"]["GenericBadRequestResponse"]; + 401: components["responses"]["GenericUnauthorizedResponse"]; + 429: components["responses"]["GenericTooManyRequestsResponse"]; + default: components["responses"]["GenericInternalServerErrorResponse"]; + }; + }; + /** @description Dispatches video click event to the recommendation service. */ + videoClicked: { + requestBody: components["requestBodies"]["ItemClickInteractionBody"]; + responses: { + 200: components["responses"]["GenericOkResponse"]; + 400: components["responses"]["GenericBadRequestResponse"]; + 401: components["responses"]["GenericUnauthorizedResponse"]; + 429: components["responses"]["GenericTooManyRequestsResponse"]; + default: components["responses"]["GenericInternalServerErrorResponse"]; + }; + }; + /** @description Dispatches channel click event to the recommendation service. */ + channelClicked: { + requestBody: components["requestBodies"]["ItemClickInteractionBody"]; + responses: { + 200: components["responses"]["GenericOkResponse"]; + 400: components["responses"]["GenericBadRequestResponse"]; + 401: components["responses"]["GenericUnauthorizedResponse"]; + 429: components["responses"]["GenericTooManyRequestsResponse"]; + default: components["responses"]["GenericInternalServerErrorResponse"]; + }; + }; + /** @description Dispatches video rate event to the recommendation service. */ + rateVideo: { + requestBody: components["requestBodies"]["ItemRateInteractionBody"]; + responses: { + 200: components["responses"]["GenericOkResponse"]; + 400: components["responses"]["GenericBadRequestResponse"]; + 401: components["responses"]["GenericUnauthorizedResponse"]; + 429: components["responses"]["GenericTooManyRequestsResponse"]; + default: components["responses"]["GenericInternalServerErrorResponse"]; + }; + }; +} diff --git a/src/interactions-server/index.ts b/src/interactions-server/index.ts new file mode 100644 index 000000000..b1898f3c8 --- /dev/null +++ b/src/interactions-server/index.ts @@ -0,0 +1,77 @@ +import express from 'express' +import cors from 'cors' +import * as OpenApiValidator from 'express-openapi-validator' +import { HttpError } from 'express-openapi-validator/dist/framework/types' +import path from 'path' +import { InteractionsApiError } from './errors' +import { createLogger } from '@subsquid/logger' +import { authenticate, getCorsOrigin } from '../utils/auth' +import cookieParser from 'cookie-parser' +import { applyRateLimits, globalRateLimit, rateLimitsPerRoute } from './rateLimits' +import swaggerUi, { JsonObject } from 'swagger-ui-express' +import YAML from 'js-yaml' +import fs from 'fs' + +export const logger = createLogger('auth-api') + +export const app = express() + +function authHandler(type: 'header' | 'cookie') { + return async (req: express.Request) => { + const authContext = await authenticate(req, type) + + if (req.res) { + req.res.locals.authContext = authContext + } + return true + } +} + +app.set('trust proxy', process.env.TRUST_PROXY || false) +app.use(cookieParser(process.env.COOKIE_SECRET)) +app.use(express.json()) +app.use( + cors({ + origin: getCorsOrigin(), + credentials: true, + }) +) +applyRateLimits(app, globalRateLimit, rateLimitsPerRoute) +if (process.env.OPENAPI_PLAYGROUND === 'true' || process.env.OPENAPI_PLAYGROUND === '1') { + const spec = YAML.load( + fs.readFileSync(path.join(__dirname, 'openapi.yml')).toString() + ) as JsonObject + logger.info('Running playground at /playground') + console.log('Spec', spec) + app.use('/playground', swaggerUi.serve, swaggerUi.setup(spec)) +} +app.use( + OpenApiValidator.middleware({ + apiSpec: path.join(__dirname, 'openapi.yml'), + operationHandlers: path.join(__dirname, 'handlers'), + validateSecurity: { + handlers: { + bearerAuth: authHandler('header'), + cookieAuth: authHandler('cookie'), + }, + }, + }) +) + +// TODO: Logging + +app.use((err: unknown, req: express.Request, res: express.Response, next: express.NextFunction) => { + if (res.headersSent) { + return next(err) + } + logger.error(String(err)) + const message = + err instanceof HttpError || err instanceof InteractionsApiError + ? err.message + : 'Internal server error' + const status = err instanceof HttpError || err instanceof InteractionsApiError ? err.status : 500 + res.status(status).json({ message }) +}) + +const port = parseInt(process.env.INTERACTIONS_API_PORT || '4706') +app.listen(port, () => logger.info(`Listening on port ${port}`)) diff --git a/src/interactions-server/interactionsLimiter.ts b/src/interactions-server/interactionsLimiter.ts new file mode 100644 index 000000000..2f3b87ebd --- /dev/null +++ b/src/interactions-server/interactionsLimiter.ts @@ -0,0 +1,11 @@ +import { InMemoryRateLimiter } from 'rolling-rate-limiter' + +export const singleClickLimiter = new InMemoryRateLimiter({ + interval: 1000 * 60 * 10, // 10 minutes + maxInInterval: 20, +}) + +export const singlePurchaseLimiter = new InMemoryRateLimiter({ + interval: 1000 * 60 * 10, // 10 minutes + maxInInterval: 5, +}) diff --git a/src/interactions-server/openapi.yml b/src/interactions-server/openapi.yml new file mode 100644 index 000000000..3eadc8b45 --- /dev/null +++ b/src/interactions-server/openapi.yml @@ -0,0 +1,226 @@ +openapi: 3.0.2 +info: + title: Orion authentication API + description: Orion API for handling authentication, account creation and related activites + contact: + email: info@joystream.org + license: + name: GPL-3.0-only + url: 'https://opensource.org/licenses/GPL-3.0' + version: 1.0.0 +servers: + - url: '/api/v1/' +paths: + /video-consumed: + post: + operationId: videoConsumed + x-eov-operation-handler: videoConsumed + description: Dispatches video consumed event to the recommendation service. + requestBody: + $ref: '#/components/requestBodies/ItemConsumedInteractionBody' + security: + - cookieAuth: [] + responses: + '200': + $ref: '#/components/responses/GenericOkResponse' + '400': + $ref: '#/components/responses/GenericBadRequestResponse' + '401': + $ref: '#/components/responses/GenericUnauthorizedResponse' + '429': + $ref: '#/components/responses/GenericTooManyRequestsResponse' + default: + $ref: '#/components/responses/GenericInternalServerErrorResponse' + /video-portion: + post: + operationId: videoPortion + x-eov-operation-handler: videoPortion + description: Dispatches video portion event to the recommendation service. + requestBody: + $ref: '#/components/requestBodies/ItemPortionInteractionBody' + security: + - cookieAuth: [] + responses: + '200': + $ref: '#/components/responses/GenericOkResponse' + '400': + $ref: '#/components/responses/GenericBadRequestResponse' + '401': + $ref: '#/components/responses/GenericUnauthorizedResponse' + '429': + $ref: '#/components/responses/GenericTooManyRequestsResponse' + default: + $ref: '#/components/responses/GenericInternalServerErrorResponse' + /video-clicked: + post: + operationId: videoClicked + x-eov-operation-handler: videoClicked + description: Dispatches video click event to the recommendation service. + requestBody: + $ref: '#/components/requestBodies/ItemClickInteractionBody' + security: + - cookieAuth: [] + responses: + '200': + $ref: '#/components/responses/GenericOkResponse' + '400': + $ref: '#/components/responses/GenericBadRequestResponse' + '401': + $ref: '#/components/responses/GenericUnauthorizedResponse' + '429': + $ref: '#/components/responses/GenericTooManyRequestsResponse' + default: + $ref: '#/components/responses/GenericInternalServerErrorResponse' + /channel-clicked: + post: + operationId: channelClicked + x-eov-operation-handler: channelClicked + description: Dispatches channel click event to the recommendation service. + requestBody: + $ref: '#/components/requestBodies/ItemClickInteractionBody' + security: + - cookieAuth: [] + responses: + '200': + $ref: '#/components/responses/GenericOkResponse' + '400': + $ref: '#/components/responses/GenericBadRequestResponse' + '401': + $ref: '#/components/responses/GenericUnauthorizedResponse' + '429': + $ref: '#/components/responses/GenericTooManyRequestsResponse' + default: + $ref: '#/components/responses/GenericInternalServerErrorResponse' + /rate-video: + post: + operationId: rateVideo + x-eov-operation-handler: rateVideo + description: Dispatches video rate event to the recommendation service. + requestBody: + $ref: '#/components/requestBodies/ItemRateInteractionBody' + security: + - cookieAuth: [] + responses: + '200': + $ref: '#/components/responses/GenericOkResponse' + '400': + $ref: '#/components/responses/GenericBadRequestResponse' + '401': + $ref: '#/components/responses/GenericUnauthorizedResponse' + '429': + $ref: '#/components/responses/GenericTooManyRequestsResponse' + default: + $ref: '#/components/responses/GenericInternalServerErrorResponse' +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: Session ID + cookieAuth: + type: apiKey + in: cookie + name: session_id + requestBodies: + ItemRateInteractionBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ItemRateInteractionRequestData' + ItemClickInteractionBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ItemClickInteractionRequestData' + ItemConsumedInteractionBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ItemConsumedInteractionRequestData' + ItemPortionInteractionBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ItemPortionInteractionRequestData' + responses: + GenericBadRequestResponse: + description: Invalid request data + content: + application/json: + schema: + $ref: '#/components/schemas/GenericErrorResponseData' + GenericInternalServerErrorResponse: + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/GenericErrorResponseData' + GenericOkResponse: + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/GenericOkResponseData' + GenericUnauthorizedResponse: + description: Access token (session id) is missing or invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/GenericErrorResponseData' + GenericTooManyRequestsResponse: + description: Too many requests sent within a given timeframe. + content: + application/json: + schema: + $ref: '#/components/schemas/GenericErrorResponseData' + schemas: + ItemRateInteractionRequestData: + type: object + properties: + itemId: + type: string + rating: + type: number + recommId: + type: string + ItemClickInteractionRequestData: + type: object + properties: + itemId: + type: string + duration: + type: number + recommId: + type: string + ItemConsumedInteractionRequestData: + type: object + properties: + itemId: + type: string + recommId: + type: string + ItemPortionInteractionRequestData: + type: object + properties: + itemId: + type: string + portion: + type: number + recommId: + type: string + GenericErrorResponseData: + type: object + properties: + message: + type: string + errors: + type: array + items: + type: string + GenericOkResponseData: + type: object + required: + - success + properties: + success: + type: boolean diff --git a/src/interactions-server/rateLimits.ts b/src/interactions-server/rateLimits.ts new file mode 100644 index 000000000..1ace4fc34 --- /dev/null +++ b/src/interactions-server/rateLimits.ts @@ -0,0 +1,89 @@ +import rateLimit, { Options as RateLimitOptions, RateLimitRequestHandler } from 'express-rate-limit' +import { paths } from './generated/api-types' +import { Express } from 'express' + +const defaultRateLimitOptions: Partial = { + standardHeaders: true, + legacyHeaders: false, + message: 'Too many requests from this IP, please try again after a while', + statusCode: 429, +} + +export type SimpleRateLimit = { + windowMinutes: number + limit: number +} + +type RateLimitsPerRoute = { + [P in keyof paths]?: { + [M in keyof paths[P]]?: SimpleRateLimit + } +} + +// Global limit is 300 auth API requests per 15 minutes per IP, +// it applies to all routes that don't have a specific limit set +export const globalRateLimit: SimpleRateLimit = { + windowMinutes: 15, + limit: 300, +} + +// Route-specific rate limits +export const rateLimitsPerRoute: RateLimitsPerRoute = { + '/video-clicked': { + post: { + windowMinutes: 5, + limit: 50, + }, + }, + '/channel-clicked': { + post: { + windowMinutes: 5, + limit: 50, + }, + }, + '/video-consumed': { + post: { + windowMinutes: 5, + limit: 15, + }, + }, + '/video-portion': { + post: { + windowMinutes: 5, + limit: 50, + }, + }, +} + +const limiters: RateLimitRequestHandler[] = [] + +export function resetAllLimits(key: string) { + limiters.forEach((limiter) => { + limiter.resetKey(key) + }) +} + +export function applyRateLimits( + app: Express, + globalLimit: SimpleRateLimit, + limitsPerRoute: RateLimitsPerRoute +) { + const globalLimiter = rateLimit({ + ...defaultRateLimitOptions, + windowMs: globalLimit.windowMinutes * 60 * 1000, + max: globalLimit.limit, + }) + limiters.push(globalLimiter) + app.use('/', globalLimiter) + for (const [path, pathConfig] of Object.entries(limitsPerRoute)) { + for (const [method, config] of Object.entries(pathConfig)) { + const limiter = rateLimit({ + ...defaultRateLimitOptions, + windowMs: config.windowMinutes * 60 * 1000, + max: config.limit, + }) + limiters.push(limiter) + app[method as 'post' | 'get'](`/api/v1${path}`, limiter) + } + } +} diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 5f28e602b..c33236e99 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -1,31 +1,153 @@ -import { Account, User, Video } from '../model' +import { User, Video } from '../model' +import { ApiClient, requests as ClientRequests } from 'recombee-api-client' type RSVideo = Pick< Video, - 'duration' | 'categoryId' | 'commentsCount' | 'createdAt' | 'reactionsCount' | 'viewsNum' + | 'id' + | 'duration' + | 'categoryId' + | 'commentsCount' + | 'createdAt' + | 'reactionsCount' + | 'viewsNum' + | 'channelId' + | 'language' + | 'title' > type RSUser = Pick -type InteractionEventType = 'watch' | 'click' | 'like' | 'comment' +export class RecommendationServiceManager { + private _videosQueue: ClientRequests.SetItemValues[] = [] + private _usersQueue: ClientRequests.SetUserValues[] = [] + private _clickInteracionQueue: ClientRequests.AddDetailView[] = [] + private _viewPortionInteracionQueue: ClientRequests.SetViewPortion[] = [] + private _consumeInteracionQueue: ClientRequests.AddPurchase[] = [] + private _ratingInteracionQueue: ClientRequests.AddRating[] = [] -type RSInteraction = { - userId: string - itemId: string - timestamp: number - eventType: InteractionEventType -} + private client: ApiClient + + constructor() { + this.client = new ApiClient('db-id', 'priv_key', { region: 'eu-west' }) + } + + async scheduleVideoUpsert(video: RSVideo) { + const actionObject = new ClientRequests.SetItemValues( + video.id, + { + category_id: video.categoryId, + channel_id: video.channelId, + comments_count: video.commentsCount, + duration: video.duration, + language: video.language, + reaction_count: video.reactionsCount, + timestamp: video.createdAt.getTime(), + title: video.title, + views_num: video.viewsNum, + // recombee only offers single items table, so it would be good to have type + // in case we decide to add new type in the future, like NFT + type: 'video', + }, + { + cascadeCreate: true, + } + ) + + this._videosQueue.push(actionObject) + + if (this._videosQueue.length >= 100) { + // await this.client.send(new ClientRequests.Batch(this._videosQueue)) + this._videosQueue.length = 0 + } + } + + async scheduleUserUpsert(user: RSUser) { + const actionObject = new ClientRequests.SetUserValues( + user.id, + { + userId: user.id, + }, + { + cascadeCreate: true, + } + ) + + this._usersQueue.push(actionObject) + + if (this._usersQueue.length >= 100) { + // await this.client.send(new ClientRequests.Batch(this._usersQueue)) + this._usersQueue.length = 0 + } + } -class RecommendationServiceManager { - async updateVideo(videoId: string, params: Partial) { - /**/ + // this interaction has big model value and should we used for + // reliable interactions like video viewed in 90% or nft of given video bought + async sendItemConsumed(itemId: string, userId: string, recommId?: string) { + const actionObject = new ClientRequests.AddPurchase(userId, itemId, { + timestamp: Date.now(), + cascadeCreate: true, + recommId, + }) + + this._consumeInteracionQueue.push(actionObject) + + if (this._consumeInteracionQueue.length >= 50) { + // await this.client.send(new ClientRequests.Batch(this._consumeInteracionQueue)) + this._consumeInteracionQueue.length = 0 + } } - async newVideo(videoId: string, params: RSVideo) { - /**/ + // this interaction should be dispatched when user clicks a video to see it + async sendClickEvent(itemId: string, userId: string, duration?: number, recommId?: string) { + const actionObject = new ClientRequests.AddDetailView(userId, itemId, { + timestamp: Date.now(), + cascadeCreate: true, + recommId, + duration, + }) + + this._clickInteracionQueue.push(actionObject) + + if (this._clickInteracionQueue.length >= 50) { + // await this.client.send(new ClientRequests.Batch(this._clickInteracionQueue)) + this._clickInteracionQueue.length = 0 + } } - async newUser(user: RSUser) { - /**/ + // this interaction is for user engagement level + // in Orion it would state how long user has watched the video + async sendViewPortion(itemId: string, userId: string, portion: number, recommId?: string) { + const actionObject = new ClientRequests.SetViewPortion(userId, itemId, portion, { + timestamp: Date.now(), + cascadeCreate: true, + recommId, + }) + + this._viewPortionInteracionQueue.push(actionObject) + + if (this._viewPortionInteracionQueue.length >= 50) { + // await this.client.send(new ClientRequests.Batch(this._viewPortionInteracionQueue)) + this._viewPortionInteracionQueue.length = 0 + } + } + + async sendItemRating(itemId: string, userId: string, rating: number, recommId?: string) { + if (rating < -1 || rating > 1) { + throw new Error('Rating out of bounds') + } + const actionObject = new ClientRequests.AddRating(userId, itemId, rating, { + timestamp: Date.now(), + cascadeCreate: true, + recommId, + }) + + this._ratingInteracionQueue.push(actionObject) + + if (this._ratingInteracionQueue.length >= 50) { + // await this.client.send(new ClientRequests.Batch(this._ratingInteracionQueue)) + this._ratingInteracionQueue.length = 0 + } } } + +export const recommendationServiceManager = new RecommendationServiceManager() From e099099a3df9f670f4f676b9ebe486cc5fd248fd Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 12 Jan 2024 14:23:15 +0100 Subject: [PATCH 06/49] Interactions service: handlers --- .../handlers/channelClicked.ts | 5 +++ src/interactions-server/handlers/rateVideo.ts | 37 ++++++++++++++++ .../handlers/videoClicked.ts | 44 +++++++++++++++++++ .../handlers/videoConsumed.ts | 43 ++++++++++++++++++ .../handlers/videoPortion.ts | 37 ++++++++++++++++ 5 files changed, 166 insertions(+) create mode 100644 src/interactions-server/handlers/channelClicked.ts create mode 100644 src/interactions-server/handlers/rateVideo.ts create mode 100644 src/interactions-server/handlers/videoClicked.ts create mode 100644 src/interactions-server/handlers/videoConsumed.ts create mode 100644 src/interactions-server/handlers/videoPortion.ts diff --git a/src/interactions-server/handlers/channelClicked.ts b/src/interactions-server/handlers/channelClicked.ts new file mode 100644 index 000000000..c98950b1d --- /dev/null +++ b/src/interactions-server/handlers/channelClicked.ts @@ -0,0 +1,5 @@ +import express from 'express' + +export const channelClicked = (_: unknown, res: express.Response) => { + res.status(200).json({ success: true }) +} diff --git a/src/interactions-server/handlers/rateVideo.ts b/src/interactions-server/handlers/rateVideo.ts new file mode 100644 index 000000000..ce50864b8 --- /dev/null +++ b/src/interactions-server/handlers/rateVideo.ts @@ -0,0 +1,37 @@ +import express from 'express' +import { BadRequestError, UnauthorizedError } from '../errors' +import { components } from '../generated/api-types' +import { AuthContext } from '../../utils/auth' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' + +type ReqParams = Record +type ResBody = + | components['schemas']['GenericOkResponseData'] + | components['schemas']['GenericErrorResponseData'] +type ReqBody = components['schemas']['ItemRateInteractionRequestData'] +type ResLocals = { authContext: AuthContext } + +export const rateVideo: ( + req: express.Request, + res: express.Response, + next: express.NextFunction +) => Promise = async (req, res, next) => { + try { + const { authContext: session } = res.locals + const { itemId, rating, recommId } = req.body + + if (!session || !session.userId || session.expiry.getTime() < Date.now()) { + throw new UnauthorizedError('Session unavailable or expired') + } + + if (!itemId || !rating) { + throw new BadRequestError('Request missing parameters') + } + + await recommendationServiceManager.sendItemRating(itemId, session.userId, rating, recommId) + + res.status(200).json({ success: true }) + } catch (e) { + next(e) + } +} diff --git a/src/interactions-server/handlers/videoClicked.ts b/src/interactions-server/handlers/videoClicked.ts new file mode 100644 index 000000000..b7c425a9e --- /dev/null +++ b/src/interactions-server/handlers/videoClicked.ts @@ -0,0 +1,44 @@ +import express from 'express' +import { BadRequestError, TooManyRequestsError, UnauthorizedError } from '../errors' +import { components } from '../generated/api-types' +import { AuthContext } from '../../utils/auth' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' +import { singleClickLimiter } from '../interactionsLimiter' + +type ReqParams = Record +type ResBody = + | components['schemas']['GenericOkResponseData'] + | components['schemas']['GenericErrorResponseData'] +type ReqBody = components['schemas']['ItemClickInteractionRequestData'] +type ResLocals = { authContext: AuthContext } + +export const videoClicked: ( + req: express.Request, + res: express.Response, + next: express.NextFunction +) => Promise = async (req, res, next) => { + try { + const { authContext: session } = res.locals + const { itemId, duration, recommId } = req.body + + if (!session || !session.userId || session.expiry.getTime() < Date.now()) { + throw new UnauthorizedError('Session unavailable or expired') + } + + if (!itemId) { + throw new BadRequestError('Request missing item id') + } + + const isBlocked = await singleClickLimiter.limit(`${itemId}:${session.userId}-video`) + + if (isBlocked) { + throw new TooManyRequestsError('Too many requests') + } + + await recommendationServiceManager.sendClickEvent(itemId, session.userId, duration, recommId) + + res.status(200).json({ success: true }) + } catch (e) { + next(e) + } +} diff --git a/src/interactions-server/handlers/videoConsumed.ts b/src/interactions-server/handlers/videoConsumed.ts new file mode 100644 index 000000000..1daa847b6 --- /dev/null +++ b/src/interactions-server/handlers/videoConsumed.ts @@ -0,0 +1,43 @@ +import express from 'express' +import { BadRequestError, TooManyRequestsError, UnauthorizedError } from '../errors' +import { components } from '../generated/api-types' +import { AuthContext } from '../../utils/auth' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' +import { singlePurchaseLimiter } from '../interactionsLimiter' + +type ReqParams = Record +type ResBody = + | components['schemas']['GenericOkResponseData'] + | components['schemas']['GenericErrorResponseData'] +type ReqBody = components['schemas']['ItemConsumedInteractionRequestData'] +type ResLocals = { authContext: AuthContext } + +export const videoConsumed: ( + req: express.Request, + res: express.Response, + next: express.NextFunction +) => Promise = async (req, res, next) => { + try { + const { authContext: session } = res.locals + const { itemId, recommId } = req.body + if (!session || !session.userId || session.expiry.getTime() < Date.now()) { + throw new UnauthorizedError('Session unavailable or expired') + } + + if (!itemId) { + throw new BadRequestError('Request missing item id') + } + + const isBlocked = await singlePurchaseLimiter.limit(`${itemId}:${session.userId}-video`) + + if (isBlocked) { + throw new TooManyRequestsError('Too many requests') + } + + await recommendationServiceManager.sendItemConsumed(itemId, session.userId, recommId) + + res.status(200).json({ success: true }) + } catch (e) { + next(e) + } +} diff --git a/src/interactions-server/handlers/videoPortion.ts b/src/interactions-server/handlers/videoPortion.ts new file mode 100644 index 000000000..d5589b9cf --- /dev/null +++ b/src/interactions-server/handlers/videoPortion.ts @@ -0,0 +1,37 @@ +import express from 'express' +import { BadRequestError, UnauthorizedError } from '../errors' +import { components } from '../generated/api-types' +import { AuthContext } from '../../utils/auth' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' + +type ReqParams = Record +type ResBody = + | components['schemas']['GenericOkResponseData'] + | components['schemas']['GenericErrorResponseData'] +type ReqBody = components['schemas']['ItemPortionInteractionRequestData'] +type ResLocals = { authContext: AuthContext } + +export const videoPortion: ( + req: express.Request, + res: express.Response, + next: express.NextFunction +) => Promise = async (req, res, next) => { + try { + const { authContext: session } = res.locals + const { itemId, portion, recommId } = req.body + + if (!session || !session.userId || session.expiry.getTime() < Date.now()) { + throw new UnauthorizedError('Session unavailable or expired') + } + + if (!itemId || !portion) { + throw new BadRequestError('Request missing parameters') + } + + await recommendationServiceManager.sendViewPortion(itemId, session.userId, portion, recommId) + + res.status(200).json({ success: true }) + } catch (e) { + next(e) + } +} From 3bb5a1eb5c294804ab01243f25fbd0213fdec63a Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 15 Jan 2024 10:33:49 +0100 Subject: [PATCH 07/49] Rename methods --- src/interactions-server/handlers/rateVideo.ts | 2 +- .../handlers/videoClicked.ts | 7 ++- .../handlers/videoConsumed.ts | 2 +- .../handlers/videoPortion.ts | 7 ++- src/utils/RecommendationServiceManager.ts | 60 ++++++++++++++----- 5 files changed, 60 insertions(+), 18 deletions(-) diff --git a/src/interactions-server/handlers/rateVideo.ts b/src/interactions-server/handlers/rateVideo.ts index ce50864b8..bb91de16f 100644 --- a/src/interactions-server/handlers/rateVideo.ts +++ b/src/interactions-server/handlers/rateVideo.ts @@ -28,7 +28,7 @@ export const rateVideo: ( throw new BadRequestError('Request missing parameters') } - await recommendationServiceManager.sendItemRating(itemId, session.userId, rating, recommId) + await recommendationServiceManager.scheduleItemRating(itemId, session.userId, rating, recommId) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoClicked.ts b/src/interactions-server/handlers/videoClicked.ts index b7c425a9e..e9f6dc082 100644 --- a/src/interactions-server/handlers/videoClicked.ts +++ b/src/interactions-server/handlers/videoClicked.ts @@ -35,7 +35,12 @@ export const videoClicked: ( throw new TooManyRequestsError('Too many requests') } - await recommendationServiceManager.sendClickEvent(itemId, session.userId, duration, recommId) + await recommendationServiceManager.scheduleClickEvent( + itemId, + session.userId, + duration, + recommId + ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoConsumed.ts b/src/interactions-server/handlers/videoConsumed.ts index 1daa847b6..80a8990b8 100644 --- a/src/interactions-server/handlers/videoConsumed.ts +++ b/src/interactions-server/handlers/videoConsumed.ts @@ -34,7 +34,7 @@ export const videoConsumed: ( throw new TooManyRequestsError('Too many requests') } - await recommendationServiceManager.sendItemConsumed(itemId, session.userId, recommId) + await recommendationServiceManager.scheduleItemConsumed(itemId, session.userId, recommId) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoPortion.ts b/src/interactions-server/handlers/videoPortion.ts index d5589b9cf..125207d88 100644 --- a/src/interactions-server/handlers/videoPortion.ts +++ b/src/interactions-server/handlers/videoPortion.ts @@ -28,7 +28,12 @@ export const videoPortion: ( throw new BadRequestError('Request missing parameters') } - await recommendationServiceManager.sendViewPortion(itemId, session.userId, portion, recommId) + await recommendationServiceManager.scheduleViewPortion( + itemId, + session.userId, + portion, + recommId + ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index c33236e99..5035c5534 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -1,5 +1,6 @@ import { User, Video } from '../model' import { ApiClient, requests as ClientRequests } from 'recombee-api-client' +import { createLogger } from '@subsquid/logger' type RSVideo = Pick< Video, @@ -17,6 +18,8 @@ type RSVideo = Pick< type RSUser = Pick +const recommendationServiceLogger = createLogger('recommendationsService') + export class RecommendationServiceManager { private _videosQueue: ClientRequests.SetItemValues[] = [] private _usersQueue: ClientRequests.SetUserValues[] = [] @@ -25,10 +28,19 @@ export class RecommendationServiceManager { private _consumeInteracionQueue: ClientRequests.AddPurchase[] = [] private _ratingInteracionQueue: ClientRequests.AddRating[] = [] - private client: ApiClient + private client: ApiClient | null = null + private _enabled = true - constructor() { - this.client = new ApiClient('db-id', 'priv_key', { region: 'eu-west' }) + constructor(databaseId?: string) { + if (!process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY || !databaseId) { + recommendationServiceLogger.error( + 'RecommendationServiceManager initalized withour required variables' + ) + return + } + this.client = new ApiClient(databaseId, process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY, { + region: 'eu-west', + }) } async scheduleVideoUpsert(video: RSVideo) { @@ -56,7 +68,7 @@ export class RecommendationServiceManager { this._videosQueue.push(actionObject) if (this._videosQueue.length >= 100) { - // await this.client.send(new ClientRequests.Batch(this._videosQueue)) + await this.sendBatchRequest(this._videosQueue) this._videosQueue.length = 0 } } @@ -75,14 +87,14 @@ export class RecommendationServiceManager { this._usersQueue.push(actionObject) if (this._usersQueue.length >= 100) { - // await this.client.send(new ClientRequests.Batch(this._usersQueue)) + await this.sendBatchRequest(this._usersQueue) this._usersQueue.length = 0 } } // this interaction has big model value and should we used for // reliable interactions like video viewed in 90% or nft of given video bought - async sendItemConsumed(itemId: string, userId: string, recommId?: string) { + async scheduleItemConsumed(itemId: string, userId: string, recommId?: string) { const actionObject = new ClientRequests.AddPurchase(userId, itemId, { timestamp: Date.now(), cascadeCreate: true, @@ -92,13 +104,13 @@ export class RecommendationServiceManager { this._consumeInteracionQueue.push(actionObject) if (this._consumeInteracionQueue.length >= 50) { - // await this.client.send(new ClientRequests.Batch(this._consumeInteracionQueue)) + await this.sendBatchRequest(this._consumeInteracionQueue) this._consumeInteracionQueue.length = 0 } } // this interaction should be dispatched when user clicks a video to see it - async sendClickEvent(itemId: string, userId: string, duration?: number, recommId?: string) { + async scheduleClickEvent(itemId: string, userId: string, duration?: number, recommId?: string) { const actionObject = new ClientRequests.AddDetailView(userId, itemId, { timestamp: Date.now(), cascadeCreate: true, @@ -109,14 +121,14 @@ export class RecommendationServiceManager { this._clickInteracionQueue.push(actionObject) if (this._clickInteracionQueue.length >= 50) { - // await this.client.send(new ClientRequests.Batch(this._clickInteracionQueue)) + await this.sendBatchRequest(this._clickInteracionQueue) this._clickInteracionQueue.length = 0 } } // this interaction is for user engagement level // in Orion it would state how long user has watched the video - async sendViewPortion(itemId: string, userId: string, portion: number, recommId?: string) { + async scheduleViewPortion(itemId: string, userId: string, portion: number, recommId?: string) { const actionObject = new ClientRequests.SetViewPortion(userId, itemId, portion, { timestamp: Date.now(), cascadeCreate: true, @@ -126,12 +138,12 @@ export class RecommendationServiceManager { this._viewPortionInteracionQueue.push(actionObject) if (this._viewPortionInteracionQueue.length >= 50) { - // await this.client.send(new ClientRequests.Batch(this._viewPortionInteracionQueue)) + await this.sendBatchRequest(this._viewPortionInteracionQueue) this._viewPortionInteracionQueue.length = 0 } } - async sendItemRating(itemId: string, userId: string, rating: number, recommId?: string) { + async scheduleItemRating(itemId: string, userId: string, rating: number, recommId?: string) { if (rating < -1 || rating > 1) { throw new Error('Rating out of bounds') } @@ -144,10 +156,30 @@ export class RecommendationServiceManager { this._ratingInteracionQueue.push(actionObject) if (this._ratingInteracionQueue.length >= 50) { - // await this.client.send(new ClientRequests.Batch(this._ratingInteracionQueue)) + await this.sendBatchRequest(this._ratingInteracionQueue) this._ratingInteracionQueue.length = 0 } } + + async enableSync() { + this._ratingInteracionQueue.length = 0 + this._consumeInteracionQueue.length = 0 + this._clickInteracionQueue.length = 0 + this._viewPortionInteracionQueue.length = 0 + this._videosQueue.length = 0 + this._usersQueue.length = 0 + + this._enabled = true + } + + private async sendBatchRequest(requests: ClientRequests.Request[]) { + if (!this._enabled) { + return + } + return this.client?.send(new ClientRequests.Batch(requests)) + } } -export const recommendationServiceManager = new RecommendationServiceManager() +export const recommendationServiceManager = new RecommendationServiceManager( + process.env.VIDEO_ITEM_DATABASE_ID +) From eb525364c2377f9904eb04d4d5e4dd76dba71497 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 16 Jan 2024 10:38:29 +0100 Subject: [PATCH 08/49] Add user upsert to auth api --- src/auth-server/handlers/anonymousAuth.ts | 6 ++++++ src/auth-server/index.ts | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/auth-server/handlers/anonymousAuth.ts b/src/auth-server/handlers/anonymousAuth.ts index 81c204f80..b7598aab4 100644 --- a/src/auth-server/handlers/anonymousAuth.ts +++ b/src/auth-server/handlers/anonymousAuth.ts @@ -5,6 +5,7 @@ import { globalEm } from '../../utils/globalEm' import { components } from '../generated/api-types' import { UnauthorizedError } from '../errors' import { getOrCreateSession, setSessionCookie } from '../../utils/auth' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' type ReqParams = Record type ResBody = @@ -32,6 +33,11 @@ export const anonymousAuth: ( isRoot: false, }) ) + + if (user && !userId) { + await recommendationServiceManager.scheduleUserUpsert({ id: user.id }) + } + if (!user) { throw new UnauthorizedError('User not found by provided userId') } diff --git a/src/auth-server/index.ts b/src/auth-server/index.ts index 742de922f..a7bad92e3 100644 --- a/src/auth-server/index.ts +++ b/src/auth-server/index.ts @@ -11,9 +11,11 @@ import { applyRateLimits, globalRateLimit, rateLimitsPerRoute } from './rateLimi import swaggerUi, { JsonObject } from 'swagger-ui-express' import YAML from 'js-yaml' import fs from 'fs' +import { recommendationServiceManager } from '../utils/RecommendationServiceManager' export const logger = createLogger('auth-api') +recommendationServiceManager.enableSync() export const app = express() function authHandler(type: 'header' | 'cookie') { From 7bd035959a4b123f1f10f5f378a80465a5373dc1 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 16 Jan 2024 10:40:26 +0100 Subject: [PATCH 09/49] Add video upsert to the mappings and processor --- src/mappings/content/video.ts | 3 +++ src/processor.ts | 5 +++++ src/utils/RecommendationServiceManager.ts | 6 +++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/mappings/content/video.ts b/src/mappings/content/video.ts index 185d7fba9..6c0e58c1b 100644 --- a/src/mappings/content/video.ts +++ b/src/mappings/content/video.ts @@ -27,6 +27,7 @@ import { processNft, } from './utils' import { generateAppActionCommitment } from '@joystream/js/utils' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' export async function processVideoCreatedEvent({ overlay, @@ -132,6 +133,7 @@ export async function processVideoCreatedEvent({ channelId: channel.id, }) await notifyChannelFollowers(overlay, channel.id, notificationData, eventEntity) + await recommendationServiceManager.scheduleVideoUpsert(video) if (autoIssueNft) { await processNft(overlay, block, indexInBlock, extrinsicHash, video, contentActor, autoIssueNft) @@ -179,6 +181,7 @@ export async function processVideoUpdatedEvent({ ) } + await recommendationServiceManager.scheduleVideoUpsert(video) if (autoIssueNft) { await processNft(overlay, block, indexInBlock, extrinsicHash, video, contentActor, autoIssueNft) } diff --git a/src/processor.ts b/src/processor.ts index bcfe60ab8..8b8a89428 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -91,6 +91,7 @@ import { EventNames, EventHandler, eventConstructors, EventInstance } from './ut import { commentCountersManager, videoRelevanceManager } from './mappings/utils' import { EntityManager } from 'typeorm' import { OffchainState } from './utils/offchainState' +import { recommendationServiceManager } from './utils/RecommendationServiceManager' const defaultEventOptions = { data: { @@ -321,6 +322,10 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( videoRelevanceManager.turnOnVideoRelevanceManager() } + if (!recommendationServiceManager.isEnabled && block.header.height >= exportBlockNumber) { + recommendationServiceManager.enableSync() + } + // Importing exported offchain state if (block.header.height >= exportBlockNumber && !offchainState.isImported) { ctx.log.info(`Export block ${exportBlockNumber} reached, importing offchain state...`) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 5035c5534..2df6b5f95 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -161,7 +161,7 @@ export class RecommendationServiceManager { } } - async enableSync() { + enableSync() { this._ratingInteracionQueue.length = 0 this._consumeInteracionQueue.length = 0 this._clickInteracionQueue.length = 0 @@ -178,6 +178,10 @@ export class RecommendationServiceManager { } return this.client?.send(new ClientRequests.Batch(requests)) } + + get isEnabled() { + return this._enabled + } } export const recommendationServiceManager = new RecommendationServiceManager( From 91384ef90b49b2d0f699ab4cca45c63129090551 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 16 Jan 2024 15:02:33 +0100 Subject: [PATCH 10/49] Add resolvers for videos scenarios --- src/interactions-server/index.ts | 2 + .../resolvers/VideosResolver/index.ts | 166 +++++++++++------- .../resolvers/VideosResolver/types.ts | 21 +++ .../resolvers/VideosResolver/utils.ts | 23 +++ src/server-extension/resolvers/baseTypes.ts | 7 + src/utils/RecommendationServiceManager.ts | 32 ++++ src/utils/subsquid.ts | 100 +++++++++++ 7 files changed, 289 insertions(+), 62 deletions(-) create mode 100644 src/server-extension/resolvers/VideosResolver/utils.ts create mode 100644 src/utils/subsquid.ts diff --git a/src/interactions-server/index.ts b/src/interactions-server/index.ts index b1898f3c8..fc44ae7f4 100644 --- a/src/interactions-server/index.ts +++ b/src/interactions-server/index.ts @@ -11,7 +11,9 @@ import { applyRateLimits, globalRateLimit, rateLimitsPerRoute } from './rateLimi import swaggerUi, { JsonObject } from 'swagger-ui-express' import YAML from 'js-yaml' import fs from 'fs' +import { recommendationServiceManager } from '../utils/RecommendationServiceManager' +recommendationServiceManager.enableSync() export const logger = createLogger('auth-api') export const app = express() diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index 04550ba51..6c782e1ec 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -4,13 +4,15 @@ import { EntityManager, MoreThan } from 'typeorm' import { AddVideoViewResult, ExcludeVideoInfo, + HomepageVideoQueryArgs, MostViewedVideosConnectionArgs, ReportVideoArgs, + SimiliarVideosQueryArgs, UpdateVideoViewArgs, UpdateVideoViewResult, VideoReportInfo, } from './types' -import { VideosConnection } from '../baseTypes' +import { RecommendedVideosQuery, VideosConnection } from '../baseTypes' import { VideoViewEvent, Video, @@ -20,26 +22,9 @@ import { VideoExcluded, ChannelRecipient, } from '../../../model' -import { ensureArray } from '@subsquid/openreader/lib/util/util' -import { UserInputError } from 'apollo-server-core' -import { parseOrderBy } from '@subsquid/openreader/lib/opencrud/orderBy' -import { parseWhere } from '@subsquid/openreader/lib/opencrud/where' -import { - decodeRelayConnectionCursor, - RelayConnectionRequest, -} from '@subsquid/openreader/lib/ir/connection' -import { AnyFields } from '@subsquid/openreader/lib/ir/fields' -import { - getResolveTree, - getTreeRequest, - hasTreeRequest, - simplifyResolveTree, -} from '@subsquid/openreader/lib/util/resolve-tree' import { model } from '../model' import { GraphQLResolveInfo } from 'graphql' -import { parseAnyTree } from '@subsquid/openreader/lib/opencrud/tree' -import { getConnectionSize } from '@subsquid/openreader/lib/limit.size' -import { ConnectionQuery, CountQuery } from '@subsquid/openreader/lib//sql/query' +import { CountQuery } from '@subsquid/openreader/lib//sql/query' import { extendClause, overrideClause, withHiddenEntities } from '../../../utils/sql' import { config, ConfigVariable } from '../../../utils/config' import { Context } from '../../check' @@ -50,70 +35,127 @@ import { uniqueId } from '../../../utils/crypto' import { addNotification } from '../../../utils/notification' import { parseVideoTitle } from '../../../mappings/content/utils' import { UserOnly, OperatorOnly } from '../middleware' +import { createConnectionQueryFromParams } from '../../../utils/subsquid' +import { recommendationServiceManager } from '../../../utils/RecommendationServiceManager' +import { buildRecommendationsVideoQuery } from './utils' @Resolver() export class VideosResolver { // Set by depenency injection constructor(private em: () => Promise) {} - @Query(() => VideosConnection) - async mostViewedVideosConnection( + @Query(() => RecommendedVideosQuery) + async homepageVideos( @Args() - args: MostViewedVideosConnectionArgs, + args: HomepageVideoQueryArgs, @Info() info: GraphQLResolveInfo, @Ctx() ctx: Context - ): Promise { - const typeName = 'Video' - const outputType = 'VideosConnection' - const edgeType = 'VideoEdge' - - if (args.limit > 1000) { - throw new Error('The limit cannot exceed 1000') + ): Promise { + const { listQuery } = buildRecommendationsVideoQuery(info, ctx) + // get videosIds from recombee + let res + + if (args.recommId) { + // get next recommendations based on prev recommId + res = await recommendationServiceManager.recommendNextItems(args.recommId, args.limit) + } else { + // get initial recommendation ids + res = await recommendationServiceManager.recommendItemsToUser( + ctx.userId ?? undefined, + args.limit + ) } - // Validation based on '@subsquid/openreader/src/opencrud/schema.ts' - const orderByArg = ensureArray(args.orderBy) - if (orderByArg.length === 0) { - throw new UserInputError('orderBy argument is required for connection') + if (!res) { + throw new Error("Couldn't find recommendations for user") } - const req: RelayConnectionRequest = { - orderBy: parseOrderBy(model, typeName, orderByArg as unknown[] as string[]), - where: parseWhere(args.where), + const { recommId, numberNextRecommsCalls, recomms } = res + const ids = recomms.map((recomm) => recomm.id) + + // Override the raw `sql` string in `connectionQuery` with the modified query + ;(listQuery as { sql: string }).sql = extendClause( + listQuery.sql, + 'WHERE', + `"video"."id" IN (${ids.map((id) => `'${id}'`).join(', ')})`, + 'AND' + ) + + const result = await ctx.openreader.executeQuery(listQuery) + + return { + video: result as Video[], + recommId, + numberNextRecommsCalls, } + } - if (args.first !== null && args.first !== undefined) { - if (args.first < 0) { - throw new UserInputError("'first' argument of connection can't be less than 0") - } else { - req.first = args.first - } + @Query(() => RecommendedVideosQuery) + async similiarVideos( + @Args() + args: SimiliarVideosQueryArgs, + @Info() info: GraphQLResolveInfo, + @Ctx() ctx: Context + ): Promise { + const { listQuery } = buildRecommendationsVideoQuery(info, ctx) + // get videosIds from recombee + let res + + if (args.recommId) { + // get next recommendations based on prev recommId + res = await recommendationServiceManager.recommendNextItems(args.recommId, args.limit) + } else { + // get initial recommendation ids + res = await recommendationServiceManager.recommendItemsToItem( + args.videoId, + ctx.userId ?? undefined, + args.limit + ) } - if (args.after !== null && args.after !== undefined) { - if (decodeRelayConnectionCursor(args.after) == null) { - throw new UserInputError(`invalid cursor value: ${args.after}`) - } else { - req.after = args.after - } + if (!res) { + throw new Error("Couldn't find recommendations for user") } - const tree = getResolveTree(info, outputType) + const { recommId, numberNextRecommsCalls, recomms } = res + const ids = recomms.map((recomm) => recomm.id) - req.totalCount = hasTreeRequest(tree.fields, 'totalCount') - req.pageInfo = hasTreeRequest(tree.fields, 'pageInfo') + // Override the raw `sql` string in `connectionQuery` with the modified query + ;(listQuery as { sql: string }).sql = extendClause( + listQuery.sql, + 'WHERE', + `"video"."id" IN (${ids.map((id) => `'${id}'`).join(', ')})`, + 'AND' + ) - const edgesTree = getTreeRequest(tree.fields, 'edges') - if (edgesTree) { - const edgeFields = simplifyResolveTree(info.schema, edgesTree, edgeType).fields - req.edgeCursor = hasTreeRequest(edgeFields, 'cursor') - const nodeTree = getTreeRequest(edgeFields, 'node') - if (nodeTree) { - req.edgeNode = parseAnyTree(model, typeName, info.schema, nodeTree) - } + const result = await ctx.openreader.executeQuery(listQuery) + + return { + video: result as Video[], + recommId, + numberNextRecommsCalls, } + } - ctx.openreader.responseSizeLimit?.check(() => getConnectionSize(model, typeName, req) + 1) + @Query(() => VideosConnection) + async mostViewedVideosConnection( + @Args() + args: MostViewedVideosConnectionArgs, + @Info() info: GraphQLResolveInfo, + @Ctx() ctx: Context + ): Promise { + const typeName = 'Video' + const { connectionQuery, req } = createConnectionQueryFromParams({ + ctx, + info, + args: { + ...args, + first: args.limit, + }, + edgeType: 'VideoEdge', + outputType: 'VideosConnection', + typeName, + }) const idsQuery = new CountQuery(model, ctx.openreader.dialect, typeName, req.where) let idsQuerySql = idsQuery.sql @@ -144,8 +186,6 @@ export class VideosResolver { ids = ['-1'] } - const connectionQuery = new ConnectionQuery(model, ctx.openreader.dialect, typeName, req) - let connectionQuerySql: string connectionQuerySql = extendClause( @@ -174,6 +214,8 @@ export class VideosResolver { `${arrayPosition} DESC` ) } + console.log('wtf', connectionQuerySql) + console.log('wtf1', connectionQuery.sql) // Override the raw `sql` string in `connectionQuery` with the modified query ;(connectionQuery as { sql: string }).sql = connectionQuerySql diff --git a/src/server-extension/resolvers/VideosResolver/types.ts b/src/server-extension/resolvers/VideosResolver/types.ts index 3cc526428..0269bdb06 100644 --- a/src/server-extension/resolvers/VideosResolver/types.ts +++ b/src/server-extension/resolvers/VideosResolver/types.ts @@ -39,6 +39,27 @@ export class VideosConnectionArgs { where?: Record } +@ArgsType() +export class HomepageVideoQueryArgs { + @Field(() => String, { nullable: true }) + recommId?: string + + @Field(() => Int, { nullable: true }) + limit?: number +} + +@ArgsType() +export class SimiliarVideosQueryArgs { + @Field(() => String, { nullable: true }) + videoId: string + + @Field(() => String, { nullable: true }) + recommId?: string + + @Field(() => Int, { nullable: true }) + limit?: number +} + @ArgsType() export class MostViewedVideosConnectionArgs extends VideosConnectionArgs { @Field(() => Int, { nullable: true }) diff --git a/src/server-extension/resolvers/VideosResolver/utils.ts b/src/server-extension/resolvers/VideosResolver/utils.ts new file mode 100644 index 000000000..1fcdf4eb4 --- /dev/null +++ b/src/server-extension/resolvers/VideosResolver/utils.ts @@ -0,0 +1,23 @@ +import { GraphQLResolveInfo } from 'graphql' +import { model } from '../model' +import { parseAnyTree } from '@subsquid/openreader/lib/opencrud/tree' +import { getResolveTree } from '@subsquid/openreader/lib/util/resolve-tree' +import { ListQuery } from '@subsquid/openreader/lib/sql/query' +import { Context } from '../../check' + +export function buildRecommendationsVideoQuery(info: GraphQLResolveInfo, ctx: Context) { + const tree = getResolveTree(info) + + // Extract subsquid-supported Channel fields + const videoSubTree = tree.fieldsByTypeName.HomepageVideosConnection.video + const videoFields = parseAnyTree(model, 'Video', info.schema, videoSubTree) + + // Generate query using subsquid's ListQuery + const listQuery = new ListQuery(model, ctx.openreader.dialect, 'Video', videoFields, {}) + + return { + listQuery, + recommId: tree.fieldsByTypeName.HomepageVideosConnection.recommId, + numberNextRecommsCalls: tree.fieldsByTypeName.HomepageVideosConnection.numberNextRecommsCalls, + } +} diff --git a/src/server-extension/resolvers/baseTypes.ts b/src/server-extension/resolvers/baseTypes.ts index c42145544..e246bc931 100644 --- a/src/server-extension/resolvers/baseTypes.ts +++ b/src/server-extension/resolvers/baseTypes.ts @@ -58,6 +58,13 @@ registerEnumType(VideoOrderByInput, { name: 'VideoOrderByInput' }) export class VideosConnection { @Field(() => Int, { nullable: false }) totalCount!: number } + +@ObjectType() +export class RecommendedVideosQuery { + @Field(() => Int, { nullable: true }) numberNextRecommsCalls?: number + @Field(() => String, { nullable: false }) recommId!: string + @Field(() => [Video]) video: Video[] +} export const OwnedNftWhereInput = new GraphQLScalarType({ name: 'OwnedNftWhereInput', }) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 2df6b5f95..af0cc8cf4 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -1,6 +1,7 @@ import { User, Video } from '../model' import { ApiClient, requests as ClientRequests } from 'recombee-api-client' import { createLogger } from '@subsquid/logger' +import { randomUUID } from 'crypto' type RSVideo = Pick< Video, @@ -182,6 +183,37 @@ export class RecommendationServiceManager { get isEnabled() { return this._enabled } + + async recommendItemsToUser(userId?: string, limit?: number) { + const request = new ClientRequests.RecommendItemsToUser(userId ?? randomUUID(), limit ?? 10, { + scenario: 'homepage', + minRelevance: userId ? 'medium' : 'low', + rotationRate: 0.2, + cascadeCreate: true, + }) + + return this.client?.send(request) + } + + async recommendNextItems(recommId: string, limit?: number) { + const request = new ClientRequests.RecommendNextItems(recommId, limit ?? 10) + return this.client?.send(request) + } + + async recommendItemsToItem(itemId: string, userId?: string, limit?: number) { + const request = new ClientRequests.RecommendItemsToItem( + itemId, + userId ?? randomUUID(), + limit ?? 10, + { + scenario: 'watch-next', + minRelevance: 'medium', + rotationRate: 0.2, + cascadeCreate: true, + } + ) + return this.client?.send(request) + } } export const recommendationServiceManager = new RecommendationServiceManager( diff --git a/src/utils/subsquid.ts b/src/utils/subsquid.ts new file mode 100644 index 000000000..89e62443f --- /dev/null +++ b/src/utils/subsquid.ts @@ -0,0 +1,100 @@ +import { UserInputError } from 'apollo-server-core' +import { model } from '../server-extension/resolvers/model' +import { Context } from '../server-extension/check' +import { ensureArray } from '@subsquid/openreader/lib/util/util' +import { parseOrderBy } from '@subsquid/openreader/lib/opencrud/orderBy' +import { parseWhere } from '@subsquid/openreader/lib/opencrud/where' +import { + getResolveTree, + getTreeRequest, + hasTreeRequest, + simplifyResolveTree, +} from '@subsquid/openreader/lib/util/resolve-tree' +import { + decodeRelayConnectionCursor, + RelayConnectionRequest, +} from '@subsquid/openreader/lib/ir/connection' +import { AnyFields } from '@subsquid/openreader/lib/ir/fields' +import { parseAnyTree } from '@subsquid/openreader/lib/opencrud/tree' +import { getConnectionSize } from '@subsquid/openreader/lib/limit.size' +import { GraphQLResolveInfo } from 'graphql' +import { ConnectionQuery } from '@subsquid/openreader/lib//sql/query' + +type CreateConnectionQueryFromParamsParams = { + typeName: string + outputType: string + edgeType: string + ctx: Context + info: GraphQLResolveInfo + args: T +} + +export const createConnectionQueryFromParams = < + T extends { + orderBy: unknown[] + first?: number + after?: string + where?: Record + } +>({ + ctx, + typeName, + outputType, + edgeType, + args, + info, +}: CreateConnectionQueryFromParamsParams) => { + args.first = args.first ?? 10 + if (args.first > 1000) { + throw new Error('The limit cannot exceed 1000') + } + + // Validation based on '@subsquid/openreader/src/opencrud/schema.ts' + const orderByArg = ensureArray(args.orderBy) + if (orderByArg.length === 0) { + throw new UserInputError('orderBy argument is required for connection') + } + + const req: RelayConnectionRequest = { + orderBy: parseOrderBy(model, typeName, orderByArg as unknown[] as string[]), + where: parseWhere(args.where), + } + + if (args.first !== null && args.first !== undefined) { + if (args.first < 0) { + throw new UserInputError("'first' argument of connection can't be less than 0") + } else { + req.first = args.first + } + } + + if (args.after !== null && args.after !== undefined) { + if (decodeRelayConnectionCursor(args.after) == null) { + throw new UserInputError(`invalid cursor value: ${args.after}`) + } else { + req.after = args.after + } + } + + const tree = getResolveTree(info, outputType) + + req.totalCount = hasTreeRequest(tree.fields, 'totalCount') + req.pageInfo = hasTreeRequest(tree.fields, 'pageInfo') + + const edgesTree = getTreeRequest(tree.fields, 'edges') + if (edgesTree) { + const edgeFields = simplifyResolveTree(info.schema, edgesTree, edgeType).fields + req.edgeCursor = hasTreeRequest(edgeFields, 'cursor') + const nodeTree = getTreeRequest(edgeFields, 'node') + if (nodeTree) { + req.edgeNode = parseAnyTree(model, typeName, info.schema, nodeTree) + } + } + + ctx.openreader.responseSizeLimit?.check(() => getConnectionSize(model, typeName, req) + 1) + + return { + connectionQuery: new ConnectionQuery(model, ctx.openreader.dialect, typeName, req), + req, + } +} From 16268884c2ed5b8d676328c2975aff1a37ce3212 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 16 Jan 2024 17:02:30 +0100 Subject: [PATCH 11/49] Small fixes to resolver --- src/server-extension/resolvers/VideosResolver/index.ts | 4 ++-- src/server-extension/resolvers/VideosResolver/utils.ts | 10 ++-------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index 6c782e1ec..4692549b2 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -51,7 +51,7 @@ export class VideosResolver { @Info() info: GraphQLResolveInfo, @Ctx() ctx: Context ): Promise { - const { listQuery } = buildRecommendationsVideoQuery(info, ctx) + const listQuery = buildRecommendationsVideoQuery(info, ctx) // get videosIds from recombee let res @@ -97,7 +97,7 @@ export class VideosResolver { @Info() info: GraphQLResolveInfo, @Ctx() ctx: Context ): Promise { - const { listQuery } = buildRecommendationsVideoQuery(info, ctx) + const listQuery = buildRecommendationsVideoQuery(info, ctx) // get videosIds from recombee let res diff --git a/src/server-extension/resolvers/VideosResolver/utils.ts b/src/server-extension/resolvers/VideosResolver/utils.ts index 1fcdf4eb4..ab5796617 100644 --- a/src/server-extension/resolvers/VideosResolver/utils.ts +++ b/src/server-extension/resolvers/VideosResolver/utils.ts @@ -9,15 +9,9 @@ export function buildRecommendationsVideoQuery(info: GraphQLResolveInfo, ctx: Co const tree = getResolveTree(info) // Extract subsquid-supported Channel fields - const videoSubTree = tree.fieldsByTypeName.HomepageVideosConnection.video + const videoSubTree = tree.fieldsByTypeName.RecommendedVideosQuery.video const videoFields = parseAnyTree(model, 'Video', info.schema, videoSubTree) // Generate query using subsquid's ListQuery - const listQuery = new ListQuery(model, ctx.openreader.dialect, 'Video', videoFields, {}) - - return { - listQuery, - recommId: tree.fieldsByTypeName.HomepageVideosConnection.recommId, - numberNextRecommsCalls: tree.fieldsByTypeName.HomepageVideosConnection.numberNextRecommsCalls, - } + return new ListQuery(model, ctx.openreader.dialect, 'Video', videoFields, {}) } From cf7495ff874131988c2d2da2e87b89c76c9d9db4 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 17 Jan 2024 11:48:53 +0100 Subject: [PATCH 12/49] Handle next recommendation error --- .../resolvers/VideosResolver/index.ts | 57 +++++++++++-------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index 4692549b2..fc9ca9bd9 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -52,25 +52,31 @@ export class VideosResolver { @Ctx() ctx: Context ): Promise { const listQuery = buildRecommendationsVideoQuery(info, ctx) - // get videosIds from recombee - let res + let recommendationsResponse + const getUserRecommendationsPromise = recommendationServiceManager.recommendItemsToUser( + ctx.userId ?? undefined, + args.limit + ) if (args.recommId) { - // get next recommendations based on prev recommId - res = await recommendationServiceManager.recommendNextItems(args.recommId, args.limit) + try { + recommendationsResponse = await recommendationServiceManager.recommendNextItems( + args.recommId, + args.limit + ) + } catch (e) { + // if recommId have expired, req will throw an error + recommendationsResponse = await getUserRecommendationsPromise + } } else { - // get initial recommendation ids - res = await recommendationServiceManager.recommendItemsToUser( - ctx.userId ?? undefined, - args.limit - ) + recommendationsResponse = await getUserRecommendationsPromise } - if (!res) { + if (!recommendationsResponse) { throw new Error("Couldn't find recommendations for user") } - const { recommId, numberNextRecommsCalls, recomms } = res + const { recommId, numberNextRecommsCalls, recomms } = recommendationsResponse const ids = recomms.map((recomm) => recomm.id) // Override the raw `sql` string in `connectionQuery` with the modified query @@ -98,26 +104,31 @@ export class VideosResolver { @Ctx() ctx: Context ): Promise { const listQuery = buildRecommendationsVideoQuery(info, ctx) - // get videosIds from recombee - let res + let recommendationsResponse + const getItemRecommendationsPromise = recommendationServiceManager.recommendItemsToItem( + args.videoId, + ctx.userId ?? undefined, + args.limit + ) if (args.recommId) { - // get next recommendations based on prev recommId - res = await recommendationServiceManager.recommendNextItems(args.recommId, args.limit) + try { + recommendationsResponse = await recommendationServiceManager.recommendNextItems( + args.recommId, + args.limit + ) + } catch (e) { + recommendationsResponse = await getItemRecommendationsPromise + } } else { - // get initial recommendation ids - res = await recommendationServiceManager.recommendItemsToItem( - args.videoId, - ctx.userId ?? undefined, - args.limit - ) + recommendationsResponse = await getItemRecommendationsPromise } - if (!res) { + if (!recommendationsResponse) { throw new Error("Couldn't find recommendations for user") } - const { recommId, numberNextRecommsCalls, recomms } = res + const { recommId, numberNextRecommsCalls, recomms } = recommendationsResponse const ids = recomms.map((recomm) => recomm.id) // Override the raw `sql` string in `connectionQuery` with the modified query From 59706d7e533ffaeb06a612749354117690c759db Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Thu, 18 Jan 2024 16:35:54 +0100 Subject: [PATCH 13/49] DEV: homepageVideos debugging --- src/processor.ts | 6 +- src/server-extension/check.ts | 5 ++ .../resolvers/VideosResolver/index.ts | 80 ++++++++++--------- .../resolvers/VideosResolver/types.ts | 20 +++-- .../resolvers/VideosResolver/utils.ts | 14 +++- 5 files changed, 74 insertions(+), 51 deletions(-) diff --git a/src/processor.ts b/src/processor.ts index 8b8a89428..92ff1a966 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -322,9 +322,9 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( videoRelevanceManager.turnOnVideoRelevanceManager() } - if (!recommendationServiceManager.isEnabled && block.header.height >= exportBlockNumber) { - recommendationServiceManager.enableSync() - } + // if (!recommendationServiceManager.isEnabled && block.header.height >= exportBlockNumber) { + // recommendationServiceManager.enableSync() + // } // Importing exported offchain state if (block.header.height >= exportBlockNumber && !offchainState.isImported) { diff --git a/src/server-extension/check.ts b/src/server-extension/check.ts index 3c16c11dd..3f6af8445 100644 --- a/src/server-extension/check.ts +++ b/src/server-extension/check.ts @@ -3,6 +3,7 @@ import { TypeormOpenreaderContext } from '@subsquid/graphql-server/lib/typeorm' import { Context as OpenreaderContext } from '@subsquid/openreader/lib/context' import { UnauthorizedError } from 'type-graphql' import { AuthContext, authenticate } from '../utils/auth' +import { createLogger } from '@subsquid/logger' export type Context = OpenreaderContext & AuthContext @@ -24,6 +25,8 @@ const autogeneratedOperatorQueries = [ 'nftFeaturingRequestsConnection', ] +const tttt = createLogger('reqCehck') + export const requestCheck: RequestCheckFunction = async (ctx) => { const context = ctx.context as Context @@ -31,6 +34,8 @@ export const requestCheck: RequestCheckFunction = async (ctx) => { Object.assign(context, authContext) + tttt.info(`Assigning: ${JSON.stringify(authContext)}`) + if ( (!authContext || !authContext.user.isRoot) && ctx.operation.selectionSet.selections.some( diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index fc9ca9bd9..8d9b96e01 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -38,6 +38,8 @@ import { UserOnly, OperatorOnly } from '../middleware' import { createConnectionQueryFromParams } from '../../../utils/subsquid' import { recommendationServiceManager } from '../../../utils/RecommendationServiceManager' import { buildRecommendationsVideoQuery } from './utils' +import { createLogger } from '@subsquid/logger' +const logger = createLogger('VideosResolver') @Resolver() export class VideosResolver { @@ -51,18 +53,21 @@ export class VideosResolver { @Info() info: GraphQLResolveInfo, @Ctx() ctx: Context ): Promise { - const listQuery = buildRecommendationsVideoQuery(info, ctx) + const { recommId: argsRecommId, ...queryArgs } = args + const listQuery = buildRecommendationsVideoQuery(queryArgs, info, ctx) + let recommendationsResponse const getUserRecommendationsPromise = recommendationServiceManager.recommendItemsToUser( ctx.userId ?? undefined, - args.limit + queryArgs.limit ) - - if (args.recommId) { + const { openreader, req, ...rest } = ctx + logger.info(`CONTEXT: ${JSON.stringify(rest)}`) + if (argsRecommId) { try { recommendationsResponse = await recommendationServiceManager.recommendNextItems( - args.recommId, - args.limit + argsRecommId, + queryArgs.limit ) } catch (e) { // if recommId have expired, req will throw an error @@ -72,27 +77,30 @@ export class VideosResolver { recommendationsResponse = await getUserRecommendationsPromise } - if (!recommendationsResponse) { - throw new Error("Couldn't find recommendations for user") + if (!recommendationsResponse || !recommendationsResponse.recomms.length) { + throw new Error('no reccoms') } - const { recommId, numberNextRecommsCalls, recomms } = recommendationsResponse - const ids = recomms.map((recomm) => recomm.id) + const { recomms, recommId } = recommendationsResponse + logger.info(`Received new recommendation with ID: ${recommId} and items: ${recomms.length}`) - // Override the raw `sql` string in `connectionQuery` with the modified query + const ids = recomms.map((recomm) => recomm.id) ;(listQuery as { sql: string }).sql = extendClause( listQuery.sql, 'WHERE', `"video"."id" IN (${ids.map((id) => `'${id}'`).join(', ')})`, 'AND' ) - - const result = await ctx.openreader.executeQuery(listQuery) + logger.info(`REsult ${JSON.stringify(listQuery)}`) + // const result = await ctx.openreader.executeQuery(listQuery) + const em = await this.em() + const result = await em.getRepository(Video).query(listQuery.sql) + logger.info(`XDDD ${JSON.stringify(result)}`) return { video: result as Video[], - recommId, - numberNextRecommsCalls, + recommId: recommendationsResponse?.recommId ?? '', + numberNextRecommsCalls: recommendationsResponse?.numberNextRecommsCalls ?? 0, } } @@ -103,19 +111,20 @@ export class VideosResolver { @Info() info: GraphQLResolveInfo, @Ctx() ctx: Context ): Promise { - const listQuery = buildRecommendationsVideoQuery(info, ctx) + const { videoId, recommId: argsRecommId, ...queryArgs } = args + const listQuery = buildRecommendationsVideoQuery(queryArgs, info, ctx) + let recommendationsResponse const getItemRecommendationsPromise = recommendationServiceManager.recommendItemsToItem( - args.videoId, + videoId, ctx.userId ?? undefined, - args.limit + queryArgs.limit ) - - if (args.recommId) { + if (argsRecommId) { try { recommendationsResponse = await recommendationServiceManager.recommendNextItems( - args.recommId, - args.limit + argsRecommId, + queryArgs.limit ) } catch (e) { recommendationsResponse = await getItemRecommendationsPromise @@ -124,27 +133,24 @@ export class VideosResolver { recommendationsResponse = await getItemRecommendationsPromise } - if (!recommendationsResponse) { - throw new Error("Couldn't find recommendations for user") + if (recommendationsResponse && recommendationsResponse.recomms.length) { + const { recomms, recommId } = recommendationsResponse + const ids = recomms.map((recomm) => recomm.id) + // Override the raw `sql` string in `connectionQuery` with the modified query + ;(listQuery as { sql: string }).sql = extendClause( + listQuery.sql, + 'WHERE', + `"video"."id" IN (${ids.map((id) => `'${id}'`).join(', ')})`, + 'AND' + ) } - const { recommId, numberNextRecommsCalls, recomms } = recommendationsResponse - const ids = recomms.map((recomm) => recomm.id) - - // Override the raw `sql` string in `connectionQuery` with the modified query - ;(listQuery as { sql: string }).sql = extendClause( - listQuery.sql, - 'WHERE', - `"video"."id" IN (${ids.map((id) => `'${id}'`).join(', ')})`, - 'AND' - ) - const result = await ctx.openreader.executeQuery(listQuery) return { video: result as Video[], - recommId, - numberNextRecommsCalls, + recommId: recommendationsResponse?.recommId ?? '', + numberNextRecommsCalls: recommendationsResponse?.numberNextRecommsCalls ?? 0, } } diff --git a/src/server-extension/resolvers/VideosResolver/types.ts b/src/server-extension/resolvers/VideosResolver/types.ts index 0269bdb06..aeac3bc8e 100644 --- a/src/server-extension/resolvers/VideosResolver/types.ts +++ b/src/server-extension/resolvers/VideosResolver/types.ts @@ -40,24 +40,30 @@ export class VideosConnectionArgs { } @ArgsType() -export class HomepageVideoQueryArgs { - @Field(() => String, { nullable: true }) - recommId?: string +export class CommonVideoQueryArgs { + @Field(() => VideoWhereInput, { nullable: true }) + where?: Record + + @Field(() => [VideoOrderByInput], { nullable: true }) + orderBy?: VideoOrderByInput[] @Field(() => Int, { nullable: true }) limit?: number } @ArgsType() -export class SimiliarVideosQueryArgs { +export class HomepageVideoQueryArgs extends CommonVideoQueryArgs { + @Field(() => String, { nullable: true }) + recommId?: string +} + +@ArgsType() +export class SimiliarVideosQueryArgs extends CommonVideoQueryArgs { @Field(() => String, { nullable: true }) videoId: string @Field(() => String, { nullable: true }) recommId?: string - - @Field(() => Int, { nullable: true }) - limit?: number } @ArgsType() diff --git a/src/server-extension/resolvers/VideosResolver/utils.ts b/src/server-extension/resolvers/VideosResolver/utils.ts index ab5796617..226cc743f 100644 --- a/src/server-extension/resolvers/VideosResolver/utils.ts +++ b/src/server-extension/resolvers/VideosResolver/utils.ts @@ -1,17 +1,23 @@ import { GraphQLResolveInfo } from 'graphql' import { model } from '../model' -import { parseAnyTree } from '@subsquid/openreader/lib/opencrud/tree' +import { parseAnyTree, parseSqlArguments } from '@subsquid/openreader/lib/opencrud/tree' import { getResolveTree } from '@subsquid/openreader/lib/util/resolve-tree' import { ListQuery } from '@subsquid/openreader/lib/sql/query' import { Context } from '../../check' +import { CommonVideoQueryArgs } from './types' -export function buildRecommendationsVideoQuery(info: GraphQLResolveInfo, ctx: Context) { +export function buildRecommendationsVideoQuery( + args: CommonVideoQueryArgs, + info: GraphQLResolveInfo, + ctx: Context +) { const tree = getResolveTree(info) - // Extract subsquid-supported Channel fields + const sqlArgs = parseSqlArguments(model, 'Video', { ...args }) + // Extract subsquid-supported Video fields const videoSubTree = tree.fieldsByTypeName.RecommendedVideosQuery.video const videoFields = parseAnyTree(model, 'Video', info.schema, videoSubTree) // Generate query using subsquid's ListQuery - return new ListQuery(model, ctx.openreader.dialect, 'Video', videoFields, {}) + return new ListQuery(model, ctx.openreader.dialect, 'Video', videoFields, sqlArgs) } From 5a7263d5f8116ad403761ad30d28b30e6e331021 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 23 Jan 2024 15:05:50 +0100 Subject: [PATCH 14/49] Small logic improvements --- .../interactionsLimiter.ts | 6 +- src/mappings/content/commentsAndReactions.ts | 28 +++ src/processor.ts | 12 +- src/server-extension/check.ts | 5 - .../resolvers/VideosResolver/index.ts | 60 ++--- .../resolvers/VideosResolver/utils.ts | 12 + src/utils/RecommendationServiceManager.ts | 208 ++++++++++++------ 7 files changed, 228 insertions(+), 103 deletions(-) diff --git a/src/interactions-server/interactionsLimiter.ts b/src/interactions-server/interactionsLimiter.ts index 2f3b87ebd..c16bba72e 100644 --- a/src/interactions-server/interactionsLimiter.ts +++ b/src/interactions-server/interactionsLimiter.ts @@ -1,11 +1,11 @@ import { InMemoryRateLimiter } from 'rolling-rate-limiter' export const singleClickLimiter = new InMemoryRateLimiter({ - interval: 1000 * 60 * 10, // 10 minutes - maxInInterval: 20, + interval: 1000 * 60 * 2, // 2 minutes + maxInInterval: 1, }) export const singlePurchaseLimiter = new InMemoryRateLimiter({ interval: 1000 * 60 * 10, // 10 minutes - maxInInterval: 5, + maxInInterval: 1, }) diff --git a/src/mappings/content/commentsAndReactions.ts b/src/mappings/content/commentsAndReactions.ts index 12fbe909a..942bff969 100644 --- a/src/mappings/content/commentsAndReactions.ts +++ b/src/mappings/content/commentsAndReactions.ts @@ -16,6 +16,7 @@ import { AnyMetadataClass, DecodedMetadataObject } from '@joystream/metadata-pro import { isSet } from '@joystream/metadata-protobuf/utils' import { assertNotNull, SubstrateBlock } from '@subsquid/substrate-processor' import { + Account, BannedMember, ChannelRecipient, Comment, @@ -29,6 +30,7 @@ import { CommentTextUpdatedEventData, Event, MemberRecipient, + Membership, MetaprotocolTransactionResult, MetaprotocolTransactionResultCommentCreated, MetaprotocolTransactionResultCommentDeleted, @@ -60,6 +62,7 @@ import { parseVideoTitle, } from './utils' import { addNotification } from '../../utils/notification' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' function parseVideoReaction(reaction: ReactVideo.Reaction): VideoReactionOptions { const protobufReactionToGraphqlReaction = { @@ -207,6 +210,11 @@ async function processVideoReaction( createdAt: new Date(block.timestamp), }) + const userMembership = await overlay.getRepository(Membership).getById(memberId) + const account = await overlay + .getRepository(Account) + .getOneBy({ joystreamAccount: userMembership?.controllerAccount }) + if (existingReaction) { const previousReactionTypeCounter = getOrCreateVideoReactionsCountByType( video, @@ -219,6 +227,11 @@ async function processVideoReaction( --previousReactionTypeCounter.count // remove reaction videoReactionRepository.remove(existingReaction) + + if (account) { + await recommendationServiceManager.deleteItemRating(video.id, account.userId) + } + return } // otherwise... @@ -228,6 +241,14 @@ async function processVideoReaction( --previousReactionTypeCounter.count // update the existing reaction's type videoReaction.reaction = reactionType + + if (account) { + await recommendationServiceManager.scheduleItemRating( + video.id, + account.userId, + reactionType === 'LIKE' ? 1 : -1 + ) + } } else { ++video.reactionsCount ++newReactionTypeCounter.count @@ -238,6 +259,13 @@ async function processVideoReaction( videoReaction: videoReaction.id, }), }) + if (account) { + await recommendationServiceManager.scheduleItemRating( + video.id, + account.userId, + reactionType === 'LIKE' ? 1 : -1 + ) + } if (video.channelId) { const channelOwnerMemberId = await getChannelOwnerMemberByChannelId(overlay, video.channelId) if (channelOwnerMemberId) { diff --git a/src/processor.ts b/src/processor.ts index 92ff1a966..2cbaed5fd 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -320,11 +320,17 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( block.header.height >= exportBlockNumber ) { videoRelevanceManager.turnOnVideoRelevanceManager() + ctx.log.info(`Video relevance service enabled!`) } - // if (!recommendationServiceManager.isEnabled && block.header.height >= exportBlockNumber) { - // recommendationServiceManager.enableSync() - // } + if ( + !recommendationServiceManager.isEnabled && + (process.env.FORCE_RECOMMENDATION_DATA_SYNC || block.header.height >= exportBlockNumber) + ) { + recommendationServiceManager.enableSync() + recommendationServiceManager.setMaxVideoQueueSize(100) + ctx.log.info(`Recommendations service enabled!`) + } // Importing exported offchain state if (block.header.height >= exportBlockNumber && !offchainState.isImported) { diff --git a/src/server-extension/check.ts b/src/server-extension/check.ts index 3f6af8445..3c16c11dd 100644 --- a/src/server-extension/check.ts +++ b/src/server-extension/check.ts @@ -3,7 +3,6 @@ import { TypeormOpenreaderContext } from '@subsquid/graphql-server/lib/typeorm' import { Context as OpenreaderContext } from '@subsquid/openreader/lib/context' import { UnauthorizedError } from 'type-graphql' import { AuthContext, authenticate } from '../utils/auth' -import { createLogger } from '@subsquid/logger' export type Context = OpenreaderContext & AuthContext @@ -25,8 +24,6 @@ const autogeneratedOperatorQueries = [ 'nftFeaturingRequestsConnection', ] -const tttt = createLogger('reqCehck') - export const requestCheck: RequestCheckFunction = async (ctx) => { const context = ctx.context as Context @@ -34,8 +31,6 @@ export const requestCheck: RequestCheckFunction = async (ctx) => { Object.assign(context, authContext) - tttt.info(`Assigning: ${JSON.stringify(authContext)}`) - if ( (!authContext || !authContext.user.isRoot) && ctx.operation.selectionSet.selections.some( diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index 8d9b96e01..749fa71cc 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -37,9 +37,7 @@ import { parseVideoTitle } from '../../../mappings/content/utils' import { UserOnly, OperatorOnly } from '../middleware' import { createConnectionQueryFromParams } from '../../../utils/subsquid' import { recommendationServiceManager } from '../../../utils/RecommendationServiceManager' -import { buildRecommendationsVideoQuery } from './utils' -import { createLogger } from '@subsquid/logger' -const logger = createLogger('VideosResolver') +import { buildRecommendationsVideoQuery, convertVideoWhereIntoReQlQuery } from './utils' @Resolver() export class VideosResolver { @@ -55,19 +53,24 @@ export class VideosResolver { ): Promise { const { recommId: argsRecommId, ...queryArgs } = args const listQuery = buildRecommendationsVideoQuery(queryArgs, info, ctx) + const reQLQuery = args.where ? convertVideoWhereIntoReQlQuery(args.where) : undefined let recommendationsResponse const getUserRecommendationsPromise = recommendationServiceManager.recommendItemsToUser( ctx.userId ?? undefined, - queryArgs.limit + { + limit: queryArgs.limit, + filterQuery: reQLQuery, + } ) - const { openreader, req, ...rest } = ctx - logger.info(`CONTEXT: ${JSON.stringify(rest)}`) if (argsRecommId) { try { recommendationsResponse = await recommendationServiceManager.recommendNextItems( argsRecommId, - queryArgs.limit + { + limit: queryArgs.limit, + filterQuery: reQLQuery, + } ) } catch (e) { // if recommId have expired, req will throw an error @@ -77,25 +80,18 @@ export class VideosResolver { recommendationsResponse = await getUserRecommendationsPromise } - if (!recommendationsResponse || !recommendationsResponse.recomms.length) { - throw new Error('no reccoms') + if (recommendationsResponse && recommendationsResponse.recomms.length) { + const { recomms } = recommendationsResponse + const ids = recomms.map((recomm) => recomm.id) + ;(listQuery as { sql: string }).sql = extendClause( + listQuery.sql, + 'WHERE', + `"video"."id" IN (${ids.map((id) => `'${id}'`).join(', ')})`, + 'AND' + ) } - const { recomms, recommId } = recommendationsResponse - logger.info(`Received new recommendation with ID: ${recommId} and items: ${recomms.length}`) - - const ids = recomms.map((recomm) => recomm.id) - ;(listQuery as { sql: string }).sql = extendClause( - listQuery.sql, - 'WHERE', - `"video"."id" IN (${ids.map((id) => `'${id}'`).join(', ')})`, - 'AND' - ) - logger.info(`REsult ${JSON.stringify(listQuery)}`) - // const result = await ctx.openreader.executeQuery(listQuery) - const em = await this.em() - const result = await em.getRepository(Video).query(listQuery.sql) - logger.info(`XDDD ${JSON.stringify(result)}`) + const result = await ctx.openreader.executeQuery(listQuery) return { video: result as Video[], @@ -113,18 +109,25 @@ export class VideosResolver { ): Promise { const { videoId, recommId: argsRecommId, ...queryArgs } = args const listQuery = buildRecommendationsVideoQuery(queryArgs, info, ctx) + const reQLQuery = args.where ? convertVideoWhereIntoReQlQuery(args.where) : undefined let recommendationsResponse const getItemRecommendationsPromise = recommendationServiceManager.recommendItemsToItem( videoId, ctx.userId ?? undefined, - queryArgs.limit + { + limit: queryArgs.limit, + filterQuery: reQLQuery, + } ) if (argsRecommId) { try { recommendationsResponse = await recommendationServiceManager.recommendNextItems( argsRecommId, - queryArgs.limit + { + limit: queryArgs.limit, + filterQuery: reQLQuery, + } ) } catch (e) { recommendationsResponse = await getItemRecommendationsPromise @@ -134,9 +137,8 @@ export class VideosResolver { } if (recommendationsResponse && recommendationsResponse.recomms.length) { - const { recomms, recommId } = recommendationsResponse + const { recomms } = recommendationsResponse const ids = recomms.map((recomm) => recomm.id) - // Override the raw `sql` string in `connectionQuery` with the modified query ;(listQuery as { sql: string }).sql = extendClause( listQuery.sql, 'WHERE', @@ -231,8 +233,6 @@ export class VideosResolver { `${arrayPosition} DESC` ) } - console.log('wtf', connectionQuerySql) - console.log('wtf1', connectionQuery.sql) // Override the raw `sql` string in `connectionQuery` with the modified query ;(connectionQuery as { sql: string }).sql = connectionQuerySql diff --git a/src/server-extension/resolvers/VideosResolver/utils.ts b/src/server-extension/resolvers/VideosResolver/utils.ts index 226cc743f..2238f8b02 100644 --- a/src/server-extension/resolvers/VideosResolver/utils.ts +++ b/src/server-extension/resolvers/VideosResolver/utils.ts @@ -21,3 +21,15 @@ export function buildRecommendationsVideoQuery( // Generate query using subsquid's ListQuery return new ListQuery(model, ctx.openreader.dialect, 'Video', videoFields, sqlArgs) } + +export function convertVideoWhereIntoReQlQuery(where: Record) { + let reQlString = '' + + if (where.category?.id_in) { + reQlString += `'category_id' in { ${where.category.id_in + .map((id: string) => `"${id}"`) + .join(', ')} }` + } + + return reQlString +} diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index af0cc8cf4..afdaa2c14 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -2,8 +2,9 @@ import { User, Video } from '../model' import { ApiClient, requests as ClientRequests } from 'recombee-api-client' import { createLogger } from '@subsquid/logger' import { randomUUID } from 'crypto' +import { stringToHex } from '@polkadot/util' -type RSVideo = Pick< +export type RSVideo = Pick< Video, | 'id' | 'duration' @@ -19,32 +20,59 @@ type RSVideo = Pick< type RSUser = Pick +type CommonOptions = { + limit?: number + filterQuery?: string +} + const recommendationServiceLogger = createLogger('recommendationsService') +const isDevEnv = process.env.ORION_ENV === 'development' + export class RecommendationServiceManager { private _videosQueue: ClientRequests.SetItemValues[] = [] + private _videosDeleteQueue: ClientRequests.DeleteItem[] = [] private _usersQueue: ClientRequests.SetUserValues[] = [] - private _clickInteracionQueue: ClientRequests.AddDetailView[] = [] - private _viewPortionInteracionQueue: ClientRequests.SetViewPortion[] = [] - private _consumeInteracionQueue: ClientRequests.AddPurchase[] = [] - private _ratingInteracionQueue: ClientRequests.AddRating[] = [] + private _interactionsQueue: ClientRequests.Request[] = [] + + // this value will be decreased after export block is reached + private _videoQueueMaxSize = 1_000 + private _usersQueueMaxSize = 100 + private _interactionsQueueMaxSize = 100 private client: ApiClient | null = null - private _enabled = true - constructor(databaseId?: string) { - if (!process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY || !databaseId) { + // if orion is launched in dev mode, always sync videos + private _enabled = isDevEnv + + constructor() { + if ( + !process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY || + !process.env.RECOMMENDATION_SERVICE_DATABASE + ) { recommendationServiceLogger.error( - 'RecommendationServiceManager initalized withour required variables' + 'RecommendationServiceManager initalized without required variables' ) return } - this.client = new ApiClient(databaseId, process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY, { - region: 'eu-west', - }) + this.client = new ApiClient( + process.env.RECOMMENDATION_SERVICE_DATABASE, + process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY, + { + region: 'eu-west', + } + ) + recommendationServiceLogger.info( + `RecommendationServiceManager initialized. Instance type: ${isDevEnv ? 'DEV' : 'PROD'}` + ) } async scheduleVideoUpsert(video: RSVideo) { + // for dev env sync only up to 20k videos + if (!this._enabled || (isDevEnv && Number(video.id) > 20_000)) { + return + } + const actionObject = new ClientRequests.SetItemValues( video.id, { @@ -53,8 +81,8 @@ export class RecommendationServiceManager { comments_count: video.commentsCount, duration: video.duration, language: video.language, - reaction_count: video.reactionsCount, - timestamp: video.createdAt.getTime(), + reactions_count: video.reactionsCount, + timestamp: new Date(video.createdAt), title: video.title, views_num: video.viewsNum, // recombee only offers single items table, so it would be good to have type @@ -68,18 +96,20 @@ export class RecommendationServiceManager { this._videosQueue.push(actionObject) - if (this._videosQueue.length >= 100) { + if (this._videosQueue.length >= this._videoQueueMaxSize) { await this.sendBatchRequest(this._videosQueue) this._videosQueue.length = 0 } } async scheduleUserUpsert(user: RSUser) { + if (!this._enabled) { + return + } + const actionObject = new ClientRequests.SetUserValues( - user.id, - { - userId: user.id, - }, + this.mapUserId(user.id), + {}, { cascadeCreate: true, } @@ -87,7 +117,7 @@ export class RecommendationServiceManager { this._usersQueue.push(actionObject) - if (this._usersQueue.length >= 100) { + if (this._usersQueue.length >= this._usersQueueMaxSize) { await this.sendBatchRequest(this._usersQueue) this._usersQueue.length = 0 } @@ -96,126 +126,180 @@ export class RecommendationServiceManager { // this interaction has big model value and should we used for // reliable interactions like video viewed in 90% or nft of given video bought async scheduleItemConsumed(itemId: string, userId: string, recommId?: string) { - const actionObject = new ClientRequests.AddPurchase(userId, itemId, { + if (!this._enabled) { + return + } + + const actionObject = new ClientRequests.AddPurchase(this.mapUserId(userId), itemId, { timestamp: Date.now(), cascadeCreate: true, recommId, }) - this._consumeInteracionQueue.push(actionObject) + this._interactionsQueue.push(actionObject) - if (this._consumeInteracionQueue.length >= 50) { - await this.sendBatchRequest(this._consumeInteracionQueue) - this._consumeInteracionQueue.length = 0 + if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { + await this.sendBatchRequest(this._interactionsQueue) + this._interactionsQueue.length = 0 } } // this interaction should be dispatched when user clicks a video to see it async scheduleClickEvent(itemId: string, userId: string, duration?: number, recommId?: string) { - const actionObject = new ClientRequests.AddDetailView(userId, itemId, { + if (!this._enabled) { + return + } + + const actionObject = new ClientRequests.AddDetailView(this.mapUserId(userId), itemId, { timestamp: Date.now(), cascadeCreate: true, recommId, duration, }) - this._clickInteracionQueue.push(actionObject) + this._interactionsQueue.push(actionObject) - if (this._clickInteracionQueue.length >= 50) { - await this.sendBatchRequest(this._clickInteracionQueue) - this._clickInteracionQueue.length = 0 + if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { + await this.sendBatchRequest(this._interactionsQueue) + this._interactionsQueue.length = 0 } } // this interaction is for user engagement level // in Orion it would state how long user has watched the video async scheduleViewPortion(itemId: string, userId: string, portion: number, recommId?: string) { + if (!this._enabled) { + return + } + const actionObject = new ClientRequests.SetViewPortion(userId, itemId, portion, { timestamp: Date.now(), cascadeCreate: true, recommId, }) - this._viewPortionInteracionQueue.push(actionObject) + this._interactionsQueue.push(actionObject) - if (this._viewPortionInteracionQueue.length >= 50) { - await this.sendBatchRequest(this._viewPortionInteracionQueue) - this._viewPortionInteracionQueue.length = 0 + if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { + await this.sendBatchRequest(this._interactionsQueue) + this._interactionsQueue.length = 0 } } async scheduleItemRating(itemId: string, userId: string, rating: number, recommId?: string) { + if (!this._enabled) { + return + } + if (rating < -1 || rating > 1) { throw new Error('Rating out of bounds') } const actionObject = new ClientRequests.AddRating(userId, itemId, rating, { timestamp: Date.now(), - cascadeCreate: true, + // this event is synced through processor - false will make sure to avoid creating unsynced videos + // in recommendation system for dev instance which only sync 20k videos + cascadeCreate: false, recommId, }) - this._ratingInteracionQueue.push(actionObject) + this._interactionsQueue.push(actionObject) - if (this._ratingInteracionQueue.length >= 50) { - await this.sendBatchRequest(this._ratingInteracionQueue) - this._ratingInteracionQueue.length = 0 + if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { + await this.sendBatchRequest(this._interactionsQueue) + this._interactionsQueue.length = 0 } } - enableSync() { - this._ratingInteracionQueue.length = 0 - this._consumeInteracionQueue.length = 0 - this._clickInteracionQueue.length = 0 - this._viewPortionInteracionQueue.length = 0 - this._videosQueue.length = 0 - this._usersQueue.length = 0 + async deleteItemRating(itemId: string, userId: string) { + if (!this._enabled) { + return + } + + const actionObject = new ClientRequests.DeleteRating(userId, itemId) + + this._interactionsQueue.push(actionObject) + + if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { + await this.sendBatchRequest(this._interactionsQueue) + this._interactionsQueue.length = 0 + } + } + enableSync() { this._enabled = true } + setMaxVideoQueueSize(size: number) { + this._videoQueueMaxSize = size + } + private async sendBatchRequest(requests: ClientRequests.Request[]) { if (!this._enabled) { return } - return this.client?.send(new ClientRequests.Batch(requests)) + const res = await this.client?.send(new ClientRequests.Batch(requests)) + recommendationServiceLogger.info(`Batch request sent, response: ${JSON.stringify(res)}`) + return res + } + + mapUserId(orionUserId: string) { + return stringToHex(orionUserId) } get isEnabled() { return this._enabled } - async recommendItemsToUser(userId?: string, limit?: number) { - const request = new ClientRequests.RecommendItemsToUser(userId ?? randomUUID(), limit ?? 10, { - scenario: 'homepage', - minRelevance: userId ? 'medium' : 'low', - rotationRate: 0.2, - cascadeCreate: true, - }) + async recommendItemsToUser(userId?: string, opts?: CommonOptions) { + recommendationServiceLogger.info( + `Getting items recommendations to ${userId || 'empty user'}(${this.mapUserId(userId ?? '')})` + ) + const request = new ClientRequests.RecommendItemsToUser( + userId ? this.mapUserId(userId) : randomUUID(), + opts?.limit ?? 10, + { + scenario: 'homepage', + minRelevance: 'low', + rotationRate: 0.1, + cascadeCreate: true, + filter: opts?.filterQuery, + } + ) return this.client?.send(request) } - async recommendNextItems(recommId: string, limit?: number) { - const request = new ClientRequests.RecommendNextItems(recommId, limit ?? 10) + async recommendNextItems(recommId: string, opts?: CommonOptions) { + const request = new ClientRequests.RecommendNextItems(recommId, opts?.limit ?? 10) return this.client?.send(request) } - async recommendItemsToItem(itemId: string, userId?: string, limit?: number) { + async recommendItemsToItem(itemId: string, userId?: string, opts?: CommonOptions) { const request = new ClientRequests.RecommendItemsToItem( itemId, - userId ?? randomUUID(), - limit ?? 10, + userId ? this.mapUserId(userId) : randomUUID(), + opts?.limit ?? 10, { scenario: 'watch-next', minRelevance: 'medium', rotationRate: 0.2, cascadeCreate: true, + filter: opts?.filterQuery, } ) return this.client?.send(request) } + + async scheduleVideoDeletion(videoId: string) { + const actionObject = new ClientRequests.DeleteItem(videoId) + + this._videosDeleteQueue.push(actionObject) + + if (this._videosDeleteQueue.length >= 1000) { + await this.sendBatchRequest(this._videosDeleteQueue) + this._videosDeleteQueue.length = 0 + } + } } -export const recommendationServiceManager = new RecommendationServiceManager( - process.env.VIDEO_ITEM_DATABASE_ID -) +export const recommendationServiceManager = new RecommendationServiceManager() From 340b31409a75d54d714fa4413e1c5cf1cdc103e6 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 23 Jan 2024 15:44:22 +0100 Subject: [PATCH 15/49] Initial docs work --- docs/developer-guide/architecture-overview.md | 1 + docs/operator-guide/index.md | 3 ++- .../tutorials/recommendations.md | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 docs/operator-guide/tutorials/recommendations.md diff --git a/docs/developer-guide/architecture-overview.md b/docs/developer-guide/architecture-overview.md index 60d334978..e194a17c5 100644 --- a/docs/developer-guide/architecture-overview.md +++ b/docs/developer-guide/architecture-overview.md @@ -32,6 +32,7 @@ The services can be divided into 2 main categories: - [Squid processor](https://docs.subsquid.io/basics/squid-processor/): It's responsible for processing Joystream blockchain events and creating, updating or deleting the database entities (such as `Channel` or `Video`) accordingly, so that they remain in-sync with the current Joystream chain state. - [GraphQL server](https://docs.subsquid.io/graphql-api/overview/): Orion's main GraphQL server which handles all the queries and mutations. - [Auth server](../../src/auth-server/docs/README.md): Orion's authentication server (REST API) responsible for handling user authentication. + - [Interactions server](../../src/interactions-server/docs/README.md): Orion's interactions proxy server (REST API) responsible for limiting the amount of interactions sent to the recommendations' system. ## Directory structure and important files diff --git a/docs/operator-guide/index.md b/docs/operator-guide/index.md index 08b7795d7..eedb74806 100644 --- a/docs/operator-guide/index.md +++ b/docs/operator-guide/index.md @@ -22,6 +22,7 @@ To learn how to run your own instance of Atlas, please refer to the [Atlas opera - Production deployment: - [Deploying Orion to production](./tutorials/deploying-orion.md) - [Upgrading Orion](./tutorials/upgrading-orion.md) +- [Recommendations in Orion](./tutorials/recommendations.md) ## Orion architecture @@ -46,4 +47,4 @@ To learn how to deploy Orion to production, please read the _[Deployment](./tuto ### Upgrading a production instance -The process of upgrading a production instance of Orion in the event of a new release is described in the _[Upgrading](./tutorials/upgrading-orion.md)_ tutorial. \ No newline at end of file +The process of upgrading a production instance of Orion in the event of a new release is described in the _[Upgrading](./tutorials/upgrading-orion.md)_ tutorial. diff --git a/docs/operator-guide/tutorials/recommendations.md b/docs/operator-guide/tutorials/recommendations.md new file mode 100644 index 000000000..424534b6d --- /dev/null +++ b/docs/operator-guide/tutorials/recommendations.md @@ -0,0 +1,19 @@ +# User recommendations in Orion +User recommendations are outsourced to the external provider. +Initial implementation was done with the Recombee API, and it is out of the box solution offered. + +### Abstraction +All the logic for the provider was abstracted and ecapsulated in [`RecommendationServiceManager`](../../../src/utils/RecommendationServiceManager.ts) this means, that if you want to change +the provider you just have to adjust the logic inside it and Orion will use the service to send data and get recommendations. + +### Syncing data +- Video data gets upserted only through processor +- User data get upserted through `auth-server` +- Interactions data is proxied thorugh `interactions-server` where the request are limited both by IP and interactions. +Only iteraction that is not coming thorugh the server is rating interaction (like, dislike), which will be synced through processor on MemberRemark event. + +### Env variables +Recombee client is constructed with 2 variables `RECOMMENDATION_SERVICE_PRIVATE_KEY` and `RECOMMENDATION_SERVICE_DATABASE` both self-explanatory. +`FORCE_RECOMMENDATION_DATA_SYNC` variable is a boolean that indicate whether processor should consider export block height in terms of syncing videos and ratings with recommendations service. +If set to true - it will sync all the data for the first block even if last exported block is greater. + From 2fabee9ac7a77ce3cc0a59dfd313a6e06d90f017 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 24 Jan 2024 12:04:51 +0100 Subject: [PATCH 16/49] New env vars --- .env | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.env b/.env index 1153e3b62..56cb3f455 100644 --- a/.env +++ b/.env @@ -16,7 +16,12 @@ PROCESSOR_PROMETHEUS_PORT=3337 GQL_PORT=4350 # Auth api port AUTH_API_PORT=4074 +# Recommendation service config INTERACTIONS_API_PORT=4075 +RECOMMENDATION_SERVICE_PRIVATE_KEY= +# this will disable export block check for recommendation system - sync all data from the beginning +FORCE_RECOMMENDATION_DATA_SYNC=false +RECOMMENDATION_SERVICE_DATABASE=jsgenesis-dev # Archive gateway url ARCHIVE_GATEWAY_URL=${CUSTOM_ARCHIVE_GATEWAY_URL:-http://localhost:8888/graphql} From 32dddd8d70685ab4dfbecf11b1b51abb827478f7 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 24 Jan 2024 12:09:19 +0100 Subject: [PATCH 17/49] Prettier --- docker-compose.yml | 2 +- .../generated/api-types.ts | 222 +++++++++--------- 2 files changed, 111 insertions(+), 113 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ae7c536df..293b3c237 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -96,7 +96,7 @@ services: source: . target: /orion working_dir: /orion - command: [ 'make', 'serve-interactions-api' ] + command: ['make', 'serve-interactions-api'] ports: - '${INTERACTIONS_API_PORT}:${INTERACTIONS_API_PORT}' diff --git a/src/interactions-server/generated/api-types.ts b/src/interactions-server/generated/api-types.ts index ba89b0c39..99e4cd809 100644 --- a/src/interactions-server/generated/api-types.ts +++ b/src/interactions-server/generated/api-types.ts @@ -3,177 +3,175 @@ * Do not make direct changes to the file. */ - export interface paths { - "/video-consumed": { + '/video-consumed': { /** @description Dispatches video consumed event to the recommendation service. */ - post: operations["videoConsumed"]; - }; - "/video-portion": { + post: operations['videoConsumed'] + } + '/video-portion': { /** @description Dispatches video portion event to the recommendation service. */ - post: operations["videoPortion"]; - }; - "/video-clicked": { + post: operations['videoPortion'] + } + '/video-clicked': { /** @description Dispatches video click event to the recommendation service. */ - post: operations["videoClicked"]; - }; - "/channel-clicked": { + post: operations['videoClicked'] + } + '/channel-clicked': { /** @description Dispatches channel click event to the recommendation service. */ - post: operations["channelClicked"]; - }; - "/rate-video": { + post: operations['channelClicked'] + } + '/rate-video': { /** @description Dispatches video rate event to the recommendation service. */ - post: operations["rateVideo"]; - }; + post: operations['rateVideo'] + } } -export type webhooks = Record; +export type webhooks = Record export interface components { schemas: { ItemRateInteractionRequestData: { - itemId?: string; - rating?: number; - recommId?: string; - }; + itemId?: string + rating?: number + recommId?: string + } ItemClickInteractionRequestData: { - itemId?: string; - duration?: number; - recommId?: string; - }; + itemId?: string + duration?: number + recommId?: string + } ItemConsumedInteractionRequestData: { - itemId?: string; - recommId?: string; - }; + itemId?: string + recommId?: string + } ItemPortionInteractionRequestData: { - itemId?: string; - portion?: number; - recommId?: string; - }; + itemId?: string + portion?: number + recommId?: string + } GenericErrorResponseData: { - message?: string; - errors?: (string)[]; - }; + message?: string + errors?: string[] + } GenericOkResponseData: { - success: boolean; - }; - }; + success: boolean + } + } responses: { /** @description Invalid request data */ GenericBadRequestResponse: { content: { - "application/json": components["schemas"]["GenericErrorResponseData"]; - }; - }; + 'application/json': components['schemas']['GenericErrorResponseData'] + } + } /** @description Internal server error */ GenericInternalServerErrorResponse: { content: { - "application/json": components["schemas"]["GenericErrorResponseData"]; - }; - }; + 'application/json': components['schemas']['GenericErrorResponseData'] + } + } /** @description Ok */ GenericOkResponse: { content: { - "application/json": components["schemas"]["GenericOkResponseData"]; - }; - }; + 'application/json': components['schemas']['GenericOkResponseData'] + } + } /** @description Access token (session id) is missing or invalid. */ GenericUnauthorizedResponse: { content: { - "application/json": components["schemas"]["GenericErrorResponseData"]; - }; - }; + 'application/json': components['schemas']['GenericErrorResponseData'] + } + } /** @description Too many requests sent within a given timeframe. */ GenericTooManyRequestsResponse: { content: { - "application/json": components["schemas"]["GenericErrorResponseData"]; - }; - }; - }; - parameters: never; + 'application/json': components['schemas']['GenericErrorResponseData'] + } + } + } + parameters: never requestBodies: { ItemRateInteractionBody?: { content: { - "application/json": components["schemas"]["ItemRateInteractionRequestData"]; - }; - }; + 'application/json': components['schemas']['ItemRateInteractionRequestData'] + } + } ItemClickInteractionBody?: { content: { - "application/json": components["schemas"]["ItemClickInteractionRequestData"]; - }; - }; + 'application/json': components['schemas']['ItemClickInteractionRequestData'] + } + } ItemConsumedInteractionBody?: { content: { - "application/json": components["schemas"]["ItemConsumedInteractionRequestData"]; - }; - }; + 'application/json': components['schemas']['ItemConsumedInteractionRequestData'] + } + } ItemPortionInteractionBody?: { content: { - "application/json": components["schemas"]["ItemPortionInteractionRequestData"]; - }; - }; - }; - headers: never; - pathItems: never; + 'application/json': components['schemas']['ItemPortionInteractionRequestData'] + } + } + } + headers: never + pathItems: never } -export type external = Record; +export type external = Record export interface operations { - /** @description Dispatches video consumed event to the recommendation service. */ videoConsumed: { - requestBody: components["requestBodies"]["ItemConsumedInteractionBody"]; + requestBody: components['requestBodies']['ItemConsumedInteractionBody'] responses: { - 200: components["responses"]["GenericOkResponse"]; - 400: components["responses"]["GenericBadRequestResponse"]; - 401: components["responses"]["GenericUnauthorizedResponse"]; - 429: components["responses"]["GenericTooManyRequestsResponse"]; - default: components["responses"]["GenericInternalServerErrorResponse"]; - }; - }; + 200: components['responses']['GenericOkResponse'] + 400: components['responses']['GenericBadRequestResponse'] + 401: components['responses']['GenericUnauthorizedResponse'] + 429: components['responses']['GenericTooManyRequestsResponse'] + default: components['responses']['GenericInternalServerErrorResponse'] + } + } /** @description Dispatches video portion event to the recommendation service. */ videoPortion: { - requestBody: components["requestBodies"]["ItemPortionInteractionBody"]; + requestBody: components['requestBodies']['ItemPortionInteractionBody'] responses: { - 200: components["responses"]["GenericOkResponse"]; - 400: components["responses"]["GenericBadRequestResponse"]; - 401: components["responses"]["GenericUnauthorizedResponse"]; - 429: components["responses"]["GenericTooManyRequestsResponse"]; - default: components["responses"]["GenericInternalServerErrorResponse"]; - }; - }; + 200: components['responses']['GenericOkResponse'] + 400: components['responses']['GenericBadRequestResponse'] + 401: components['responses']['GenericUnauthorizedResponse'] + 429: components['responses']['GenericTooManyRequestsResponse'] + default: components['responses']['GenericInternalServerErrorResponse'] + } + } /** @description Dispatches video click event to the recommendation service. */ videoClicked: { - requestBody: components["requestBodies"]["ItemClickInteractionBody"]; + requestBody: components['requestBodies']['ItemClickInteractionBody'] responses: { - 200: components["responses"]["GenericOkResponse"]; - 400: components["responses"]["GenericBadRequestResponse"]; - 401: components["responses"]["GenericUnauthorizedResponse"]; - 429: components["responses"]["GenericTooManyRequestsResponse"]; - default: components["responses"]["GenericInternalServerErrorResponse"]; - }; - }; + 200: components['responses']['GenericOkResponse'] + 400: components['responses']['GenericBadRequestResponse'] + 401: components['responses']['GenericUnauthorizedResponse'] + 429: components['responses']['GenericTooManyRequestsResponse'] + default: components['responses']['GenericInternalServerErrorResponse'] + } + } /** @description Dispatches channel click event to the recommendation service. */ channelClicked: { - requestBody: components["requestBodies"]["ItemClickInteractionBody"]; + requestBody: components['requestBodies']['ItemClickInteractionBody'] responses: { - 200: components["responses"]["GenericOkResponse"]; - 400: components["responses"]["GenericBadRequestResponse"]; - 401: components["responses"]["GenericUnauthorizedResponse"]; - 429: components["responses"]["GenericTooManyRequestsResponse"]; - default: components["responses"]["GenericInternalServerErrorResponse"]; - }; - }; + 200: components['responses']['GenericOkResponse'] + 400: components['responses']['GenericBadRequestResponse'] + 401: components['responses']['GenericUnauthorizedResponse'] + 429: components['responses']['GenericTooManyRequestsResponse'] + default: components['responses']['GenericInternalServerErrorResponse'] + } + } /** @description Dispatches video rate event to the recommendation service. */ rateVideo: { - requestBody: components["requestBodies"]["ItemRateInteractionBody"]; + requestBody: components['requestBodies']['ItemRateInteractionBody'] responses: { - 200: components["responses"]["GenericOkResponse"]; - 400: components["responses"]["GenericBadRequestResponse"]; - 401: components["responses"]["GenericUnauthorizedResponse"]; - 429: components["responses"]["GenericTooManyRequestsResponse"]; - default: components["responses"]["GenericInternalServerErrorResponse"]; - }; - }; + 200: components['responses']['GenericOkResponse'] + 400: components['responses']['GenericBadRequestResponse'] + 401: components['responses']['GenericUnauthorizedResponse'] + 429: components['responses']['GenericTooManyRequestsResponse'] + default: components['responses']['GenericInternalServerErrorResponse'] + } + } } From bff051e99a4a6221dbfe19457c5ad8ab4b06cafd Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 24 Jan 2024 15:55:38 +0100 Subject: [PATCH 18/49] Interactions server docs --- .../docs/.openapi-generator-ignore | 23 +++ .../docs/.openapi-generator/FILES | 8 + .../docs/.openapi-generator/VERSION | 1 + .../docs/Apis/DefaultApi.md | 148 ++++++++++++++++++ .../docs/Models/GenericErrorResponseData.md | 10 ++ .../docs/Models/GenericOkResponseData.md | 9 ++ .../Models/ItemClickInteractionRequestData.md | 11 ++ .../ItemConsumedInteractionRequestData.md | 10 ++ .../ItemPortionInteractionRequestData.md | 11 ++ .../Models/ItemRateInteractionRequestData.md | 11 ++ src/interactions-server/docs/README.md | 42 +++++ 11 files changed, 284 insertions(+) create mode 100644 src/interactions-server/docs/.openapi-generator-ignore create mode 100644 src/interactions-server/docs/.openapi-generator/FILES create mode 100644 src/interactions-server/docs/.openapi-generator/VERSION create mode 100644 src/interactions-server/docs/Apis/DefaultApi.md create mode 100644 src/interactions-server/docs/Models/GenericErrorResponseData.md create mode 100644 src/interactions-server/docs/Models/GenericOkResponseData.md create mode 100644 src/interactions-server/docs/Models/ItemClickInteractionRequestData.md create mode 100644 src/interactions-server/docs/Models/ItemConsumedInteractionRequestData.md create mode 100644 src/interactions-server/docs/Models/ItemPortionInteractionRequestData.md create mode 100644 src/interactions-server/docs/Models/ItemRateInteractionRequestData.md create mode 100644 src/interactions-server/docs/README.md diff --git a/src/interactions-server/docs/.openapi-generator-ignore b/src/interactions-server/docs/.openapi-generator-ignore new file mode 100644 index 000000000..7484ee590 --- /dev/null +++ b/src/interactions-server/docs/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/src/interactions-server/docs/.openapi-generator/FILES b/src/interactions-server/docs/.openapi-generator/FILES new file mode 100644 index 000000000..d8bc916b9 --- /dev/null +++ b/src/interactions-server/docs/.openapi-generator/FILES @@ -0,0 +1,8 @@ +Apis/DefaultApi.md +Models/GenericErrorResponseData.md +Models/GenericOkResponseData.md +Models/ItemClickInteractionRequestData.md +Models/ItemConsumedInteractionRequestData.md +Models/ItemPortionInteractionRequestData.md +Models/ItemRateInteractionRequestData.md +README.md diff --git a/src/interactions-server/docs/.openapi-generator/VERSION b/src/interactions-server/docs/.openapi-generator/VERSION new file mode 100644 index 000000000..c0be8a799 --- /dev/null +++ b/src/interactions-server/docs/.openapi-generator/VERSION @@ -0,0 +1 @@ +6.4.0 \ No newline at end of file diff --git a/src/interactions-server/docs/Apis/DefaultApi.md b/src/interactions-server/docs/Apis/DefaultApi.md new file mode 100644 index 000000000..5e40f346e --- /dev/null +++ b/src/interactions-server/docs/Apis/DefaultApi.md @@ -0,0 +1,148 @@ +# DefaultApi + +All URIs are relative to *http://localhost/api/v1* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**channelClicked**](DefaultApi.md#channelClicked) | **POST** /channel-clicked | | +| [**rateVideo**](DefaultApi.md#rateVideo) | **POST** /rate-video | | +| [**videoClicked**](DefaultApi.md#videoClicked) | **POST** /video-clicked | | +| [**videoConsumed**](DefaultApi.md#videoConsumed) | **POST** /video-consumed | | +| [**videoPortion**](DefaultApi.md#videoPortion) | **POST** /video-portion | | + + + +# **channelClicked** +> GenericOkResponseData channelClicked(ItemClickInteractionRequestData) + + + + Dispatches channel click event to the recommendation service. + +### Parameters + +|Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ItemClickInteractionRequestData** | [**ItemClickInteractionRequestData**](../Models/ItemClickInteractionRequestData.md)| | [optional] | + +### Return type + +[**GenericOkResponseData**](../Models/GenericOkResponseData.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + + +# **rateVideo** +> GenericOkResponseData rateVideo(ItemRateInteractionRequestData) + + + + Dispatches video rate event to the recommendation service. + +### Parameters + +|Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ItemRateInteractionRequestData** | [**ItemRateInteractionRequestData**](../Models/ItemRateInteractionRequestData.md)| | [optional] | + +### Return type + +[**GenericOkResponseData**](../Models/GenericOkResponseData.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + + +# **videoClicked** +> GenericOkResponseData videoClicked(ItemClickInteractionRequestData) + + + + Dispatches video click event to the recommendation service. + +### Parameters + +|Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ItemClickInteractionRequestData** | [**ItemClickInteractionRequestData**](../Models/ItemClickInteractionRequestData.md)| | [optional] | + +### Return type + +[**GenericOkResponseData**](../Models/GenericOkResponseData.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + + +# **videoConsumed** +> GenericOkResponseData videoConsumed(ItemConsumedInteractionRequestData) + + + + Dispatches video consumed event to the recommendation service. + +### Parameters + +|Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ItemConsumedInteractionRequestData** | [**ItemConsumedInteractionRequestData**](../Models/ItemConsumedInteractionRequestData.md)| | [optional] | + +### Return type + +[**GenericOkResponseData**](../Models/GenericOkResponseData.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + + +# **videoPortion** +> GenericOkResponseData videoPortion(ItemPortionInteractionRequestData) + + + + Dispatches video portion event to the recommendation service. + +### Parameters + +|Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ItemPortionInteractionRequestData** | [**ItemPortionInteractionRequestData**](../Models/ItemPortionInteractionRequestData.md)| | [optional] | + +### Return type + +[**GenericOkResponseData**](../Models/GenericOkResponseData.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + diff --git a/src/interactions-server/docs/Models/GenericErrorResponseData.md b/src/interactions-server/docs/Models/GenericErrorResponseData.md new file mode 100644 index 000000000..a99f486bb --- /dev/null +++ b/src/interactions-server/docs/Models/GenericErrorResponseData.md @@ -0,0 +1,10 @@ +# GenericErrorResponseData +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +| **message** | **String** | | [optional] [default to null] | +| **errors** | **List** | | [optional] [default to null] | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/src/interactions-server/docs/Models/GenericOkResponseData.md b/src/interactions-server/docs/Models/GenericOkResponseData.md new file mode 100644 index 000000000..987849a0a --- /dev/null +++ b/src/interactions-server/docs/Models/GenericOkResponseData.md @@ -0,0 +1,9 @@ +# GenericOkResponseData +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +| **success** | **Boolean** | | [default to null] | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/src/interactions-server/docs/Models/ItemClickInteractionRequestData.md b/src/interactions-server/docs/Models/ItemClickInteractionRequestData.md new file mode 100644 index 000000000..ce3259b1b --- /dev/null +++ b/src/interactions-server/docs/Models/ItemClickInteractionRequestData.md @@ -0,0 +1,11 @@ +# ItemClickInteractionRequestData +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +| **itemId** | **String** | | [optional] [default to null] | +| **duration** | **BigDecimal** | | [optional] [default to null] | +| **recommId** | **String** | | [optional] [default to null] | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/src/interactions-server/docs/Models/ItemConsumedInteractionRequestData.md b/src/interactions-server/docs/Models/ItemConsumedInteractionRequestData.md new file mode 100644 index 000000000..a4608e755 --- /dev/null +++ b/src/interactions-server/docs/Models/ItemConsumedInteractionRequestData.md @@ -0,0 +1,10 @@ +# ItemConsumedInteractionRequestData +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +| **itemId** | **String** | | [optional] [default to null] | +| **recommId** | **String** | | [optional] [default to null] | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/src/interactions-server/docs/Models/ItemPortionInteractionRequestData.md b/src/interactions-server/docs/Models/ItemPortionInteractionRequestData.md new file mode 100644 index 000000000..4b7015219 --- /dev/null +++ b/src/interactions-server/docs/Models/ItemPortionInteractionRequestData.md @@ -0,0 +1,11 @@ +# ItemPortionInteractionRequestData +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +| **itemId** | **String** | | [optional] [default to null] | +| **portion** | **BigDecimal** | | [optional] [default to null] | +| **recommId** | **String** | | [optional] [default to null] | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/src/interactions-server/docs/Models/ItemRateInteractionRequestData.md b/src/interactions-server/docs/Models/ItemRateInteractionRequestData.md new file mode 100644 index 000000000..93f3661be --- /dev/null +++ b/src/interactions-server/docs/Models/ItemRateInteractionRequestData.md @@ -0,0 +1,11 @@ +# ItemRateInteractionRequestData +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +| **itemId** | **String** | | [optional] [default to null] | +| **rating** | **BigDecimal** | | [optional] [default to null] | +| **recommId** | **String** | | [optional] [default to null] | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/src/interactions-server/docs/README.md b/src/interactions-server/docs/README.md new file mode 100644 index 000000000..1197f5ed3 --- /dev/null +++ b/src/interactions-server/docs/README.md @@ -0,0 +1,42 @@ +# Documentation for Orion authentication API + + +## Documentation for API Endpoints + +All URIs are relative to *http://localhost/api/v1* + +| Class | Method | HTTP request | Description | +|------------ | ------------- | ------------- | -------------| +| *DefaultApi* | [**channelClicked**](Apis/DefaultApi.md#channelclicked) | **POST** /channel-clicked | Dispatches channel click event to the recommendation service. | +*DefaultApi* | [**rateVideo**](Apis/DefaultApi.md#ratevideo) | **POST** /rate-video | Dispatches video rate event to the recommendation service. | +*DefaultApi* | [**videoClicked**](Apis/DefaultApi.md#videoclicked) | **POST** /video-clicked | Dispatches video click event to the recommendation service. | +*DefaultApi* | [**videoConsumed**](Apis/DefaultApi.md#videoconsumed) | **POST** /video-consumed | Dispatches video consumed event to the recommendation service. | +*DefaultApi* | [**videoPortion**](Apis/DefaultApi.md#videoportion) | **POST** /video-portion | Dispatches video portion event to the recommendation service. | + + + +## Documentation for Models + + - [GenericErrorResponseData](./Models/GenericErrorResponseData.md) + - [GenericOkResponseData](./Models/GenericOkResponseData.md) + - [ItemClickInteractionRequestData](./Models/ItemClickInteractionRequestData.md) + - [ItemConsumedInteractionRequestData](./Models/ItemConsumedInteractionRequestData.md) + - [ItemPortionInteractionRequestData](./Models/ItemPortionInteractionRequestData.md) + - [ItemRateInteractionRequestData](./Models/ItemRateInteractionRequestData.md) + + + +## Documentation for Authorization + + +### bearerAuth + +- **Type**: HTTP basic authentication + + +### cookieAuth + +- **Type**: API key +- **API key parameter name**: session_id +- **Location**: + From 36c72c08876fda75d2a870989122af9534df40fc Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 24 Jan 2024 16:00:08 +0100 Subject: [PATCH 19/49] Decrease queue size after reaching export block --- src/processor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/processor.ts b/src/processor.ts index 2cbaed5fd..45c96a03e 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -328,7 +328,6 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( (process.env.FORCE_RECOMMENDATION_DATA_SYNC || block.header.height >= exportBlockNumber) ) { recommendationServiceManager.enableSync() - recommendationServiceManager.setMaxVideoQueueSize(100) ctx.log.info(`Recommendations service enabled!`) } @@ -342,6 +341,7 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( await commentCountersManager.updateVideoCommentsCounters(em, true) await commentCountersManager.updateParentRepliesCounters(em, true) await videoRelevanceManager.updateVideoRelevanceValue(em, true) + recommendationServiceManager.setMaxVideoQueueSize(100) ctx.log.info(`Offchain state successfully imported!`) } } From 54540eaf4fb836c4f4986ddf19928a8480875a39 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 24 Jan 2024 16:23:06 +0100 Subject: [PATCH 20/49] Add update loop and change queue based batch logic --- src/processor.ts | 1 + src/utils/RecommendationServiceManager.ts | 67 ++++++++++++++++++----- 2 files changed, 55 insertions(+), 13 deletions(-) diff --git a/src/processor.ts b/src/processor.ts index 45c96a03e..eee834a1b 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -342,6 +342,7 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( await commentCountersManager.updateParentRepliesCounters(em, true) await videoRelevanceManager.updateVideoRelevanceValue(em, true) recommendationServiceManager.setMaxVideoQueueSize(100) + recommendationServiceManager.initBatchLoop() ctx.log.info(`Offchain state successfully imported!`) } } diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index afdaa2c14..4e4904b14 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -44,6 +44,7 @@ export class RecommendationServiceManager { // if orion is launched in dev mode, always sync videos private _enabled = isDevEnv + private _loopInitialized = false constructor() { if ( @@ -97,8 +98,21 @@ export class RecommendationServiceManager { this._videosQueue.push(actionObject) if (this._videosQueue.length >= this._videoQueueMaxSize) { - await this.sendBatchRequest(this._videosQueue) + const copiedVideosByRef = [...this._videosQueue] this._videosQueue.length = 0 + await this.sendBatchRequest(copiedVideosByRef) + } + } + + async scheduleVideoDeletion(videoId: string) { + const actionObject = new ClientRequests.DeleteItem(videoId) + + this._videosDeleteQueue.push(actionObject) + + if (this._videosDeleteQueue.length >= 100) { + const copiedDeleteVideosByRef = [...this._videosDeleteQueue] + this._videosDeleteQueue.length = 0 + await this.sendBatchRequest(copiedDeleteVideosByRef) } } @@ -118,8 +132,9 @@ export class RecommendationServiceManager { this._usersQueue.push(actionObject) if (this._usersQueue.length >= this._usersQueueMaxSize) { - await this.sendBatchRequest(this._usersQueue) + const copiedUsersByRefs = [...this._usersQueue] this._usersQueue.length = 0 + await this.sendBatchRequest(copiedUsersByRefs) } } @@ -139,8 +154,9 @@ export class RecommendationServiceManager { this._interactionsQueue.push(actionObject) if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - await this.sendBatchRequest(this._interactionsQueue) + const copiedInteractionsByRef = [...this._interactionsQueue] this._interactionsQueue.length = 0 + await this.sendBatchRequest(copiedInteractionsByRef) } } @@ -160,8 +176,9 @@ export class RecommendationServiceManager { this._interactionsQueue.push(actionObject) if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - await this.sendBatchRequest(this._interactionsQueue) + const copiedInteractionsByRef = [...this._interactionsQueue] this._interactionsQueue.length = 0 + await this.sendBatchRequest(copiedInteractionsByRef) } } @@ -181,8 +198,9 @@ export class RecommendationServiceManager { this._interactionsQueue.push(actionObject) if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - await this.sendBatchRequest(this._interactionsQueue) + const copiedInteractionsByRef = [...this._interactionsQueue] this._interactionsQueue.length = 0 + await this.sendBatchRequest(copiedInteractionsByRef) } } @@ -205,8 +223,9 @@ export class RecommendationServiceManager { this._interactionsQueue.push(actionObject) if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - await this.sendBatchRequest(this._interactionsQueue) + const copiedInteractionsByRef = [...this._interactionsQueue] this._interactionsQueue.length = 0 + await this.sendBatchRequest(copiedInteractionsByRef) } } @@ -220,8 +239,9 @@ export class RecommendationServiceManager { this._interactionsQueue.push(actionObject) if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - await this.sendBatchRequest(this._interactionsQueue) + const copiedInteractionsByRef = [...this._interactionsQueue] this._interactionsQueue.length = 0 + await this.sendBatchRequest(copiedInteractionsByRef) } } @@ -290,14 +310,35 @@ export class RecommendationServiceManager { return this.client?.send(request) } - async scheduleVideoDeletion(videoId: string) { - const actionObject = new ClientRequests.DeleteItem(videoId) - - this._videosDeleteQueue.push(actionObject) + initBatchLoop() { + if (this._loopInitialized) { + throw new Error('update loop was initialized more than once') + } + this._loopInitialized = true + this._batchUpdateLoop(5 * 60 * 1_000) // 5mins + .then(() => { + /* Do nothing */ + }) + .catch((err) => { + console.error(err) + process.exit(-1) + }) + } - if (this._videosDeleteQueue.length >= 1000) { - await this.sendBatchRequest(this._videosDeleteQueue) + private async _batchUpdateLoop(intervalMs: number): Promise { + while (true) { + const batchArray = [ + ...this._videosQueue, + ...this._usersQueue, + ...this._interactionsQueue, + ...this._videosDeleteQueue, + ] + this._videosQueue.length = 0 + this._usersQueue.length = 0 + this._interactionsQueue.length = 0 this._videosDeleteQueue.length = 0 + await this.sendBatchRequest(batchArray) + await new Promise((resolve) => setTimeout(resolve, intervalMs)) } } } From 85d25c3e86252f03ab219ecc9e30b7f8ad5b89e7 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Thu, 25 Jan 2024 15:59:00 +0100 Subject: [PATCH 21/49] Switch to single queue and make scheduling sync --- src/utils/RecommendationServiceManager.ts | 127 +++++----------------- 1 file changed, 25 insertions(+), 102 deletions(-) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 4e4904b14..9c51dfc6c 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -30,16 +30,7 @@ const recommendationServiceLogger = createLogger('recommendationsService') const isDevEnv = process.env.ORION_ENV === 'development' export class RecommendationServiceManager { - private _videosQueue: ClientRequests.SetItemValues[] = [] - private _videosDeleteQueue: ClientRequests.DeleteItem[] = [] - private _usersQueue: ClientRequests.SetUserValues[] = [] - private _interactionsQueue: ClientRequests.Request[] = [] - - // this value will be decreased after export block is reached - private _videoQueueMaxSize = 1_000 - private _usersQueueMaxSize = 100 - private _interactionsQueueMaxSize = 100 - + private _queue: ClientRequests.Request[] = [] private client: ApiClient | null = null // if orion is launched in dev mode, always sync videos @@ -68,14 +59,14 @@ export class RecommendationServiceManager { ) } - async scheduleVideoUpsert(video: RSVideo) { + scheduleVideoUpsert(video: RSVideo) { // for dev env sync only up to 20k videos if (!this._enabled || (isDevEnv && Number(video.id) > 20_000)) { return } const actionObject = new ClientRequests.SetItemValues( - video.id, + `${video.id}-video`, { category_id: video.categoryId, channel_id: video.channelId, @@ -94,29 +85,15 @@ export class RecommendationServiceManager { cascadeCreate: true, } ) - - this._videosQueue.push(actionObject) - - if (this._videosQueue.length >= this._videoQueueMaxSize) { - const copiedVideosByRef = [...this._videosQueue] - this._videosQueue.length = 0 - await this.sendBatchRequest(copiedVideosByRef) - } + this._queue.push(actionObject) } - async scheduleVideoDeletion(videoId: string) { + scheduleVideoDeletion(videoId: string) { const actionObject = new ClientRequests.DeleteItem(videoId) - - this._videosDeleteQueue.push(actionObject) - - if (this._videosDeleteQueue.length >= 100) { - const copiedDeleteVideosByRef = [...this._videosDeleteQueue] - this._videosDeleteQueue.length = 0 - await this.sendBatchRequest(copiedDeleteVideosByRef) - } + this._queue.push(actionObject) } - async scheduleUserUpsert(user: RSUser) { + scheduleUserUpsert(user: RSUser) { if (!this._enabled) { return } @@ -128,19 +105,12 @@ export class RecommendationServiceManager { cascadeCreate: true, } ) - - this._usersQueue.push(actionObject) - - if (this._usersQueue.length >= this._usersQueueMaxSize) { - const copiedUsersByRefs = [...this._usersQueue] - this._usersQueue.length = 0 - await this.sendBatchRequest(copiedUsersByRefs) - } + this._queue.push(actionObject) } // this interaction has big model value and should we used for // reliable interactions like video viewed in 90% or nft of given video bought - async scheduleItemConsumed(itemId: string, userId: string, recommId?: string) { + scheduleItemConsumed(itemId: string, userId: string, recommId?: string) { if (!this._enabled) { return } @@ -150,18 +120,11 @@ export class RecommendationServiceManager { cascadeCreate: true, recommId, }) - - this._interactionsQueue.push(actionObject) - - if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - const copiedInteractionsByRef = [...this._interactionsQueue] - this._interactionsQueue.length = 0 - await this.sendBatchRequest(copiedInteractionsByRef) - } + this._queue.push(actionObject) } // this interaction should be dispatched when user clicks a video to see it - async scheduleClickEvent(itemId: string, userId: string, duration?: number, recommId?: string) { + scheduleClickEvent(itemId: string, userId: string, duration?: number, recommId?: string) { if (!this._enabled) { return } @@ -172,19 +135,12 @@ export class RecommendationServiceManager { recommId, duration, }) - - this._interactionsQueue.push(actionObject) - - if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - const copiedInteractionsByRef = [...this._interactionsQueue] - this._interactionsQueue.length = 0 - await this.sendBatchRequest(copiedInteractionsByRef) - } + this._queue.push(actionObject) } // this interaction is for user engagement level // in Orion it would state how long user has watched the video - async scheduleViewPortion(itemId: string, userId: string, portion: number, recommId?: string) { + scheduleViewPortion(itemId: string, userId: string, portion: number, recommId?: string) { if (!this._enabled) { return } @@ -194,17 +150,10 @@ export class RecommendationServiceManager { cascadeCreate: true, recommId, }) - - this._interactionsQueue.push(actionObject) - - if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - const copiedInteractionsByRef = [...this._interactionsQueue] - this._interactionsQueue.length = 0 - await this.sendBatchRequest(copiedInteractionsByRef) - } + this._queue.push(actionObject) } - async scheduleItemRating(itemId: string, userId: string, rating: number, recommId?: string) { + scheduleItemRating(itemId: string, userId: string, rating: number, recommId?: string) { if (!this._enabled) { return } @@ -214,45 +163,25 @@ export class RecommendationServiceManager { } const actionObject = new ClientRequests.AddRating(userId, itemId, rating, { timestamp: Date.now(), - // this event is synced through processor - false will make sure to avoid creating unsynced videos - // in recommendation system for dev instance which only sync 20k videos - cascadeCreate: false, + cascadeCreate: !isDevEnv, recommId, }) - - this._interactionsQueue.push(actionObject) - - if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - const copiedInteractionsByRef = [...this._interactionsQueue] - this._interactionsQueue.length = 0 - await this.sendBatchRequest(copiedInteractionsByRef) - } + this._queue.push(actionObject) } - async deleteItemRating(itemId: string, userId: string) { + deleteItemRating(itemId: string, userId: string) { if (!this._enabled) { return } const actionObject = new ClientRequests.DeleteRating(userId, itemId) - - this._interactionsQueue.push(actionObject) - - if (this._interactionsQueue.length >= this._interactionsQueueMaxSize) { - const copiedInteractionsByRef = [...this._interactionsQueue] - this._interactionsQueue.length = 0 - await this.sendBatchRequest(copiedInteractionsByRef) - } + this._queue.push(actionObject) } enableSync() { this._enabled = true } - setMaxVideoQueueSize(size: number) { - this._videoQueueMaxSize = size - } - private async sendBatchRequest(requests: ClientRequests.Request[]) { if (!this._enabled) { return @@ -315,7 +244,7 @@ export class RecommendationServiceManager { throw new Error('update loop was initialized more than once') } this._loopInitialized = true - this._batchUpdateLoop(5 * 60 * 1_000) // 5mins + this._batchUpdateLoop(30 * 1_000) // 5mins .then(() => { /* Do nothing */ }) @@ -327,17 +256,11 @@ export class RecommendationServiceManager { private async _batchUpdateLoop(intervalMs: number): Promise { while (true) { - const batchArray = [ - ...this._videosQueue, - ...this._usersQueue, - ...this._interactionsQueue, - ...this._videosDeleteQueue, - ] - this._videosQueue.length = 0 - this._usersQueue.length = 0 - this._interactionsQueue.length = 0 - this._videosDeleteQueue.length = 0 - await this.sendBatchRequest(batchArray) + if (this._queue.length) { + const batchArray = [...this._queue] + this._queue.length = 0 + await this.sendBatchRequest(batchArray) + } await new Promise((resolve) => setTimeout(resolve, intervalMs)) } } From 1950d192de4a2559aeefc568096f1aea3c9bddb8 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Thu, 25 Jan 2024 15:59:54 +0100 Subject: [PATCH 22/49] Remove awaits for sync methods --- src/auth-server/handlers/anonymousAuth.ts | 2 +- src/interactions-server/handlers/rateVideo.ts | 2 +- src/interactions-server/handlers/videoClicked.ts | 7 +------ src/interactions-server/handlers/videoConsumed.ts | 2 +- src/interactions-server/handlers/videoPortion.ts | 7 +------ src/mappings/content/commentsAndReactions.ts | 6 +++--- src/mappings/content/video.ts | 5 ++--- 7 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/auth-server/handlers/anonymousAuth.ts b/src/auth-server/handlers/anonymousAuth.ts index b7598aab4..8e8a25a23 100644 --- a/src/auth-server/handlers/anonymousAuth.ts +++ b/src/auth-server/handlers/anonymousAuth.ts @@ -35,7 +35,7 @@ export const anonymousAuth: ( ) if (user && !userId) { - await recommendationServiceManager.scheduleUserUpsert({ id: user.id }) + recommendationServiceManager.scheduleUserUpsert({ id: user.id }) } if (!user) { diff --git a/src/interactions-server/handlers/rateVideo.ts b/src/interactions-server/handlers/rateVideo.ts index bb91de16f..e230b388b 100644 --- a/src/interactions-server/handlers/rateVideo.ts +++ b/src/interactions-server/handlers/rateVideo.ts @@ -28,7 +28,7 @@ export const rateVideo: ( throw new BadRequestError('Request missing parameters') } - await recommendationServiceManager.scheduleItemRating(itemId, session.userId, rating, recommId) + recommendationServiceManager.scheduleItemRating(itemId, session.userId, rating, recommId) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoClicked.ts b/src/interactions-server/handlers/videoClicked.ts index e9f6dc082..fbddf6ba4 100644 --- a/src/interactions-server/handlers/videoClicked.ts +++ b/src/interactions-server/handlers/videoClicked.ts @@ -35,12 +35,7 @@ export const videoClicked: ( throw new TooManyRequestsError('Too many requests') } - await recommendationServiceManager.scheduleClickEvent( - itemId, - session.userId, - duration, - recommId - ) + recommendationServiceManager.scheduleClickEvent(itemId, session.userId, duration, recommId) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoConsumed.ts b/src/interactions-server/handlers/videoConsumed.ts index 80a8990b8..3697c25cc 100644 --- a/src/interactions-server/handlers/videoConsumed.ts +++ b/src/interactions-server/handlers/videoConsumed.ts @@ -34,7 +34,7 @@ export const videoConsumed: ( throw new TooManyRequestsError('Too many requests') } - await recommendationServiceManager.scheduleItemConsumed(itemId, session.userId, recommId) + recommendationServiceManager.scheduleItemConsumed(itemId, session.userId, recommId) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoPortion.ts b/src/interactions-server/handlers/videoPortion.ts index 125207d88..9c89c8382 100644 --- a/src/interactions-server/handlers/videoPortion.ts +++ b/src/interactions-server/handlers/videoPortion.ts @@ -28,12 +28,7 @@ export const videoPortion: ( throw new BadRequestError('Request missing parameters') } - await recommendationServiceManager.scheduleViewPortion( - itemId, - session.userId, - portion, - recommId - ) + recommendationServiceManager.scheduleViewPortion(itemId, session.userId, portion, recommId) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/mappings/content/commentsAndReactions.ts b/src/mappings/content/commentsAndReactions.ts index 942bff969..f462cf296 100644 --- a/src/mappings/content/commentsAndReactions.ts +++ b/src/mappings/content/commentsAndReactions.ts @@ -229,7 +229,7 @@ async function processVideoReaction( videoReactionRepository.remove(existingReaction) if (account) { - await recommendationServiceManager.deleteItemRating(video.id, account.userId) + recommendationServiceManager.deleteItemRating(video.id, account.userId) } return @@ -243,7 +243,7 @@ async function processVideoReaction( videoReaction.reaction = reactionType if (account) { - await recommendationServiceManager.scheduleItemRating( + recommendationServiceManager.scheduleItemRating( video.id, account.userId, reactionType === 'LIKE' ? 1 : -1 @@ -260,7 +260,7 @@ async function processVideoReaction( }), }) if (account) { - await recommendationServiceManager.scheduleItemRating( + recommendationServiceManager.scheduleItemRating( video.id, account.userId, reactionType === 'LIKE' ? 1 : -1 diff --git a/src/mappings/content/video.ts b/src/mappings/content/video.ts index 6c0e58c1b..d1599d4dd 100644 --- a/src/mappings/content/video.ts +++ b/src/mappings/content/video.ts @@ -133,8 +133,7 @@ export async function processVideoCreatedEvent({ channelId: channel.id, }) await notifyChannelFollowers(overlay, channel.id, notificationData, eventEntity) - await recommendationServiceManager.scheduleVideoUpsert(video) - + recommendationServiceManager.scheduleVideoUpsert(video) if (autoIssueNft) { await processNft(overlay, block, indexInBlock, extrinsicHash, video, contentActor, autoIssueNft) } @@ -181,7 +180,7 @@ export async function processVideoUpdatedEvent({ ) } - await recommendationServiceManager.scheduleVideoUpsert(video) + recommendationServiceManager.scheduleVideoUpsert(video) if (autoIssueNft) { await processNft(overlay, block, indexInBlock, extrinsicHash, video, contentActor, autoIssueNft) } From 17c6d6e391f5c04bd67fbc045566ffc87cacf6fa Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Thu, 25 Jan 2024 16:20:38 +0100 Subject: [PATCH 23/49] Remove not existing method call --- src/processor.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/processor.ts b/src/processor.ts index eee834a1b..8aaeabc13 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -341,7 +341,6 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( await commentCountersManager.updateVideoCommentsCounters(em, true) await commentCountersManager.updateParentRepliesCounters(em, true) await videoRelevanceManager.updateVideoRelevanceValue(em, true) - recommendationServiceManager.setMaxVideoQueueSize(100) recommendationServiceManager.initBatchLoop() ctx.log.info(`Offchain state successfully imported!`) } From 39ca0a12bc975e2d86ce9746bb08d359f683dce2 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Thu, 25 Jan 2024 16:25:25 +0100 Subject: [PATCH 24/49] Always init batch loop --- src/processor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/processor.ts b/src/processor.ts index 8aaeabc13..c9bae14fe 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -328,6 +328,7 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( (process.env.FORCE_RECOMMENDATION_DATA_SYNC || block.header.height >= exportBlockNumber) ) { recommendationServiceManager.enableSync() + recommendationServiceManager.initBatchLoop() ctx.log.info(`Recommendations service enabled!`) } @@ -341,7 +342,6 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( await commentCountersManager.updateVideoCommentsCounters(em, true) await commentCountersManager.updateParentRepliesCounters(em, true) await videoRelevanceManager.updateVideoRelevanceValue(em, true) - recommendationServiceManager.initBatchLoop() ctx.log.info(`Offchain state successfully imported!`) } } From e0afbf7317ac0ad9b273f861a5de30838e22d13a Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Thu, 25 Jan 2024 16:56:02 +0100 Subject: [PATCH 25/49] Remove initially enabled manager on dev --- src/utils/RecommendationServiceManager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 9c51dfc6c..34199840e 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -34,7 +34,7 @@ export class RecommendationServiceManager { private client: ApiClient | null = null // if orion is launched in dev mode, always sync videos - private _enabled = isDevEnv + private _enabled = false private _loopInitialized = false constructor() { From 41c622bdba53e055e01194370c40dcbe01e92c65 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 26 Jan 2024 12:30:25 +0100 Subject: [PATCH 26/49] Parse IDs --- src/utils/RecommendationServiceManager.ts | 52 +++++++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 34199840e..83697d050 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -195,6 +195,11 @@ export class RecommendationServiceManager { return stringToHex(orionUserId) } + // template "{id}-video" + systemItemIdToOrion(systemId: string) { + return systemId.split('-')[0] + } + get isEnabled() { return this._enabled } @@ -214,13 +219,39 @@ export class RecommendationServiceManager { filter: opts?.filterQuery, } ) + const res = await this.client?.send(request) + + if (!res) { + return undefined + } - return this.client?.send(request) + const mappedRecoms = res.recomms.map((recom) => ({ + ...recom, + id: this.systemItemIdToOrion(recom.id), + })) + + return { + ...res, + recomms: mappedRecoms, + } } async recommendNextItems(recommId: string, opts?: CommonOptions) { const request = new ClientRequests.RecommendNextItems(recommId, opts?.limit ?? 10) - return this.client?.send(request) + const res = await this.client?.send(request) + if (!res) { + return undefined + } + + const mappedRecoms = res.recomms.map((recom) => ({ + ...recom, + id: this.systemItemIdToOrion(recom.id), + })) + + return { + ...res, + recomms: mappedRecoms, + } } async recommendItemsToItem(itemId: string, userId?: string, opts?: CommonOptions) { @@ -236,7 +267,22 @@ export class RecommendationServiceManager { filter: opts?.filterQuery, } ) - return this.client?.send(request) + + const res = await this.client?.send(request) + + if (!res) { + return undefined + } + + const mappedRecoms = res.recomms.map((recom) => ({ + ...recom, + id: this.systemItemIdToOrion(recom.id), + })) + + return { + ...res, + recomms: mappedRecoms, + } } initBatchLoop() { From 579662d52f5437941a4274994dcf79b0d20079c3 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 26 Jan 2024 12:36:24 +0100 Subject: [PATCH 27/49] Handle custom item id --- src/interactions-server/handlers/channelClicked.ts | 2 +- src/interactions-server/handlers/rateVideo.ts | 7 ++++++- src/interactions-server/handlers/videoClicked.ts | 7 ++++++- src/interactions-server/handlers/videoConsumed.ts | 2 +- src/interactions-server/handlers/videoPortion.ts | 7 ++++++- src/mappings/content/commentsAndReactions.ts | 6 +++--- src/utils/RecommendationServiceManager.ts | 4 ++-- 7 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/interactions-server/handlers/channelClicked.ts b/src/interactions-server/handlers/channelClicked.ts index c98950b1d..d5bec7755 100644 --- a/src/interactions-server/handlers/channelClicked.ts +++ b/src/interactions-server/handlers/channelClicked.ts @@ -1,5 +1,5 @@ import express from 'express' export const channelClicked = (_: unknown, res: express.Response) => { - res.status(200).json({ success: true }) + res.status(404).json({ empty: true }) } diff --git a/src/interactions-server/handlers/rateVideo.ts b/src/interactions-server/handlers/rateVideo.ts index e230b388b..23d330d63 100644 --- a/src/interactions-server/handlers/rateVideo.ts +++ b/src/interactions-server/handlers/rateVideo.ts @@ -28,7 +28,12 @@ export const rateVideo: ( throw new BadRequestError('Request missing parameters') } - recommendationServiceManager.scheduleItemRating(itemId, session.userId, rating, recommId) + recommendationServiceManager.scheduleItemRating( + `${itemId}-video`, + session.userId, + rating, + recommId + ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoClicked.ts b/src/interactions-server/handlers/videoClicked.ts index fbddf6ba4..b040654df 100644 --- a/src/interactions-server/handlers/videoClicked.ts +++ b/src/interactions-server/handlers/videoClicked.ts @@ -35,7 +35,12 @@ export const videoClicked: ( throw new TooManyRequestsError('Too many requests') } - recommendationServiceManager.scheduleClickEvent(itemId, session.userId, duration, recommId) + recommendationServiceManager.scheduleClickEvent( + `${itemId}-video`, + session.userId, + duration, + recommId + ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoConsumed.ts b/src/interactions-server/handlers/videoConsumed.ts index 3697c25cc..77e788c69 100644 --- a/src/interactions-server/handlers/videoConsumed.ts +++ b/src/interactions-server/handlers/videoConsumed.ts @@ -34,7 +34,7 @@ export const videoConsumed: ( throw new TooManyRequestsError('Too many requests') } - recommendationServiceManager.scheduleItemConsumed(itemId, session.userId, recommId) + recommendationServiceManager.scheduleItemConsumed(`${itemId}-video`, session.userId, recommId) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoPortion.ts b/src/interactions-server/handlers/videoPortion.ts index 9c89c8382..da628cfdb 100644 --- a/src/interactions-server/handlers/videoPortion.ts +++ b/src/interactions-server/handlers/videoPortion.ts @@ -28,7 +28,12 @@ export const videoPortion: ( throw new BadRequestError('Request missing parameters') } - recommendationServiceManager.scheduleViewPortion(itemId, session.userId, portion, recommId) + recommendationServiceManager.scheduleViewPortion( + `${itemId}-video`, + session.userId, + portion, + recommId + ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/mappings/content/commentsAndReactions.ts b/src/mappings/content/commentsAndReactions.ts index f462cf296..b64a3d9d5 100644 --- a/src/mappings/content/commentsAndReactions.ts +++ b/src/mappings/content/commentsAndReactions.ts @@ -229,7 +229,7 @@ async function processVideoReaction( videoReactionRepository.remove(existingReaction) if (account) { - recommendationServiceManager.deleteItemRating(video.id, account.userId) + recommendationServiceManager.deleteItemRating(`${video.id}-video`, account.userId) } return @@ -244,7 +244,7 @@ async function processVideoReaction( if (account) { recommendationServiceManager.scheduleItemRating( - video.id, + `${video.id}-video`, account.userId, reactionType === 'LIKE' ? 1 : -1 ) @@ -261,7 +261,7 @@ async function processVideoReaction( }) if (account) { recommendationServiceManager.scheduleItemRating( - video.id, + `${video.id}-video`, account.userId, reactionType === 'LIKE' ? 1 : -1 ) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 83697d050..2105a390f 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -183,10 +183,10 @@ export class RecommendationServiceManager { } private async sendBatchRequest(requests: ClientRequests.Request[]) { - if (!this._enabled) { + if (!this._enabled || !this.client) { return } - const res = await this.client?.send(new ClientRequests.Batch(requests)) + const res = await this.client.send(new ClientRequests.Batch(requests)) recommendationServiceLogger.info(`Batch request sent, response: ${JSON.stringify(res)}`) return res } From 45721a89875117f60a42788c2d8f186bcebcd3c1 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 26 Jan 2024 13:43:59 +0100 Subject: [PATCH 28/49] Fix response error if where is empty --- src/utils/RecommendationServiceManager.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 2105a390f..81d487295 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -216,7 +216,7 @@ export class RecommendationServiceManager { minRelevance: 'low', rotationRate: 0.1, cascadeCreate: true, - filter: opts?.filterQuery, + filter: opts?.filterQuery || undefined, } ) const res = await this.client?.send(request) @@ -264,7 +264,7 @@ export class RecommendationServiceManager { minRelevance: 'medium', rotationRate: 0.2, cascadeCreate: true, - filter: opts?.filterQuery, + filter: opts?.filterQuery || undefined, } ) From 6e10adfb760fb79cba3c7068b71833d373bd5b43 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 26 Jan 2024 13:53:19 +0100 Subject: [PATCH 29/49] Init schedule loop on auth and interactions servers --- src/auth-server/index.ts | 1 + src/interactions-server/index.ts | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/auth-server/index.ts b/src/auth-server/index.ts index a7bad92e3..86885e321 100644 --- a/src/auth-server/index.ts +++ b/src/auth-server/index.ts @@ -16,6 +16,7 @@ import { recommendationServiceManager } from '../utils/RecommendationServiceMana export const logger = createLogger('auth-api') recommendationServiceManager.enableSync() +recommendationServiceManager.initBatchLoop() export const app = express() function authHandler(type: 'header' | 'cookie') { diff --git a/src/interactions-server/index.ts b/src/interactions-server/index.ts index fc44ae7f4..d76943a64 100644 --- a/src/interactions-server/index.ts +++ b/src/interactions-server/index.ts @@ -14,7 +14,9 @@ import fs from 'fs' import { recommendationServiceManager } from '../utils/RecommendationServiceManager' recommendationServiceManager.enableSync() -export const logger = createLogger('auth-api') +recommendationServiceManager.initBatchLoop() + +export const logger = createLogger('interactions-api') export const app = express() From 73bf1a730d8b059582d3b6079ac6336c66b54661 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 26 Jan 2024 14:00:15 +0100 Subject: [PATCH 30/49] Add missing user id parsing in methods --- src/utils/RecommendationServiceManager.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 81d487295..44bea9ab3 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -145,11 +145,16 @@ export class RecommendationServiceManager { return } - const actionObject = new ClientRequests.SetViewPortion(userId, itemId, portion, { - timestamp: Date.now(), - cascadeCreate: true, - recommId, - }) + const actionObject = new ClientRequests.SetViewPortion( + this.mapUserId(userId), + itemId, + portion, + { + timestamp: Date.now(), + cascadeCreate: true, + recommId, + } + ) this._queue.push(actionObject) } @@ -161,7 +166,7 @@ export class RecommendationServiceManager { if (rating < -1 || rating > 1) { throw new Error('Rating out of bounds') } - const actionObject = new ClientRequests.AddRating(userId, itemId, rating, { + const actionObject = new ClientRequests.AddRating(this.mapUserId(userId), itemId, rating, { timestamp: Date.now(), cascadeCreate: !isDevEnv, recommId, From ed225c7073381d7c584a527aa713770a16f32407 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 26 Jan 2024 14:48:31 +0100 Subject: [PATCH 31/49] Change timestamp format to avoid error --- src/utils/RecommendationServiceManager.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 44bea9ab3..1b2e4e035 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -116,7 +116,7 @@ export class RecommendationServiceManager { } const actionObject = new ClientRequests.AddPurchase(this.mapUserId(userId), itemId, { - timestamp: Date.now(), + timestamp: new Date().toISOString(), cascadeCreate: true, recommId, }) @@ -130,7 +130,7 @@ export class RecommendationServiceManager { } const actionObject = new ClientRequests.AddDetailView(this.mapUserId(userId), itemId, { - timestamp: Date.now(), + timestamp: new Date().toISOString(), cascadeCreate: true, recommId, duration, @@ -150,7 +150,7 @@ export class RecommendationServiceManager { itemId, portion, { - timestamp: Date.now(), + timestamp: new Date().toISOString(), cascadeCreate: true, recommId, } @@ -167,7 +167,7 @@ export class RecommendationServiceManager { throw new Error('Rating out of bounds') } const actionObject = new ClientRequests.AddRating(this.mapUserId(userId), itemId, rating, { - timestamp: Date.now(), + timestamp: new Date().toISOString(), cascadeCreate: !isDevEnv, recommId, }) @@ -189,6 +189,9 @@ export class RecommendationServiceManager { private async sendBatchRequest(requests: ClientRequests.Request[]) { if (!this._enabled || !this.client) { + recommendationServiceLogger.info( + `Unable to send response: ${this.client ? 'service not enabled' : 'missing client'}` + ) return } const res = await this.client.send(new ClientRequests.Batch(requests)) From 1420552ea3cae7ae5011adbf61e7f32339acfd7b Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Fri, 26 Jan 2024 16:47:21 +0100 Subject: [PATCH 32/49] Decrease ip limiting on interactions server --- src/interactions-server/rateLimits.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/interactions-server/rateLimits.ts b/src/interactions-server/rateLimits.ts index 1ace4fc34..08db02ea8 100644 --- a/src/interactions-server/rateLimits.ts +++ b/src/interactions-server/rateLimits.ts @@ -23,7 +23,7 @@ type RateLimitsPerRoute = { // Global limit is 300 auth API requests per 15 minutes per IP, // it applies to all routes that don't have a specific limit set export const globalRateLimit: SimpleRateLimit = { - windowMinutes: 15, + windowMinutes: 5, limit: 300, } @@ -32,25 +32,25 @@ export const rateLimitsPerRoute: RateLimitsPerRoute = { '/video-clicked': { post: { windowMinutes: 5, - limit: 50, + limit: 100, }, }, '/channel-clicked': { post: { windowMinutes: 5, - limit: 50, + limit: 100, }, }, '/video-consumed': { post: { windowMinutes: 5, - limit: 15, + limit: 100, }, }, '/video-portion': { post: { windowMinutes: 5, - limit: 50, + limit: 100, }, }, } From 9304bcfcedeaf4367dc5dac285b2e9d92c894ffe Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Sat, 27 Jan 2024 10:04:09 +0100 Subject: [PATCH 33/49] Adjust provider logic and fix similiar items query --- src/server-extension/resolvers/VideosResolver/index.ts | 2 +- src/utils/RecommendationServiceManager.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index 749fa71cc..a1ef7f8eb 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -113,7 +113,7 @@ export class VideosResolver { let recommendationsResponse const getItemRecommendationsPromise = recommendationServiceManager.recommendItemsToItem( - videoId, + `${videoId}-video `, ctx.userId ?? undefined, { limit: queryArgs.limit, diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 1b2e4e035..7e33167e1 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -222,7 +222,7 @@ export class RecommendationServiceManager { { scenario: 'homepage', minRelevance: 'low', - rotationRate: 0.1, + rotationRate: 0.4, cascadeCreate: true, filter: opts?.filterQuery || undefined, } @@ -270,7 +270,7 @@ export class RecommendationServiceManager { { scenario: 'watch-next', minRelevance: 'medium', - rotationRate: 0.2, + rotationRate: 0.4, cascadeCreate: true, filter: opts?.filterQuery || undefined, } From 85bb1d50919e76cdf83b8a5d9935b3d0b1553cbe Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 30 Jan 2024 11:09:19 +0100 Subject: [PATCH 34/49] Watch next video resolver --- .../resolvers/VideosResolver/index.ts | 58 ++++++++++++++++++- .../resolvers/VideosResolver/types.ts | 12 ++++ src/utils/RecommendationServiceManager.ts | 31 ++++++++++ 3 files changed, 100 insertions(+), 1 deletion(-) diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index a1ef7f8eb..c25ff7a8f 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -6,6 +6,7 @@ import { ExcludeVideoInfo, HomepageVideoQueryArgs, MostViewedVideosConnectionArgs, + NextVideoQueryArgs, ReportVideoArgs, SimiliarVideosQueryArgs, UpdateVideoViewArgs, @@ -113,7 +114,7 @@ export class VideosResolver { let recommendationsResponse const getItemRecommendationsPromise = recommendationServiceManager.recommendItemsToItem( - `${videoId}-video `, + `${videoId}-video`, ctx.userId ?? undefined, { limit: queryArgs.limit, @@ -156,6 +157,61 @@ export class VideosResolver { } } + @Query(() => RecommendedVideosQuery) + async nextVideo( + @Args() + args: NextVideoQueryArgs, + @Info() info: GraphQLResolveInfo, + @Ctx() ctx: Context + ): Promise { + const { videoId, recommId: argsRecommId, ...queryArgs } = args + const listQuery = buildRecommendationsVideoQuery(queryArgs, info, ctx) + const reQLQuery = args.where ? convertVideoWhereIntoReQlQuery(args.where) : undefined + + let recommendationsResponse + const getItemRecommendationsPromise = recommendationServiceManager.recommendNextVideo( + `${videoId}-video`, + ctx.userId ?? undefined, + { + filterQuery: reQLQuery, + } + ) + + if (argsRecommId) { + try { + recommendationsResponse = await recommendationServiceManager.recommendNextItems( + argsRecommId, + { + filterQuery: reQLQuery, + } + ) + } catch (e) { + recommendationsResponse = await getItemRecommendationsPromise + } + } else { + recommendationsResponse = await getItemRecommendationsPromise + } + + if (recommendationsResponse && recommendationsResponse.recomms.length) { + const { recomms } = recommendationsResponse + const ids = recomms.map((recomm) => recomm.id) + ;(listQuery as { sql: string }).sql = extendClause( + listQuery.sql, + 'WHERE', + `"video"."id" IN (${ids.map((id) => `'${id}'`).join(', ')})`, + 'AND' + ) + } + + const result = await ctx.openreader.executeQuery(listQuery) + + return { + video: result as Video[], + recommId: recommendationsResponse?.recommId ?? '', + numberNextRecommsCalls: recommendationsResponse?.numberNextRecommsCalls ?? 0, + } + } + @Query(() => VideosConnection) async mostViewedVideosConnection( @Args() diff --git a/src/server-extension/resolvers/VideosResolver/types.ts b/src/server-extension/resolvers/VideosResolver/types.ts index aeac3bc8e..f399d2f59 100644 --- a/src/server-extension/resolvers/VideosResolver/types.ts +++ b/src/server-extension/resolvers/VideosResolver/types.ts @@ -66,6 +66,18 @@ export class SimiliarVideosQueryArgs extends CommonVideoQueryArgs { recommId?: string } +@ArgsType() +export class NextVideoQueryArgs { + @Field(() => String, { nullable: true }) + videoId: string + + @Field(() => String, { nullable: true }) + recommId?: string + + @Field(() => VideoWhereInput, { nullable: true }) + where?: Record +} + @ArgsType() export class MostViewedVideosConnectionArgs extends VideosConnectionArgs { @Field(() => Int, { nullable: true }) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 7e33167e1..a23ac949a 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -263,6 +263,37 @@ export class RecommendationServiceManager { } async recommendItemsToItem(itemId: string, userId?: string, opts?: CommonOptions) { + const request = new ClientRequests.RecommendItemsToItem( + itemId, + userId ? this.mapUserId(userId) : randomUUID(), + opts?.limit ?? 10, + { + scenario: 'similar-videos', + minRelevance: 'medium', + rotationRate: 0.4, + cascadeCreate: true, + filter: opts?.filterQuery || undefined, + } + ) + + const res = await this.client?.send(request) + + if (!res) { + return undefined + } + + const mappedRecoms = res.recomms.map((recom) => ({ + ...recom, + id: this.systemItemIdToOrion(recom.id), + })) + + return { + ...res, + recomms: mappedRecoms, + } + } + + async recommendNextVideo(itemId: string, userId?: string, opts?: CommonOptions) { const request = new ClientRequests.RecommendItemsToItem( itemId, userId ? this.mapUserId(userId) : randomUUID(), From 48d60908fc9480898ac6f491689a26e45c7cfabd Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 30 Jan 2024 12:19:25 +0100 Subject: [PATCH 35/49] Add remove video event to the recombee --- src/mappings/content/video.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mappings/content/video.ts b/src/mappings/content/video.ts index d1599d4dd..3e594b513 100644 --- a/src/mappings/content/video.ts +++ b/src/mappings/content/video.ts @@ -192,6 +192,7 @@ export async function processVideoDeletedEvent({ asV1000: [, contentId], }, }: EventHandlerContext<'Content.VideoDeleted'>): Promise { + recommendationServiceManager.scheduleVideoDeletion(contentId.toString()) await deleteVideo(overlay, contentId) } @@ -201,6 +202,7 @@ export async function processVideoDeletedByModeratorEvent({ asV1000: [, contentId], }, }: EventHandlerContext<'Content.VideoDeletedByModerator'>): Promise { + recommendationServiceManager.scheduleVideoDeletion(contentId.toString()) await deleteVideo(overlay, contentId) } From bb5330d39c232e6af862241d865b1c4bd0d2df70 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 30 Jan 2024 14:39:29 +0100 Subject: [PATCH 36/49] Script to quickly setup recombee database --- .../tutorials/recommendations.md | 2 + src/mappings/content/video.ts | 4 +- src/scripts/setupRecombee.ts | 80 ++++++++++++++ src/utils/RecommendationServiceManager.ts | 101 +++++++++++------- 4 files changed, 148 insertions(+), 39 deletions(-) create mode 100644 src/scripts/setupRecombee.ts diff --git a/docs/operator-guide/tutorials/recommendations.md b/docs/operator-guide/tutorials/recommendations.md index 424534b6d..685750624 100644 --- a/docs/operator-guide/tutorials/recommendations.md +++ b/docs/operator-guide/tutorials/recommendations.md @@ -17,3 +17,5 @@ Recombee client is constructed with 2 variables `RECOMMENDATION_SERVICE_PRIVATE_ `FORCE_RECOMMENDATION_DATA_SYNC` variable is a boolean that indicate whether processor should consider export block height in terms of syncing videos and ratings with recommendations service. If set to true - it will sync all the data for the first block even if last exported block is greater. +If those two values are provided, when you use `make prepare` command, it will set up item properties and segments supported by Orion. +If you want to run set up script directly use `make setup-recommendations`. diff --git a/src/mappings/content/video.ts b/src/mappings/content/video.ts index 3e594b513..60ddb90ea 100644 --- a/src/mappings/content/video.ts +++ b/src/mappings/content/video.ts @@ -133,7 +133,7 @@ export async function processVideoCreatedEvent({ channelId: channel.id, }) await notifyChannelFollowers(overlay, channel.id, notificationData, eventEntity) - recommendationServiceManager.scheduleVideoUpsert(video) + recommendationServiceManager.scheduleVideoUpsert(video as Video) if (autoIssueNft) { await processNft(overlay, block, indexInBlock, extrinsicHash, video, contentActor, autoIssueNft) } @@ -180,7 +180,7 @@ export async function processVideoUpdatedEvent({ ) } - recommendationServiceManager.scheduleVideoUpsert(video) + recommendationServiceManager.scheduleVideoUpsert(video as Video) if (autoIssueNft) { await processNft(overlay, block, indexInBlock, extrinsicHash, video, contentActor, autoIssueNft) } diff --git a/src/scripts/setupRecombee.ts b/src/scripts/setupRecombee.ts new file mode 100644 index 000000000..cec0a3b5c --- /dev/null +++ b/src/scripts/setupRecombee.ts @@ -0,0 +1,80 @@ +import { ApiClient, requests } from 'recombee-api-client' +import { RSChannel, RSVideo } from '../utils/RecommendationServiceManager' +import dotenv from 'dotenv' + +type RecombeePropTypes = + | 'int' + | 'double' + | 'string' + | 'boolean' + | 'timestamp' + | 'set' + | 'image' + | 'imageList' + +type JoinedItemProps = keyof RSChannel | keyof RSVideo + +const itemPropToType: Record = { + follows_num: 'int', + total_videos_created: 'int', + title: 'string', + timestamp: 'timestamp', + language: 'string', + description: 'string', + type: 'string', + reactions_count: 'int', + category_id: 'string', + comments_count: 'int', + views_num: 'int', + channel_id: 'string', + duration: 'int', +} + +async function main() { + dotenv.config() + + if ( + !process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY || + !process.env.RECOMMENDATION_SERVICE_DATABASE + ) { + console.error('RecommendationServiceManager initalized without required variables') + throw new Error() + } + + const client = new ApiClient( + process.env.RECOMMENDATION_SERVICE_DATABASE, + process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY, + { + region: 'eu-west', + } + ) + // setup item properties + const itemPropertiesReqs = Object.entries(itemPropToType).map( + ([propName, type]) => new requests.AddItemProperty(propName, type) + ) + + // setup segments + const segmentsReqs = [ + new requests.CreateManualReqlSegmentation('item-categories', 'items'), + new requests.AddManualReqlSegment('item-categories', 'video', '\'itemId\' ~ ".*-video$"'), + new requests.AddManualReqlSegment('item-categories', 'channel', '\'itemId\' ~ ".*-channel"'), + ] + + const res = await client.send(new requests.Batch([...itemPropertiesReqs, ...segmentsReqs])) + const failedRequests = res.filter((req) => req.code === 400) + + if (failedRequests.length) { + console.error('Some of the requests failed! Recommbee is not ready to be used.', failedRequests) + throw new Error() + } + console.log( + 'Recombee setup is completed! Rember to add following scenarios to the admin UI: watch-next, similar-videos, homepage' + ) +} + +main() + .then(() => process.exit(0)) + .catch((e) => { + console.error(e) + process.exit(-1) + }) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index a23ac949a..0409f6a35 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -1,22 +1,25 @@ -import { User, Video } from '../model' +import { Channel, User, Video } from '../model' import { ApiClient, requests as ClientRequests } from 'recombee-api-client' import { createLogger } from '@subsquid/logger' import { randomUUID } from 'crypto' import { stringToHex } from '@polkadot/util' -export type RSVideo = Pick< - Video, - | 'id' - | 'duration' - | 'categoryId' - | 'commentsCount' - | 'createdAt' - | 'reactionsCount' - | 'viewsNum' - | 'channelId' - | 'language' - | 'title' -> +export type RSVideo = { + comments_count: number + timestamp: Date + category_id?: string + reactions_count: number + views_num: number + channel_id?: string + type: 'video' +} & Required> + +export type RSChannel = { + timestamp: Date + follows_num: number + total_videos_created: number + type: 'channel' +} & Pick type RSUser = Pick @@ -59,37 +62,61 @@ export class RecommendationServiceManager { ) } - scheduleVideoUpsert(video: RSVideo) { + scheduleVideoUpsert(video: Video) { // for dev env sync only up to 20k videos if (!this._enabled || (isDevEnv && Number(video.id) > 20_000)) { return } + const actionObject: RSVideo = { + category_id: video.categoryId ?? undefined, + channel_id: video.channelId ?? undefined, + comments_count: video.commentsCount, + duration: video.duration, + language: video.language, + reactions_count: video.reactionsCount, + timestamp: new Date(video.createdAt), + title: video.title, + views_num: video.viewsNum, + // recombee only offers single items table, so it would be good to have type + // in case we decide to add new type in the future, like NFT + type: 'video', + } - const actionObject = new ClientRequests.SetItemValues( - `${video.id}-video`, - { - category_id: video.categoryId, - channel_id: video.channelId, - comments_count: video.commentsCount, - duration: video.duration, - language: video.language, - reactions_count: video.reactionsCount, - timestamp: new Date(video.createdAt), - title: video.title, - views_num: video.viewsNum, - // recombee only offers single items table, so it would be good to have type - // in case we decide to add new type in the future, like NFT - type: 'video', - }, - { - cascadeCreate: true, - } - ) - this._queue.push(actionObject) + const request = new ClientRequests.SetItemValues(`${video.id}-video`, actionObject, { + cascadeCreate: true, + }) + this._queue.push(request) } scheduleVideoDeletion(videoId: string) { - const actionObject = new ClientRequests.DeleteItem(videoId) + const actionObject = new ClientRequests.DeleteItem(`${videoId}-video`) + this._queue.push(actionObject) + } + + scheduleChannelUpsert(channel: Channel) { + // for dev env sync only up to 20k videos + if (!this._enabled || (isDevEnv && Number(channel.id) > 20_000)) { + return + } + + const actionObject: RSChannel = { + language: channel.language, + description: channel.description, + title: channel.title, + timestamp: channel.createdAt, + total_videos_created: channel.totalVideosCreated, + follows_num: channel.followsNum, + type: 'channel', + } + + const request = new ClientRequests.SetItemValues(`${channel.id}-channel`, actionObject, { + cascadeCreate: true, + }) + this._queue.push(request) + } + + scheduleChannelDeletion(channelId: string) { + const actionObject = new ClientRequests.DeleteItem(`${channelId}-channel`) this._queue.push(actionObject) } From cfc6291fa32b8efc465be5fd61b62c5af03f52ea Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 30 Jan 2024 14:42:42 +0100 Subject: [PATCH 37/49] Add channel oriented schedules to the processor --- src/mappings/content/channel.ts | 6 +++++- src/utils/RecommendationServiceManager.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mappings/content/channel.ts b/src/mappings/content/channel.ts index 0a5841df6..431681564 100644 --- a/src/mappings/content/channel.ts +++ b/src/mappings/content/channel.ts @@ -40,6 +40,7 @@ import { Flat } from '../../utils/overlay' import { DecodedMetadataObject } from '@joystream/metadata-protobuf/types' import { generateAppActionCommitment } from '@joystream/js/utils' import { addNotification } from '../../utils/notification' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' export async function processChannelCreatedEvent({ overlay, @@ -116,6 +117,7 @@ export async function processChannelCreatedEvent({ await processChannelMetadata(overlay, block, channel, metadata, dataObjects) } } + recommendationServiceManager.scheduleChannelUpsert(channel as Channel) if (ownerMember) { ownerMember.totalChannelsCreated += 1 @@ -161,7 +163,7 @@ export async function processChannelUpdatedEvent({ } else { channelMetadataUpdate = deserializeMetadata(ChannelMetadata, channelUpdateParameters.newMeta) } - + recommendationServiceManager.scheduleChannelUpsert(channel as Channel) await processChannelMetadata( overlay, block, @@ -179,6 +181,7 @@ export async function processChannelDeletedEvent({ }, }: EventHandlerContext<'Content.ChannelDeleted'>): Promise { await deleteChannel(overlay, channelId) + recommendationServiceManager.scheduleChannelDeletion(channelId.toString()) } export async function processChannelDeletedByModeratorEvent({ @@ -188,6 +191,7 @@ export async function processChannelDeletedByModeratorEvent({ }, }: EventHandlerContext<'Content.ChannelDeletedByModerator'>): Promise { await deleteChannel(overlay, channelId) + recommendationServiceManager.scheduleChannelDeletion(channelId.toString()) } export async function processChannelVisibilitySetByModeratorEvent({ diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 0409f6a35..571d9fa9c 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -94,7 +94,7 @@ export class RecommendationServiceManager { } scheduleChannelUpsert(channel: Channel) { - // for dev env sync only up to 20k videos + // for dev env sync only up to 20k channels if (!this._enabled || (isDevEnv && Number(channel.id) > 20_000)) { return } From 6455b1e438afffdfc9ad0f25976344b2728cfffd Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 30 Jan 2024 14:56:33 +0100 Subject: [PATCH 38/49] Add logic for channel clicked handler --- .../handlers/channelClicked.ts | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/src/interactions-server/handlers/channelClicked.ts b/src/interactions-server/handlers/channelClicked.ts index d5bec7755..3d6ab5cfc 100644 --- a/src/interactions-server/handlers/channelClicked.ts +++ b/src/interactions-server/handlers/channelClicked.ts @@ -1,5 +1,49 @@ import express from 'express' +import { BadRequestError, TooManyRequestsError, UnauthorizedError } from '../errors' +import { singleClickLimiter } from '../interactionsLimiter' +import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' +import { components } from '../generated/api-types' +import { AuthContext } from '../../utils/auth' -export const channelClicked = (_: unknown, res: express.Response) => { - res.status(404).json({ empty: true }) +type ReqParams = Record +type ResBody = + | components['schemas']['GenericOkResponseData'] + | components['schemas']['GenericErrorResponseData'] +type ReqBody = components['schemas']['ItemClickInteractionRequestData'] +type ResLocals = { authContext: AuthContext } + +export const channelClicked = async ( + req: express.Request, + res: express.Response, + next: express.NextFunction +) => { + try { + const { authContext: session } = res.locals + const { itemId, duration, recommId } = req.body + + if (!session || !session.userId || session.expiry.getTime() < Date.now()) { + throw new UnauthorizedError('Session unavailable or expired') + } + + if (!itemId) { + throw new BadRequestError('Request missing item id') + } + + const isBlocked = await singleClickLimiter.limit(`${itemId}:${session.userId}-channel`) + + if (isBlocked) { + throw new TooManyRequestsError('Too many requests') + } + + recommendationServiceManager.scheduleClickEvent( + `${itemId}-channel`, + session.userId, + duration, + recommId + ) + + res.status(200).json({ success: true }) + } catch (e) { + next(e) + } } From 77144ce806d7f1641bc5a70f8c3a45e03df9e993 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 30 Jan 2024 15:00:14 +0100 Subject: [PATCH 39/49] Add logic for channel follow --- .../resolvers/ChannelsResolver/index.ts | 4 ++++ src/utils/RecommendationServiceManager.ts | 22 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/server-extension/resolvers/ChannelsResolver/index.ts b/src/server-extension/resolvers/ChannelsResolver/index.ts index 06ab2a602..1d5914e87 100644 --- a/src/server-extension/resolvers/ChannelsResolver/index.ts +++ b/src/server-extension/resolvers/ChannelsResolver/index.ts @@ -55,6 +55,7 @@ import { addNotification } from '../../../utils/notification' import { assertNotNull } from '@subsquid/substrate-processor' import { FALLBACK_CHANNEL_TITLE } from '../../../mappings/content/utils' import pLimit from 'p-limit' +import { recommendationServiceManager } from '../../../utils/RecommendationServiceManager' @Resolver() export class ChannelsResolver { @@ -223,6 +224,8 @@ export class ChannelsResolver { timestamp: new Date(), }) + recommendationServiceManager.scheduleItemBookmark(`${channel.id}-channel`, user.id) + const ownerAccount = channel.ownerMemberId ? await em.getRepository(Account).findOneBy({ membershipId: channel.ownerMemberId }) : null @@ -283,6 +286,7 @@ export class ChannelsResolver { } // Otherwise remove the follow channel.followsNum -= 1 + recommendationServiceManager.deleteItemBookmark(`${channel.id}-channel`, user.id) await Promise.all([em.remove(follow), em.save(channel)]) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 571d9fa9c..4dc008707 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -185,6 +185,28 @@ export class RecommendationServiceManager { this._queue.push(actionObject) } + scheduleItemBookmark(itemId: string, userId: string, recommId?: string) { + if (!this._enabled) { + return + } + + const actionObject = new ClientRequests.AddBookmark(this.mapUserId(userId), itemId, { + timestamp: new Date().toISOString(), + cascadeCreate: !isDevEnv, + recommId, + }) + this._queue.push(actionObject) + } + + deleteItemBookmark(itemId: string, userId: string) { + if (!this._enabled) { + return + } + + const actionObject = new ClientRequests.DeleteBookmark(this.mapUserId(userId), itemId) + this._queue.push(actionObject) + } + scheduleItemRating(itemId: string, userId: string, rating: number, recommId?: string) { if (!this._enabled) { return From 58f64fe249b04ad28d0c5e2416cecf6cb346d88c Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 31 Jan 2024 13:08:13 +0100 Subject: [PATCH 40/49] Add n-trigram language detection for recommendation system --- src/utils/RecommendationServiceManager.ts | 80 ++++++++++++----------- src/utils/language.ts | 22 +++++++ 2 files changed, 64 insertions(+), 38 deletions(-) create mode 100644 src/utils/language.ts diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 4dc008707..3954387bf 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -1,8 +1,14 @@ import { Channel, User, Video } from '../model' -import { ApiClient, requests as ClientRequests } from 'recombee-api-client' +import { + ApiClient, + RecommendationResponse, + requests as ClientRequests, + SearchResponse, +} from 'recombee-api-client' import { createLogger } from '@subsquid/logger' import { randomUUID } from 'crypto' import { stringToHex } from '@polkadot/util' +import { predictLanguage } from './language' export type RSVideo = { comments_count: number @@ -67,12 +73,14 @@ export class RecommendationServiceManager { if (!this._enabled || (isDevEnv && Number(video.id) > 20_000)) { return } + + const languageText = (video.title ?? '') + (video.description ?? '') const actionObject: RSVideo = { category_id: video.categoryId ?? undefined, channel_id: video.channelId ?? undefined, comments_count: video.commentsCount, duration: video.duration, - language: video.language, + language: languageText ? predictLanguage(languageText) : video.language, reactions_count: video.reactionsCount, timestamp: new Date(video.createdAt), title: video.title, @@ -98,9 +106,10 @@ export class RecommendationServiceManager { if (!this._enabled || (isDevEnv && Number(channel.id) > 20_000)) { return } + const languageText = (channel.title ?? '') + (channel.description ?? '') const actionObject: RSChannel = { - language: channel.language, + language: languageText ? predictLanguage(languageText) : channel.language, description: channel.description, title: channel.title, timestamp: channel.createdAt, @@ -257,6 +266,18 @@ export class RecommendationServiceManager { return systemId.split('-')[0] } + mapRecommendationResponse(res: RecommendationResponse | SearchResponse) { + const mappedRecoms = res.recomms.map((recom) => ({ + ...recom, + id: this.systemItemIdToOrion(recom.id), + })) + + return { + ...res, + recomms: mappedRecoms, + } + } + get isEnabled() { return this._enabled } @@ -282,15 +303,7 @@ export class RecommendationServiceManager { return undefined } - const mappedRecoms = res.recomms.map((recom) => ({ - ...recom, - id: this.systemItemIdToOrion(recom.id), - })) - - return { - ...res, - recomms: mappedRecoms, - } + return this.mapRecommendationResponse(res) } async recommendNextItems(recommId: string, opts?: CommonOptions) { @@ -300,15 +313,7 @@ export class RecommendationServiceManager { return undefined } - const mappedRecoms = res.recomms.map((recom) => ({ - ...recom, - id: this.systemItemIdToOrion(recom.id), - })) - - return { - ...res, - recomms: mappedRecoms, - } + return this.mapRecommendationResponse(res) } async recommendItemsToItem(itemId: string, userId?: string, opts?: CommonOptions) { @@ -326,20 +331,11 @@ export class RecommendationServiceManager { ) const res = await this.client?.send(request) - if (!res) { return undefined } - const mappedRecoms = res.recomms.map((recom) => ({ - ...recom, - id: this.systemItemIdToOrion(recom.id), - })) - - return { - ...res, - recomms: mappedRecoms, - } + return this.mapRecommendationResponse(res) } async recommendNextVideo(itemId: string, userId?: string, opts?: CommonOptions) { @@ -362,15 +358,23 @@ export class RecommendationServiceManager { return undefined } - const mappedRecoms = res.recomms.map((recom) => ({ - ...recom, - id: this.systemItemIdToOrion(recom.id), - })) + return this.mapRecommendationResponse(res) + } - return { - ...res, - recomms: mappedRecoms, + async personalizedSearch(userId: string, query: string, type: 'video' | 'channel', limit = 10) { + const request = new ClientRequests.SearchItems(this.mapUserId(userId), query, limit, { + cascadeCreate: true, + scenario: 'search', + filter: `itemId' ~ ".*-${type}$"`, + }) + + const res = await this.client?.send(request) + + if (!res) { + return undefined } + + return this.mapRecommendationResponse(res) } initBatchLoop() { diff --git a/src/utils/language.ts b/src/utils/language.ts new file mode 100644 index 000000000..5fc018069 --- /dev/null +++ b/src/utils/language.ts @@ -0,0 +1,22 @@ +import LanguageDetect from 'languagedetect' + +function cleanString(input: string): string { + // Remove symbols, numbers, and emojis + // The regex [\p{P}\p{S}\p{N}\p{M}] matches all kinds of punctuation, symbols, numbers, and mark characters (including emojis) + // \p{P} matches any kind of punctuation character + // \p{S} matches any kind of math symbol, currency sign, or modifier symbol + // \p{N} matches any kind of numeric character in any script + // \p{M} matches characters that are combined with other characters, often used for emojis and diacritics + // The 'u' flag enables Unicode support, allowing the regex to match Unicode characters and properties + const cleanedString = input.replace(/[\p{P}\p{S}\p{N}\p{M}]/gu, '') + return cleanedString.toLowerCase() +} + +const lngDetector = new LanguageDetect() +lngDetector.setLanguageType('iso2') + +// Example usage +export const predictLanguage = (text: string) => { + const cleanedText = cleanString(text) + return lngDetector.detect(cleanedText, 1)[0][0] +} From a44c3816de370c9cb7d489909dd391ad86293f2a Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 7 Feb 2024 14:01:29 +0100 Subject: [PATCH 41/49] Remove channel from sync --- Makefile | 4 +- package-lock.json | 14 +++++++ package.json | 2 + src/mappings/content/channel.ts | 2 - src/mappings/content/video.ts | 11 ++++- src/scripts/setupRecombee.ts | 22 +++++----- .../resolvers/ChannelsResolver/index.ts | 7 ++++ src/server-extension/resolvers/baseTypes.ts | 8 ++++ src/utils/RecommendationServiceManager.ts | 42 +++---------------- src/utils/language.ts | 4 +- 10 files changed, 61 insertions(+), 55 deletions(-) diff --git a/Makefile b/Makefile index d841057a3..db839b82f 100644 --- a/Makefile +++ b/Makefile @@ -30,11 +30,13 @@ codegen: @npm run generate:schema || true @npx squid-typeorm-codegen +setup-recommendations: + @npm run recommendations:setup typegen: @npx squid-substrate-typegen typegen.json -prepare: install codegen build +prepare: install codegen build setup-recommendations up-squid: @docker network create joystream_default || true diff --git a/package-lock.json b/package-lock.json index 328a8e874..23223828d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "graphql-tools": "^8.3.11", "handlebars": "^4.7.7", "haversine-distance": "^1.2.1", + "languagedetect": "^2.0.0", "lodash": "^4.17.21", "node-cache": "^5.1.2", "node-schedule": "^2.1.1", @@ -16143,6 +16144,14 @@ "graceful-fs": "^4.1.11" } }, + "node_modules/languagedetect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/languagedetect/-/languagedetect-2.0.0.tgz", + "integrity": "sha512-AZb/liiQ+6ZoTj4f1J0aE6OkzhCo8fyH+tuSaPfSo8YHCWLFJrdSixhtO2TYdIkjcDQNaR4RmGaV2A5FJklDMQ==", + "engines": { + "node": ">= 0.4.8" + } + }, "node_modules/left-pad": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", @@ -34997,6 +35006,11 @@ "graceful-fs": "^4.1.11" } }, + "languagedetect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/languagedetect/-/languagedetect-2.0.0.tgz", + "integrity": "sha512-AZb/liiQ+6ZoTj4f1J0aE6OkzhCo8fyH+tuSaPfSo8YHCWLFJrdSixhtO2TYdIkjcDQNaR4RmGaV2A5FJklDMQ==" + }, "left-pad": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", diff --git a/package.json b/package.json index 158f87735..4959b0e2a 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "processor-start": "node -r dotenv-expand/config lib/processor.js", "query-node-start": "NODE_ENV=production patch-package --patch-dir assets/patches && squid-graphql-server --subscriptions", "auth-server-start": "node lib/auth-server/index.js", + "recommendations:setup": "node lib/scripts/setupRecombee.js", "interactions-server-start": "node lib/interactions-server/index.js", "postinstall": "patch-package --patch-dir assets/patches", "mail-scheduler": "npx ts-node ./src/mail-scheduler/index.ts", @@ -69,6 +70,7 @@ "graphql-tools": "^8.3.11", "handlebars": "^4.7.7", "haversine-distance": "^1.2.1", + "languagedetect": "^2.0.0", "lodash": "^4.17.21", "node-cache": "^5.1.2", "node-schedule": "^2.1.1", diff --git a/src/mappings/content/channel.ts b/src/mappings/content/channel.ts index 431681564..5f0b664d6 100644 --- a/src/mappings/content/channel.ts +++ b/src/mappings/content/channel.ts @@ -117,7 +117,6 @@ export async function processChannelCreatedEvent({ await processChannelMetadata(overlay, block, channel, metadata, dataObjects) } } - recommendationServiceManager.scheduleChannelUpsert(channel as Channel) if (ownerMember) { ownerMember.totalChannelsCreated += 1 @@ -163,7 +162,6 @@ export async function processChannelUpdatedEvent({ } else { channelMetadataUpdate = deserializeMetadata(ChannelMetadata, channelUpdateParameters.newMeta) } - recommendationServiceManager.scheduleChannelUpsert(channel as Channel) await processChannelMetadata( overlay, block, diff --git a/src/mappings/content/video.ts b/src/mappings/content/video.ts index 60ddb90ea..db15a02e4 100644 --- a/src/mappings/content/video.ts +++ b/src/mappings/content/video.ts @@ -133,7 +133,7 @@ export async function processVideoCreatedEvent({ channelId: channel.id, }) await notifyChannelFollowers(overlay, channel.id, notificationData, eventEntity) - recommendationServiceManager.scheduleVideoUpsert(video as Video) + recommendationServiceManager.scheduleVideoUpsert(video as Video, channel as Channel) if (autoIssueNft) { await processNft(overlay, block, indexInBlock, extrinsicHash, video, contentActor, autoIssueNft) } @@ -150,6 +150,10 @@ export async function processVideoUpdatedEvent({ }: EventHandlerContext<'Content.VideoUpdated'>): Promise { const { newMeta, autoIssueNft } = contentUpdateParameters const video = await overlay.getRepository(Video).getByIdOrFail(contentId.toString()) + let channel + if (video.channelId) { + channel = await overlay.getRepository(Channel).getByIdOrFail(video.channelId) + } const appAction = newMeta && deserializeMetadata(AppAction, newMeta, { skipWarning: true }) @@ -180,7 +184,10 @@ export async function processVideoUpdatedEvent({ ) } - recommendationServiceManager.scheduleVideoUpsert(video as Video) + if (channel && video) { + recommendationServiceManager.scheduleVideoUpsert(video as Video, channel as Channel) + } + if (autoIssueNft) { await processNft(overlay, block, indexInBlock, extrinsicHash, video, contentActor, autoIssueNft) } diff --git a/src/scripts/setupRecombee.ts b/src/scripts/setupRecombee.ts index cec0a3b5c..5d5546f9a 100644 --- a/src/scripts/setupRecombee.ts +++ b/src/scripts/setupRecombee.ts @@ -1,5 +1,5 @@ import { ApiClient, requests } from 'recombee-api-client' -import { RSChannel, RSVideo } from '../utils/RecommendationServiceManager' +import { RSVideo } from '../utils/RecommendationServiceManager' import dotenv from 'dotenv' type RecombeePropTypes = @@ -12,16 +12,14 @@ type RecombeePropTypes = | 'image' | 'imageList' -type JoinedItemProps = keyof RSChannel | keyof RSVideo +type JoinedItemProps = keyof RSVideo const itemPropToType: Record = { - follows_num: 'int', - total_videos_created: 'int', title: 'string', + channel_title: 'string', timestamp: 'timestamp', language: 'string', - description: 'string', - type: 'string', + channel_description: 'string', reactions_count: 'int', category_id: 'string', comments_count: 'int', @@ -54,13 +52,13 @@ async function main() { ) // setup segments - const segmentsReqs = [ - new requests.CreateManualReqlSegmentation('item-categories', 'items'), - new requests.AddManualReqlSegment('item-categories', 'video', '\'itemId\' ~ ".*-video$"'), - new requests.AddManualReqlSegment('item-categories', 'channel', '\'itemId\' ~ ".*-channel"'), - ] + const segmentsReqs = new requests.CreatePropertyBasedSegmentation( + 'channel-segmentation', + 'items', + 'channel_id' + ) - const res = await client.send(new requests.Batch([...itemPropertiesReqs, ...segmentsReqs])) + const res = await client.send(new requests.Batch([...itemPropertiesReqs, segmentsReqs])) const failedRequests = res.filter((req) => req.code === 400) if (failedRequests.length) { diff --git a/src/server-extension/resolvers/ChannelsResolver/index.ts b/src/server-extension/resolvers/ChannelsResolver/index.ts index 1d5914e87..a0f8f6120 100644 --- a/src/server-extension/resolvers/ChannelsResolver/index.ts +++ b/src/server-extension/resolvers/ChannelsResolver/index.ts @@ -62,6 +62,13 @@ export class ChannelsResolver { // Set by depenency injection constructor(private em: () => Promise) {} + // @Query() + // async searchChannels( + // @Args() args: ExtendedChannelsArgs, + // @Info() info: GraphQLResolveInfo, + // @Ctx() ctx: Context + // ) {} + @Query(() => [ExtendedChannel]) async extendedChannels( @Args() args: ExtendedChannelsArgs, diff --git a/src/server-extension/resolvers/baseTypes.ts b/src/server-extension/resolvers/baseTypes.ts index e246bc931..b725f822e 100644 --- a/src/server-extension/resolvers/baseTypes.ts +++ b/src/server-extension/resolvers/baseTypes.ts @@ -65,6 +65,14 @@ export class RecommendedVideosQuery { @Field(() => String, { nullable: false }) recommId!: string @Field(() => [Video]) video: Video[] } + +@ObjectType() +export class RecommendedChannelsQuery { + @Field(() => Int, { nullable: true }) numberNextRecommsCalls?: number + @Field(() => String, { nullable: false }) recommId!: string + @Field(() => [Channel]) video: Channel[] +} + export const OwnedNftWhereInput = new GraphQLScalarType({ name: 'OwnedNftWhereInput', }) diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 3954387bf..830e8939c 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -17,16 +17,10 @@ export type RSVideo = { reactions_count: number views_num: number channel_id?: string - type: 'video' + channel_title?: string + channel_description?: string } & Required> -export type RSChannel = { - timestamp: Date - follows_num: number - total_videos_created: number - type: 'channel' -} & Pick - type RSUser = Pick type CommonOptions = { @@ -68,7 +62,7 @@ export class RecommendationServiceManager { ) } - scheduleVideoUpsert(video: Video) { + scheduleVideoUpsert(video: Video, channel: Channel) { // for dev env sync only up to 20k videos if (!this._enabled || (isDevEnv && Number(video.id) > 20_000)) { return @@ -80,14 +74,13 @@ export class RecommendationServiceManager { channel_id: video.channelId ?? undefined, comments_count: video.commentsCount, duration: video.duration, - language: languageText ? predictLanguage(languageText) : video.language, + language: predictLanguage(languageText) ?? video.language, reactions_count: video.reactionsCount, timestamp: new Date(video.createdAt), title: video.title, views_num: video.viewsNum, - // recombee only offers single items table, so it would be good to have type - // in case we decide to add new type in the future, like NFT - type: 'video', + channel_description: channel.description ?? undefined, + channel_title: channel.title ?? undefined, } const request = new ClientRequests.SetItemValues(`${video.id}-video`, actionObject, { @@ -101,29 +94,6 @@ export class RecommendationServiceManager { this._queue.push(actionObject) } - scheduleChannelUpsert(channel: Channel) { - // for dev env sync only up to 20k channels - if (!this._enabled || (isDevEnv && Number(channel.id) > 20_000)) { - return - } - const languageText = (channel.title ?? '') + (channel.description ?? '') - - const actionObject: RSChannel = { - language: languageText ? predictLanguage(languageText) : channel.language, - description: channel.description, - title: channel.title, - timestamp: channel.createdAt, - total_videos_created: channel.totalVideosCreated, - follows_num: channel.followsNum, - type: 'channel', - } - - const request = new ClientRequests.SetItemValues(`${channel.id}-channel`, actionObject, { - cascadeCreate: true, - }) - this._queue.push(request) - } - scheduleChannelDeletion(channelId: string) { const actionObject = new ClientRequests.DeleteItem(`${channelId}-channel`) this._queue.push(actionObject) diff --git a/src/utils/language.ts b/src/utils/language.ts index 5fc018069..c1bdd2648 100644 --- a/src/utils/language.ts +++ b/src/utils/language.ts @@ -16,7 +16,7 @@ const lngDetector = new LanguageDetect() lngDetector.setLanguageType('iso2') // Example usage -export const predictLanguage = (text: string) => { +export const predictLanguage = (text: string): string | undefined => { const cleanedText = cleanString(text) - return lngDetector.detect(cleanedText, 1)[0][0] + return lngDetector.detect(cleanedText, 1)[0]?.[0] } From aaba1f4298a168f686f2bac025476c8f32be882a Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 25 Mar 2024 15:03:01 +0100 Subject: [PATCH 42/49] Setup mongodb for interactions --- .env | 1 + docker-compose.yml | 24 +- package-lock.json | 642 +++++++++++++++++++++- package.json | 1 + src/interactions-server/interactionsEm.ts | 41 ++ 5 files changed, 699 insertions(+), 10 deletions(-) create mode 100644 src/interactions-server/interactionsEm.ts diff --git a/.env b/.env index 56cb3f455..135762b5f 100644 --- a/.env +++ b/.env @@ -9,6 +9,7 @@ DB_PASS=squid DB_ADMIN_USER=admin DB_ADMIN_PASS=admin DB_PORT=23798 +INTERACTIONS_DB_PORT=23799 # Processor service prometheus port PROCESSOR_PROMETHEUS_PORT=3337 diff --git a/docker-compose.yml b/docker-compose.yml index 293b3c237..8d71936bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,10 +17,25 @@ services: - orion_db_data:/var/lib/postgresql/data - ./db/postgres.conf:/etc/postgresql/postgresql.conf + interactions_db: + image: mongo:latest + container_name: interactions_db + hostname: interactions_db + restart: unless-stopped + shm_size: 1g + command: ['mongod', '--port', '${INTERACTIONS_DB_PORT}'] + ports: + - '${INTERACTIONS_DB_PORT}:${INTERACTIONS_DB_PORT}' + volumes: + - interactions_db_data:/data/db + environment: + MONGO_INITDB_ROOT_USERNAME: squid + MONGO_INITDB_ROOT_PASSWORD: squid + orion_processor: container_name: orion_processor hostname: orion_processor - image: node:14 + image: node:18 restart: unless-stopped env_file: - .env @@ -40,7 +55,7 @@ services: orion_graphql-server: container_name: orion_graphql-server hostname: orion_graphql-server - image: node:14 + image: node:18 restart: unless-stopped env_file: - .env @@ -61,7 +76,7 @@ services: orion_auth-api: container_name: orion_auth-api hostname: orion_auth-api - image: node:14 + image: node:18 restart: unless-stopped env_file: - .env @@ -82,7 +97,7 @@ services: orion_interations-api: container_name: orion_interations-api hostname: orion_interations-api - image: node:14 + image: node:18 restart: unless-stopped env_file: - .env @@ -102,6 +117,7 @@ services: volumes: orion_db_data: + interactions_db_data: networks: default: diff --git a/package-lock.json b/package-lock.json index 23223828d..3d0e10154 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,6 +37,7 @@ "haversine-distance": "^1.2.1", "languagedetect": "^2.0.0", "lodash": "^4.17.21", + "mongoose": "^8.2.3", "node-cache": "^5.1.2", "node-schedule": "^2.1.1", "p-limit": "3.1.0", @@ -3657,6 +3658,14 @@ "node": ">=8" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz", + "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, "node_modules/@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", @@ -6778,6 +6787,11 @@ "vfile": "*" } }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + }, "node_modules/@types/websocket": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz", @@ -6786,6 +6800,17 @@ "@types/node": "*" } }, + "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==", + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, "node_modules/@types/ws": { "version": "8.5.4", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", @@ -8544,6 +8569,14 @@ "node-int64": "^0.4.0" } }, + "node_modules/bson": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.5.0.tgz", + "integrity": "sha512-DXf1BTAS8vKyR90BO4x5v3rKVarmkdkzwOrnYDFdjAY694ILNDkmA3uRh1xXJEl+C1DAh8XCvAQ+Gh3kzubtpg==", + "engines": { + "node": ">=16.20.1" + } + }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -13578,6 +13611,27 @@ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "optional": true, + "peer": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "optional": true, + "peer": true + }, "node_modules/ip-regex": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", @@ -15879,6 +15933,13 @@ "js-yaml": "bin/js-yaml.js" } }, + "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==", + "optional": true, + "peer": true + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -16114,6 +16175,14 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/kareem": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/keccak": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", @@ -16810,6 +16879,11 @@ "timers-ext": "^0.1.7" } }, + "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==" + }, "node_modules/mensch": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", @@ -17694,6 +17768,265 @@ "node": "*" } }, + "node_modules/mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "optional": true, + "peer": true, + "dependencies": { + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "optionalDependencies": { + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "optional": true, + "peer": true, + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "optional": true, + "peer": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/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==", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/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==", + "optional": true, + "peer": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb/node_modules/bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "optional": true, + "peer": true, + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/mongoose": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.3.tgz", + "integrity": "sha512-ZB8K8AgbVgLCcqjtmZMxaQBEztwEEZCtAIPMx2Q56Uo4WWKmwf5Nu/EEIFo8d/17P946X0z6xzxwIqCxUMKxrA==", + "dependencies": { + "bson": "^6.2.0", + "kareem": "2.5.1", + "mongodb": "6.3.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "engines": { + "node": ">=16.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/mongoose/node_modules/mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongoose/node_modules/mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "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==" + }, + "node_modules/mongoose/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/mongoose/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==", + "engines": { + "node": ">=12" + } + }, + "node_modules/mongoose/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/mquery/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/mquery/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/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -19420,9 +19753,9 @@ } }, "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==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -20235,6 +20568,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -20332,6 +20670,17 @@ "slug": "bin/slug.js" } }, + "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==", + "optional": true, + "peer": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -20342,6 +20691,21 @@ "tslib": "^2.0.3" } }, + "node_modules/socks": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "optional": true, + "peer": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -20392,6 +20756,14 @@ "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==", "dev": true }, + "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==", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, "node_modules/spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", @@ -25222,6 +25594,14 @@ "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==" }, + "@mongodb-js/saslprep": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz", + "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==", + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, "@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", @@ -27774,6 +28154,11 @@ "vfile": "*" } }, + "@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + }, "@types/websocket": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz", @@ -27782,6 +28167,17 @@ "@types/node": "*" } }, + "@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==", + "optional": true, + "peer": true, + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, "@types/ws": { "version": "8.5.4", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", @@ -29065,6 +29461,11 @@ "node-int64": "^0.4.0" } }, + "bson": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.5.0.tgz", + "integrity": "sha512-DXf1BTAS8vKyR90BO4x5v3rKVarmkdkzwOrnYDFdjAY694ILNDkmA3uRh1xXJEl+C1DAh8XCvAQ+Gh3kzubtpg==" + }, "buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -32983,6 +33384,26 @@ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, + "ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "optional": true, + "peer": true, + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "optional": true, + "peer": true + } + } + }, "ip-regex": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", @@ -34789,6 +35210,13 @@ "argparse": "^2.0.1" } }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "optional": true, + "peer": true + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -34980,6 +35408,11 @@ "safe-buffer": "^5.0.1" } }, + "kareem": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==" + }, "keccak": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", @@ -35521,6 +35954,11 @@ "timers-ext": "^0.1.7" } }, + "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==" + }, "mensch": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", @@ -36283,6 +36721,167 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, + "mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "optional": true, + "peer": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "dependencies": { + "bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "optional": true, + "peer": true + } + } + }, + "mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "optional": true, + "peer": true, + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + }, + "dependencies": { + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "optional": true, + "peer": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "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==", + "optional": true, + "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==", + "optional": true, + "peer": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + } + } + }, + "mongoose": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.3.tgz", + "integrity": "sha512-ZB8K8AgbVgLCcqjtmZMxaQBEztwEEZCtAIPMx2Q56Uo4WWKmwf5Nu/EEIFo8d/17P946X0z6xzxwIqCxUMKxrA==", + "requires": { + "bson": "^6.2.0", + "kareem": "2.5.1", + "mongodb": "6.3.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "dependencies": { + "@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "requires": { + "@types/webidl-conversions": "*" + } + }, + "mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + } + }, + "mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "requires": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "requires": { + "punycode": "^2.3.0" + } + }, + "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==" + }, + "whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "requires": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + } + } + } + }, + "mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==" + }, + "mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "requires": { + "debug": "4.x" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -37651,9 +38250,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, "pvtsutils": { "version": "1.3.2", @@ -38277,6 +38876,11 @@ "object-inspect": "^1.9.0" } }, + "sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -38348,6 +38952,13 @@ "unicode": ">= 0.3.1" } }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "optional": true, + "peer": true + }, "snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -38358,6 +38969,17 @@ "tslib": "^2.0.3" } }, + "socks": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "optional": true, + "peer": true, + "requires": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + } + }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -38401,6 +39023,14 @@ "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==", "dev": true }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "requires": { + "memory-pager": "^1.0.2" + } + }, "spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", diff --git a/package.json b/package.json index 4959b0e2a..e990da712 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "haversine-distance": "^1.2.1", "languagedetect": "^2.0.0", "lodash": "^4.17.21", + "mongoose": "^8.2.3", "node-cache": "^5.1.2", "node-schedule": "^2.1.1", "p-limit": "3.1.0", diff --git a/src/interactions-server/interactionsEm.ts b/src/interactions-server/interactionsEm.ts new file mode 100644 index 000000000..fb6ad84b0 --- /dev/null +++ b/src/interactions-server/interactionsEm.ts @@ -0,0 +1,41 @@ +import mongoose from 'mongoose' +import { createLogger } from '@subsquid/logger' + +const interactionsEmLogger = createLogger('interactionsEm') + +async function initInteractionsDb() { + let instance: typeof mongoose | null = null + try { + interactionsEmLogger.info(`Initializing interactions database connection...`) + instance = await mongoose.connect( + `mongodb://${process.env.DB_NAME}:${process.env.DB_PASS}@interactions_db:${process.env.INTERACTIONS_DB_PORT}/interactions?authSource=admin`, + { + family: 4, + } + ) + interactionsEmLogger.info(`Connected to interactions database`) + } catch (e) { + interactionsEmLogger.error( + `Error during interactions database connection initialization: ${String(e)}` + ) + process.exit(-1) // Exit to trigger docker service restart an re-attempt to connect + } + return instance +} + +// eslint-disable-next-line no-void +void initInteractionsDb() + +const InteractionsModel = mongoose.model( + 'Interaction', + new mongoose.Schema( + { + type: String, + itemId: String, + timestamp: Date, + }, + { strict: false } + ) +) + +export { InteractionsModel } From 567c202b5eba1ca8c7a3c95f569e0d58227c3a79 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 26 Mar 2024 10:55:59 +0100 Subject: [PATCH 43/49] Save interactions to mongodb --- .../handlers/channelClicked.ts | 26 +++++++--- src/interactions-server/handlers/rateVideo.ts | 21 +++++--- .../handlers/videoClicked.ts | 19 +++++-- .../handlers/videoConsumed.ts | 12 ++++- .../handlers/videoPortion.ts | 19 +++++-- src/interactions-server/interactionsEm.ts | 49 ++++++++++++++----- src/scripts/setupRecombee.ts | 4 +- 7 files changed, 112 insertions(+), 38 deletions(-) diff --git a/src/interactions-server/handlers/channelClicked.ts b/src/interactions-server/handlers/channelClicked.ts index 3d6ab5cfc..9ce4e0a1b 100644 --- a/src/interactions-server/handlers/channelClicked.ts +++ b/src/interactions-server/handlers/channelClicked.ts @@ -1,9 +1,13 @@ import express from 'express' import { BadRequestError, TooManyRequestsError, UnauthorizedError } from '../errors' import { singleClickLimiter } from '../interactionsLimiter' -import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' +import { + RecommendationServiceManager, + recommendationServiceManager, +} from '../../utils/RecommendationServiceManager' import { components } from '../generated/api-types' import { AuthContext } from '../../utils/auth' +import { DetailViewModel } from '../interactionsEm' type ReqParams = Record type ResBody = @@ -19,7 +23,7 @@ export const channelClicked = async ( ) => { try { const { authContext: session } = res.locals - const { itemId, duration, recommId } = req.body + const { itemId, duration } = req.body if (!session || !session.userId || session.expiry.getTime() < Date.now()) { throw new UnauthorizedError('Session unavailable or expired') @@ -35,12 +39,20 @@ export const channelClicked = async ( throw new TooManyRequestsError('Too many requests') } - recommendationServiceManager.scheduleClickEvent( - `${itemId}-channel`, - session.userId, + const row = new DetailViewModel({ + itemId: `${itemId}-channel`, + timestamp: new Date(), + userId: recommendationServiceManager.mapUserId(session.userId), duration, - recommId - ) + }) + await row.save() + + // recommendationServiceManager.scheduleClickEvent( + // `${itemId}-channel`, + // session.userId, + // duration, + // recommId + // ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/rateVideo.ts b/src/interactions-server/handlers/rateVideo.ts index 23d330d63..b7f319b18 100644 --- a/src/interactions-server/handlers/rateVideo.ts +++ b/src/interactions-server/handlers/rateVideo.ts @@ -3,6 +3,7 @@ import { BadRequestError, UnauthorizedError } from '../errors' import { components } from '../generated/api-types' import { AuthContext } from '../../utils/auth' import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' +import { RatingModel } from '../interactionsEm' type ReqParams = Record type ResBody = @@ -18,7 +19,7 @@ export const rateVideo: ( ) => Promise = async (req, res, next) => { try { const { authContext: session } = res.locals - const { itemId, rating, recommId } = req.body + const { itemId, rating } = req.body if (!session || !session.userId || session.expiry.getTime() < Date.now()) { throw new UnauthorizedError('Session unavailable or expired') @@ -28,12 +29,20 @@ export const rateVideo: ( throw new BadRequestError('Request missing parameters') } - recommendationServiceManager.scheduleItemRating( - `${itemId}-video`, - session.userId, + const row = new RatingModel({ + itemId: `${itemId}-video`, + timestamp: new Date(), + userId: recommendationServiceManager.mapUserId(session.userId), rating, - recommId - ) + }) + await row.save() + + // recommendationServiceManager.scheduleItemRating( + // `${itemId}-video`, + // session.userId, + // rating, + // recommId + // ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoClicked.ts b/src/interactions-server/handlers/videoClicked.ts index b040654df..036ee01d7 100644 --- a/src/interactions-server/handlers/videoClicked.ts +++ b/src/interactions-server/handlers/videoClicked.ts @@ -4,6 +4,7 @@ import { components } from '../generated/api-types' import { AuthContext } from '../../utils/auth' import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' import { singleClickLimiter } from '../interactionsLimiter' +import { DetailViewModel } from '../interactionsEm' type ReqParams = Record type ResBody = @@ -35,12 +36,20 @@ export const videoClicked: ( throw new TooManyRequestsError('Too many requests') } - recommendationServiceManager.scheduleClickEvent( - `${itemId}-video`, - session.userId, + const row = new DetailViewModel({ + itemId: `${itemId}-video`, + timestamp: new Date(), + userId: recommendationServiceManager.mapUserId(session.userId), duration, - recommId - ) + }) + await row.save() + + // recommendationServiceManager.scheduleClickEvent( + // `${itemId}-video`, + // session.userId, + // duration, + // recommId + // ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoConsumed.ts b/src/interactions-server/handlers/videoConsumed.ts index 77e788c69..e69384f7d 100644 --- a/src/interactions-server/handlers/videoConsumed.ts +++ b/src/interactions-server/handlers/videoConsumed.ts @@ -4,6 +4,7 @@ import { components } from '../generated/api-types' import { AuthContext } from '../../utils/auth' import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' import { singlePurchaseLimiter } from '../interactionsLimiter' +import { PurchaseModel, RatingModel } from '../interactionsEm' type ReqParams = Record type ResBody = @@ -19,7 +20,7 @@ export const videoConsumed: ( ) => Promise = async (req, res, next) => { try { const { authContext: session } = res.locals - const { itemId, recommId } = req.body + const { itemId } = req.body if (!session || !session.userId || session.expiry.getTime() < Date.now()) { throw new UnauthorizedError('Session unavailable or expired') } @@ -34,7 +35,14 @@ export const videoConsumed: ( throw new TooManyRequestsError('Too many requests') } - recommendationServiceManager.scheduleItemConsumed(`${itemId}-video`, session.userId, recommId) + const row = new PurchaseModel({ + itemId: `${itemId}-video`, + timestamp: new Date(), + userId: recommendationServiceManager.mapUserId(session.userId), + }) + await row.save() + + // recommendationServiceManager.scheduleItemConsumed(`${itemId}-video`, session.userId, recommId) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/handlers/videoPortion.ts b/src/interactions-server/handlers/videoPortion.ts index da628cfdb..2cbf22602 100644 --- a/src/interactions-server/handlers/videoPortion.ts +++ b/src/interactions-server/handlers/videoPortion.ts @@ -3,6 +3,7 @@ import { BadRequestError, UnauthorizedError } from '../errors' import { components } from '../generated/api-types' import { AuthContext } from '../../utils/auth' import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' +import { PurchaseModel, VideoPortionModel } from '../interactionsEm' type ReqParams = Record type ResBody = @@ -28,12 +29,20 @@ export const videoPortion: ( throw new BadRequestError('Request missing parameters') } - recommendationServiceManager.scheduleViewPortion( - `${itemId}-video`, - session.userId, + const row = new VideoPortionModel({ + itemId: `${itemId}-video`, + timestamp: new Date(), + userId: recommendationServiceManager.mapUserId(session.userId), portion, - recommId - ) + }) + await row.save() + + // recommendationServiceManager.scheduleViewPortion( + // `${itemId}-video`, + // session.userId, + // portion, + // recommId + // ) res.status(200).json({ success: true }) } catch (e) { diff --git a/src/interactions-server/interactionsEm.ts b/src/interactions-server/interactionsEm.ts index fb6ad84b0..b85eb353c 100644 --- a/src/interactions-server/interactionsEm.ts +++ b/src/interactions-server/interactionsEm.ts @@ -26,16 +26,43 @@ async function initInteractionsDb() { // eslint-disable-next-line no-void void initInteractionsDb() -const InteractionsModel = mongoose.model( - 'Interaction', - new mongoose.Schema( - { - type: String, - itemId: String, - timestamp: Date, - }, - { strict: false } - ) +const PurchaseModel = mongoose.model( + 'Purchase', + new mongoose.Schema({ + itemId: String, + timestamp: Date, + userId: String, + }) ) -export { InteractionsModel } +const RatingModel = mongoose.model( + 'Rating', + new mongoose.Schema({ + itemId: String, + timestamp: Date, + rating: Number, + userId: String, + }) +) + +const DetailViewModel = mongoose.model( + 'DetailView', + new mongoose.Schema({ + itemId: String, + timestamp: Date, + duration: Number, + userId: String, + }) +) + +const VideoPortionModel = mongoose.model( + 'VideoPortion', + new mongoose.Schema({ + itemId: String, + timestamp: Date, + portion: Number, + userId: String, + }) +) + +export { PurchaseModel, RatingModel, DetailViewModel, VideoPortionModel } diff --git a/src/scripts/setupRecombee.ts b/src/scripts/setupRecombee.ts index 5d5546f9a..64dff5c48 100644 --- a/src/scripts/setupRecombee.ts +++ b/src/scripts/setupRecombee.ts @@ -35,8 +35,8 @@ async function main() { !process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY || !process.env.RECOMMENDATION_SERVICE_DATABASE ) { - console.error('RecommendationServiceManager initalized without required variables') - throw new Error() + console.error('Missing required variables for setting up Recombee. Skipping...') + process.exit(1) } const client = new ApiClient( From ee8755da71094d33143c899458ca0e66d7e34777 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Tue, 26 Mar 2024 12:34:21 +0100 Subject: [PATCH 44/49] Avoid running interactions-api container if env vars are not present --- .env | 8 ++++++-- Makefile | 15 +++++++++++---- docker-compose.yml | 8 +++++--- src/interactions-server/index.ts | 2 ++ src/interactions-server/interactionsEm.ts | 5 +---- src/utils/RecommendationServiceManager.ts | 11 ++++++++--- 6 files changed, 33 insertions(+), 16 deletions(-) diff --git a/.env b/.env index 135762b5f..62dfe4b3a 100644 --- a/.env +++ b/.env @@ -19,10 +19,14 @@ GQL_PORT=4350 AUTH_API_PORT=4074 # Recommendation service config INTERACTIONS_API_PORT=4075 -RECOMMENDATION_SERVICE_PRIVATE_KEY= +# Set private key and database name for recommendation service +# If you set only private key, Orion will support only local interactions service (for now at least) +RECOMMENDATION_SERVICE_PRIVATE_KEY=save-interactions-locally +# jsgenesis-dev +RECOMMENDATION_SERVICE_DATABASE= # this will disable export block check for recommendation system - sync all data from the beginning FORCE_RECOMMENDATION_DATA_SYNC=false -RECOMMENDATION_SERVICE_DATABASE=jsgenesis-dev + # Archive gateway url ARCHIVE_GATEWAY_URL=${CUSTOM_ARCHIVE_GATEWAY_URL:-http://localhost:8888/graphql} diff --git a/Makefile b/Makefile index db839b82f..41e17ef60 100644 --- a/Makefile +++ b/Makefile @@ -39,17 +39,24 @@ typegen: prepare: install codegen build setup-recommendations up-squid: - @docker network create joystream_default || true - @docker-compose up -d + @set -a; \ + source .env; \ + set +a; \ + docker network create joystream_default || true; \ + if [ -z "$$RECOMMENDATION_SERVICE_PRIVATE_KEY" ] && [ -z "$$RECOMMENDATION_SERVICE_DATABASE"]; then \ + docker-compose up -d; \ + else \ + docker-compose --profile interactions up -d; \ + fi \ up-archive: - @docker network create joystream_default || true + @docker network create joystream_default || truee @docker-compose -f archive/docker-compose.yml up -d up: up-archive up-squid down-squid: - @docker-compose down -v + @docker-compose down -v --remove-orphans down-archive: @docker-compose -f archive/docker-compose.yml down -v diff --git a/docker-compose.yml b/docker-compose.yml index 8d71936bf..136a41888 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,6 +21,7 @@ services: image: mongo:latest container_name: interactions_db hostname: interactions_db + profiles: ['interactions'] restart: unless-stopped shm_size: 1g command: ['mongod', '--port', '${INTERACTIONS_DB_PORT}'] @@ -94,9 +95,10 @@ services: ports: - '${AUTH_API_PORT}:${AUTH_API_PORT}' - orion_interations-api: - container_name: orion_interations-api - hostname: orion_interations-api + orion_interactions-api: + container_name: orion_interactions-api + hostname: orion_interactions-api + profiles: ['interactions'] image: node:18 restart: unless-stopped env_file: diff --git a/src/interactions-server/index.ts b/src/interactions-server/index.ts index d76943a64..6d38dd760 100644 --- a/src/interactions-server/index.ts +++ b/src/interactions-server/index.ts @@ -12,9 +12,11 @@ import swaggerUi, { JsonObject } from 'swagger-ui-express' import YAML from 'js-yaml' import fs from 'fs' import { recommendationServiceManager } from '../utils/RecommendationServiceManager' +import { initInteractionsDb } from './interactionsEm' recommendationServiceManager.enableSync() recommendationServiceManager.initBatchLoop() +initInteractionsDb().then(() => undefined) export const logger = createLogger('interactions-api') diff --git a/src/interactions-server/interactionsEm.ts b/src/interactions-server/interactionsEm.ts index b85eb353c..aad13f2a6 100644 --- a/src/interactions-server/interactionsEm.ts +++ b/src/interactions-server/interactionsEm.ts @@ -3,7 +3,7 @@ import { createLogger } from '@subsquid/logger' const interactionsEmLogger = createLogger('interactionsEm') -async function initInteractionsDb() { +export async function initInteractionsDb() { let instance: typeof mongoose | null = null try { interactionsEmLogger.info(`Initializing interactions database connection...`) @@ -23,9 +23,6 @@ async function initInteractionsDb() { return instance } -// eslint-disable-next-line no-void -void initInteractionsDb() - const PurchaseModel = mongoose.model( 'Purchase', new mongoose.Schema({ diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 830e8939c..18dd08fa4 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -46,7 +46,7 @@ export class RecommendationServiceManager { !process.env.RECOMMENDATION_SERVICE_DATABASE ) { recommendationServiceLogger.error( - 'RecommendationServiceManager initalized without required variables' + 'RecommendationServiceManager initialized without required variables' ) return } @@ -212,7 +212,7 @@ export class RecommendationServiceManager { } enableSync() { - this._enabled = true + this._enabled = !!this.client } private async sendBatchRequest(requests: ClientRequests.Request[]) { @@ -348,11 +348,16 @@ export class RecommendationServiceManager { } initBatchLoop() { + if (!this.client) { + // Avoid initialization if client is not available + return + } if (this._loopInitialized) { throw new Error('update loop was initialized more than once') } + recommendationServiceLogger.info('Initializing interactions update loop...') this._loopInitialized = true - this._batchUpdateLoop(30 * 1_000) // 5mins + this._batchUpdateLoop(30 * 1_000) // 5 mins .then(() => { /* Do nothing */ }) From c99c599acfb53d698903d9ceeeeba8dd699ff5a1 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 8 Apr 2024 21:01:57 +0200 Subject: [PATCH 45/49] Post merge fixes and self review fixes --- package-lock.json | 8878 ++++++----------- src/interactions-server/openapi.yml | 4 +- .../resolvers/ChannelsResolver/index.ts | 7 - .../resolvers/VideosResolver/index.ts | 49 +- src/utils/RecommendationServiceManager.ts | 39 +- 5 files changed, 3217 insertions(+), 5760 deletions(-) diff --git a/package-lock.json b/package-lock.json index aea4e4852..5d0cd846c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,11 +49,14 @@ "handlebars": "^4.7.7", "haversine-distance": "^1.2.1", "lodash": "^4.17.21", + "mongoose": "^8.2.3", "node-cache": "^5.1.2", "node-schedule": "^2.1.1", "p-limit": "3.1.0", "patch-package": "^6.5.0", "pg": "8.8.0", + "recombee-api-client": "^4.1.5", + "rolling-rate-limiter": "^0.4.2", "swagger-ui-express": "^4.6.2", "tinyld": "^1.3.4", "type-graphql": "^1.2.0-rc.1", @@ -152,8 +155,7 @@ }, "network-tests/node_modules/@joystream/types": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@joystream/types/-/types-4.1.0.tgz", - "integrity": "sha512-1/lcYJr3+tJSzahAI6AJ0Fj/sde3dHxUY8CoZFZOFmbLLpVEmUr1TfU7Nxq+uo3WQVAdmxNuMYZcq9Opwo4h3w==", + "license": "GPL-3.0-only", "dependencies": { "@polkadot/api": "8.9.1", "@polkadot/keyring": "9.5.1", @@ -170,26 +172,23 @@ }, "network-tests/node_modules/dotenv": { "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "license": "BSD-2-Clause", "engines": { "node": ">=10" } }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -200,8 +199,7 @@ }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", - "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", + "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.6", @@ -211,8 +209,7 @@ }, "node_modules/@apollo/client": { "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.7.tgz", - "integrity": "sha512-OEEwt55bkFhqihCT5d75KUxZt50JZ9MuIYwG7VZlyPPIAb9K+qzVWlXWlf3tB5DaV43yXkUSLQfNpdIBFOB55Q==", + "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/caches": "^1.0.0", @@ -253,9 +250,8 @@ }, "node_modules/@apollo/protobufjs": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -277,16 +273,14 @@ }, "node_modules/@apollo/usage-reporting-protobuf": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", - "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", + "license": "MIT", "dependencies": { "@apollo/protobufjs": "1.2.7" } }, "node_modules/@apollo/utils.dropunuseddefinitions": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", + "license": "MIT", "engines": { "node": ">=12.13.0" }, @@ -296,8 +290,7 @@ }, "node_modules/@apollo/utils.keyvadapter": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz", - "integrity": "sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA==", + "license": "MIT", "dependencies": { "@apollo/utils.keyvaluecache": "^1.0.1", "dataloader": "^2.1.0", @@ -306,8 +299,7 @@ }, "node_modules/@apollo/utils.keyvaluecache": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", + "license": "MIT", "dependencies": { "@apollo/utils.logger": "^1.0.0", "lru-cache": "7.10.1 - 7.13.1" @@ -315,21 +307,18 @@ }, "node_modules/@apollo/utils.keyvaluecache/node_modules/lru-cache": { "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/@apollo/utils.logger": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==" + "license": "MIT" }, "node_modules/@apollo/utils.printwithreducedwhitespace": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", + "license": "MIT", "engines": { "node": ">=12.13.0" }, @@ -339,8 +328,7 @@ }, "node_modules/@apollo/utils.removealiases": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", + "license": "MIT", "engines": { "node": ">=12.13.0" }, @@ -350,8 +338,7 @@ }, "node_modules/@apollo/utils.sortast": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", + "license": "MIT", "dependencies": { "lodash.sortby": "^4.7.0" }, @@ -364,8 +351,7 @@ }, "node_modules/@apollo/utils.stripsensitiveliterals": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", + "license": "MIT", "engines": { "node": ">=12.13.0" }, @@ -375,8 +361,7 @@ }, "node_modules/@apollo/utils.usagereporting": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", + "license": "MIT", "dependencies": { "@apollo/usage-reporting-protobuf": "^4.0.0", "@apollo/utils.dropunuseddefinitions": "^1.1.0", @@ -394,8 +379,7 @@ }, "node_modules/@apollographql/apollo-tools": { "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", + "license": "MIT", "engines": { "node": ">=8", "npm": ">=6" @@ -406,17 +390,15 @@ }, "node_modules/@apollographql/graphql-playground-html": { "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", + "license": "MIT", "dependencies": { "xss": "^1.0.8" } }, "node_modules/@ardatan/aggregate-error": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz", - "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "~2.0.1" }, @@ -426,15 +408,13 @@ }, "node_modules/@ardatan/aggregate-error/node_modules/tslib": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@ardatan/relay-compiler": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", - "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.14.0", "@babel/generator": "^7.14.0", @@ -463,9 +443,8 @@ }, "node_modules/@ardatan/relay-compiler/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -478,18 +457,16 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@ardatan/relay-compiler/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -498,9 +475,8 @@ }, "node_modules/@ardatan/relay-compiler/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -510,24 +486,21 @@ }, "node_modules/@ardatan/relay-compiler/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@ardatan/relay-compiler/node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ardatan/relay-compiler/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -538,9 +511,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -550,9 +522,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -565,9 +536,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -577,9 +547,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -591,15 +560,13 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@ardatan/relay-compiler/node_modules/yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -619,9 +586,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -632,9 +598,8 @@ }, "node_modules/@ardatan/sync-fetch": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", - "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", "dev": true, + "license": "MIT", "dependencies": { "node-fetch": "^2.6.1" }, @@ -644,9 +609,8 @@ }, "node_modules/@babel/code-frame": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -657,9 +621,8 @@ }, "node_modules/@babel/code-frame/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -671,27 +634,24 @@ }, "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/compat-data": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", @@ -719,9 +679,8 @@ }, "node_modules/@babel/generator": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", @@ -734,9 +693,8 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -746,9 +704,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -762,9 +719,8 @@ }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", - "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -785,18 +741,16 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -807,9 +761,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -819,9 +772,8 @@ }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.23.0" }, @@ -831,9 +783,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -843,9 +794,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -862,9 +812,8 @@ }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -874,18 +823,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-member-expression-to-functions": "^7.22.15", @@ -900,9 +847,8 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -912,9 +858,8 @@ }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -924,9 +869,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -936,36 +880,32 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.0", @@ -977,9 +917,8 @@ }, "node_modules/@babel/highlight": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -991,9 +930,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -1005,18 +943,16 @@ }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/parser": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -1026,10 +962,8 @@ }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1043,10 +977,8 @@ }, "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.20.5", "@babel/helper-compilation-targets": "^7.20.7", @@ -1063,9 +995,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -1075,9 +1006,8 @@ }, "node_modules/@babel/plugin-syntax-flow": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", - "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1090,9 +1020,8 @@ }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1105,9 +1034,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1120,9 +1048,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1132,9 +1059,8 @@ }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1147,9 +1073,8 @@ }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1162,9 +1087,8 @@ }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1177,9 +1101,8 @@ }, "node_modules/@babel/plugin-transform-classes": { "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -1199,9 +1122,8 @@ }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/template": "^7.22.15" @@ -1215,9 +1137,8 @@ }, "node_modules/@babel/plugin-transform-destructuring": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1230,9 +1151,8 @@ }, "node_modules/@babel/plugin-transform-flow-strip-types": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", - "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-flow": "^7.23.3" @@ -1246,9 +1166,8 @@ }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1262,9 +1181,8 @@ }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-function-name": "^7.23.0", @@ -1279,9 +1197,8 @@ }, "node_modules/@babel/plugin-transform-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1294,9 +1211,8 @@ }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1309,9 +1225,8 @@ }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", @@ -1326,9 +1241,8 @@ }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.20" @@ -1342,9 +1256,8 @@ }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1357,9 +1270,8 @@ }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1372,9 +1284,8 @@ }, "node_modules/@babel/plugin-transform-react-display-name": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", - "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1387,9 +1298,8 @@ }, "node_modules/@babel/plugin-transform-react-jsx": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", - "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-module-imports": "^7.22.15", @@ -1406,9 +1316,8 @@ }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1421,9 +1330,8 @@ }, "node_modules/@babel/plugin-transform-spread": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1437,9 +1345,8 @@ }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1452,8 +1359,7 @@ }, "node_modules/@babel/runtime": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1463,9 +1369,8 @@ }, "node_modules/@babel/template": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/parser": "^7.24.0", @@ -1477,9 +1382,8 @@ }, "node_modules/@babel/traverse": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.6", @@ -1498,9 +1402,8 @@ }, "node_modules/@babel/types": { "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -1512,9 +1415,8 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "devOptional": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -1524,9 +1426,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "devOptional": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1534,9 +1435,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -1549,18 +1449,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1581,9 +1479,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -1596,9 +1493,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -1608,17 +1504,15 @@ }, "node_modules/@eslint/js": { "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@ethereumjs/rlp": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", - "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "license": "MPL-2.0", "bin": { "rlp": "bin/rlp" }, @@ -1628,8 +1522,7 @@ }, "node_modules/@ethereumjs/util": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", - "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "license": "MPL-2.0", "dependencies": { "@ethereumjs/rlp": "^4.0.1", "ethereum-cryptography": "^2.0.0", @@ -1641,42 +1534,25 @@ }, "node_modules/@exodus/schemasafe": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@fastify/busboy": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@ffprobe-installer/darwin-arm64": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/darwin-arm64/-/darwin-arm64-5.0.1.tgz", - "integrity": "sha512-vwNCNjokH8hfkbl6m95zICHwkSzhEvDC3GVBcUp5HX8+4wsX10SP3B+bGur7XUzTIZ4cQpgJmEIAx6TUwRepMg==", "cpu": [ "arm64" ], "dev": true, "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@ffprobe-installer/darwin-x64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/darwin-x64/-/darwin-x64-5.0.0.tgz", - "integrity": "sha512-Zl0UkZ+wW/eyMKBPLTUCcNQch2VDnZz/cBn1DXv3YtCBVbYd9aYzGj4MImdxgWcoE0+GpbfbO6mKGwMq5HCm6A==", - "cpu": [ - "x64" - ], - "dev": true, - "hasInstallScript": true, + "license": "LGPL-2.1", "optional": true, "os": [ "darwin" @@ -1684,9 +1560,8 @@ }, "node_modules/@ffprobe-installer/ffprobe": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/ffprobe/-/ffprobe-1.4.1.tgz", - "integrity": "sha512-3WJvxU0f4d7IOZdzoVCAj9fYtiQNC6E0521FJFe9iP5Ej8auTXU7TsrUzIAG1CydeQI+BnM3vGog92SCcF9KtA==", "dev": true, + "license": "LGPL-2.1", "optionalDependencies": { "@ffprobe-installer/darwin-arm64": "5.0.1", "@ffprobe-installer/darwin-x64": "5.0.0", @@ -1698,93 +1573,10 @@ "@ffprobe-installer/win32-x64": "5.0.0" } }, - "node_modules/@ffprobe-installer/linux-arm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-arm/-/linux-arm-5.0.0.tgz", - "integrity": "sha512-mM1PPxP2UX5SUvhy0urcj5U8UolwbYgmnXA/eBWbW78k6N2Wk1COvcHYzOPs6c5yXXL6oshS2rZHU1kowigw7g==", - "cpu": [ - "arm" - ], - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@ffprobe-installer/linux-arm64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-arm64/-/linux-arm64-5.0.0.tgz", - "integrity": "sha512-IwFbzhe1UydR849YXLPP0RMpHgHXSuPO1kznaCHcU5FscFBV5gOZLkdD8e/xrcC8g/nhKqy0xMjn5kv6KkFQlQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@ffprobe-installer/linux-ia32": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-ia32/-/linux-ia32-5.0.0.tgz", - "integrity": "sha512-c3bWlWEDMST59SAZycVh0oyc2eNS/CxxeRjoNryGRgqcZX3EJWJJQL1rAXbpQOMLMi8to1RqnmMuwPJgLLjjUA==", - "cpu": [ - "ia32" - ], - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@ffprobe-installer/linux-x64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-x64/-/linux-x64-5.0.0.tgz", - "integrity": "sha512-zgLnWJFvMGCaw1txGtz84sMEQt6mQUzdw86ih9S/kZOWnp06Gj/ams/EXxEkAxgAACCVM6/O0mkDe/6biY5tgA==", - "cpu": [ - "x64" - ], - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@ffprobe-installer/win32-ia32": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/win32-ia32/-/win32-ia32-5.0.0.tgz", - "integrity": "sha512-NnDdAZD6ShFXzJeCkAFl2ZjAv7GcJWYudLA+0T/vjZwvskBop+sq1PGfdmVltfFDcdQiomoThRhn9Xiy9ZC71g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@ffprobe-installer/win32-x64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/win32-x64/-/win32-x64-5.0.0.tgz", - "integrity": "sha512-P4ZMRFxVMnfMsOyTfBM/+nkTodLeOUfXNPo+X1bKEWBiZxRErqX/IHS5sLA0yAH8XmtKZcL7Cu6M26ztGcQYxw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@graphql-codegen/add": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-2.0.2.tgz", - "integrity": "sha512-0X1ofeSvAjCNcLar2ZR1EOmm5dvyKJMFbgM+ySf1PaHyoi3yf/xRI2Du81ONzQ733Lhmn3KTX1VKybm/OB1Qtg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^1.18.2", "tslib": "~2.0.1" @@ -1795,9 +1587,8 @@ }, "node_modules/@graphql-codegen/add/node_modules/@graphql-codegen/plugin-helpers": { "version": "1.18.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz", - "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^7.9.1", "common-tags": "1.8.0", @@ -1811,15 +1602,13 @@ }, "node_modules/@graphql-codegen/add/node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/add/node_modules/@graphql-tools/utils": { "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1831,30 +1620,26 @@ }, "node_modules/@graphql-codegen/add/node_modules/@graphql-tools/utils/node_modules/tslib": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/add/node_modules/common-tags": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/@graphql-codegen/add/node_modules/tslib": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/cli": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-3.3.1.tgz", - "integrity": "sha512-4Es8Y9zFeT0Zx2qRL7L3qXDbbqvXK6aID+8v8lP6gaYD+uWx3Jd4Hsq5vxwVBR+6flm0BW/C85Qm0cvmT7O6LA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/generator": "^7.18.13", "@babel/template": "^7.18.10", @@ -1904,9 +1689,8 @@ }, "node_modules/@graphql-codegen/core": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-3.1.0.tgz", - "integrity": "sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^4.1.0", "@graphql-tools/schema": "^9.0.0", @@ -1919,15 +1703,13 @@ }, "node_modules/@graphql-codegen/core/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/import-types-preset": { "version": "1.18.6", - "resolved": "https://registry.npmjs.org/@graphql-codegen/import-types-preset/-/import-types-preset-1.18.6.tgz", - "integrity": "sha512-4G7LC/BHLxSdiGdkCkzugWTw2DZFvifP+mJ7z8idpjinzFnU45Y1e26XOqO6y/+145wwv6wMqG9zaykfCt3d0w==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/add": "^2.0.2", "@graphql-codegen/plugin-helpers": "^1.18.8", @@ -1940,9 +1722,8 @@ }, "node_modules/@graphql-codegen/import-types-preset/node_modules/@graphql-codegen/plugin-helpers": { "version": "1.18.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz", - "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^7.9.1", "common-tags": "1.8.0", @@ -1956,9 +1737,8 @@ }, "node_modules/@graphql-codegen/import-types-preset/node_modules/@graphql-tools/utils": { "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1970,30 +1750,26 @@ }, "node_modules/@graphql-codegen/import-types-preset/node_modules/@graphql-tools/utils/node_modules/tslib": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/import-types-preset/node_modules/common-tags": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/@graphql-codegen/import-types-preset/node_modules/tslib": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/plugin-helpers": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz", - "integrity": "sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -2008,15 +1784,13 @@ }, "node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/typescript": { "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-1.23.0.tgz", - "integrity": "sha512-ZfFgk5mGfuOy4kEpy+dcuvJMphigMfJ4AkiP1qWmWFufDW3Sg2yayTSNmzeFdcXMrWGgfNW2dKtuuTmbmQhS5g==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^1.18.8", "@graphql-codegen/visitor-plugin-common": "1.22.0", @@ -2029,9 +1803,8 @@ }, "node_modules/@graphql-codegen/typescript-document-nodes": { "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-document-nodes/-/typescript-document-nodes-2.3.13.tgz", - "integrity": "sha512-tiqk0+vUl82SBHr/XkxeezBJnUQuoIKgGS3VBdC2P2o5ZNPjkYeB0TmVPIYRHQM1pfxghyqBBstXVZaTO92Buw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^3.1.2", "@graphql-codegen/visitor-plugin-common": "2.13.8", @@ -2044,9 +1817,8 @@ }, "node_modules/@graphql-codegen/typescript-document-nodes/node_modules/@graphql-codegen/plugin-helpers": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -2061,9 +1833,8 @@ }, "node_modules/@graphql-codegen/typescript-document-nodes/node_modules/@graphql-codegen/visitor-plugin-common": { "version": "2.13.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz", - "integrity": "sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^3.1.2", "@graphql-tools/optimize": "^1.3.0", @@ -2082,15 +1853,13 @@ }, "node_modules/@graphql-codegen/typescript-document-nodes/node_modules/tslib": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/typescript-operations": { "version": "1.18.4", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-1.18.4.tgz", - "integrity": "sha512-bxeRaCCwu2rUXkRj6WwMVazlMignemeUJfDjrK7d4z9o9tyjlrGWnbsjeZI7M17GNCARU9Vkr6XH94wEyooSsA==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^1.18.8", "@graphql-codegen/typescript": "^1.23.0", @@ -2104,9 +1873,8 @@ }, "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/plugin-helpers": { "version": "1.18.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz", - "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^7.9.1", "common-tags": "1.8.0", @@ -2120,9 +1888,8 @@ }, "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-tools/utils": { "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2134,30 +1901,26 @@ }, "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-tools/utils/node_modules/tslib": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/typescript-operations/node_modules/common-tags": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/@graphql-codegen/typescript-operations/node_modules/tslib": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/plugin-helpers": { "version": "1.18.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz", - "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^7.9.1", "common-tags": "1.8.0", @@ -2171,9 +1934,8 @@ }, "node_modules/@graphql-codegen/typescript/node_modules/@graphql-tools/utils": { "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2185,30 +1947,26 @@ }, "node_modules/@graphql-codegen/typescript/node_modules/@graphql-tools/utils/node_modules/tslib": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/typescript/node_modules/common-tags": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/@graphql-codegen/typescript/node_modules/tslib": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/visitor-plugin-common": { "version": "1.22.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-1.22.0.tgz", - "integrity": "sha512-2afJGb6d8iuZl9KizYsexPwraEKO1lAvt5eVHNM5Xew4vwz/AUHeqDR2uOeQgVV+27EzjjzSDd47IEdH0dLC2w==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^1.18.8", "@graphql-tools/optimize": "^1.0.1", @@ -2227,9 +1985,8 @@ }, "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-codegen/plugin-helpers": { "version": "1.18.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz", - "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^7.9.1", "common-tags": "1.8.0", @@ -2243,9 +2000,8 @@ }, "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/utils": { "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2257,15 +2013,13 @@ }, "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/utils/node_modules/tslib": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/change-case-all": { "version": "1.0.14", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", - "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", "dev": true, + "license": "MIT", "dependencies": { "change-case": "^4.1.2", "is-lower-case": "^2.0.2", @@ -2281,24 +2035,21 @@ }, "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/common-tags": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-tools/apollo-engine-loader": { "version": "7.3.26", - "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz", - "integrity": "sha512-h1vfhdJFjnCYn9b5EY1Z91JTF0KB3hHVJNQIsiUV2mpQXZdeOXQoaWeYEKaiI5R6kwBw5PP9B0fv3jfUIG8LyQ==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/sync-fetch": "^0.0.1", "@graphql-tools/utils": "^9.2.1", @@ -2311,9 +2062,8 @@ }, "node_modules/@graphql-tools/batch-execute": { "version": "8.5.22", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.22.tgz", - "integrity": "sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "dataloader": "^2.2.2", @@ -2326,9 +2076,8 @@ }, "node_modules/@graphql-tools/code-file-loader": { "version": "7.3.23", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz", - "integrity": "sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/graphql-tag-pluck": "7.5.2", "@graphql-tools/utils": "^9.2.1", @@ -2342,9 +2091,8 @@ }, "node_modules/@graphql-tools/delegate": { "version": "9.0.35", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.35.tgz", - "integrity": "sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/batch-execute": "^8.5.22", "@graphql-tools/executor": "^0.0.20", @@ -2360,9 +2108,8 @@ }, "node_modules/@graphql-tools/executor": { "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.20.tgz", - "integrity": "sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "@graphql-typed-document-node/core": "3.2.0", @@ -2376,9 +2123,8 @@ }, "node_modules/@graphql-tools/executor-graphql-ws": { "version": "0.0.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.14.tgz", - "integrity": "sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "@repeaterjs/repeater": "3.0.4", @@ -2394,15 +2140,13 @@ }, "node_modules/@graphql-tools/executor-graphql-ws/node_modules/@repeaterjs/repeater": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz", - "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@graphql-tools/executor-graphql-ws/node_modules/graphql-ws": { "version": "5.12.1", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.12.1.tgz", - "integrity": "sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2412,9 +2156,8 @@ }, "node_modules/@graphql-tools/executor-graphql-ws/node_modules/ws": { "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -2433,9 +2176,8 @@ }, "node_modules/@graphql-tools/executor-http": { "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.10.tgz", - "integrity": "sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "@repeaterjs/repeater": "^3.0.4", @@ -2452,9 +2194,8 @@ }, "node_modules/@graphql-tools/executor-legacy-ws": { "version": "0.0.11", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.11.tgz", - "integrity": "sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "@types/ws": "^8.0.0", @@ -2468,9 +2209,8 @@ }, "node_modules/@graphql-tools/executor-legacy-ws/node_modules/ws": { "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -2489,9 +2229,8 @@ }, "node_modules/@graphql-tools/git-loader": { "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.3.0.tgz", - "integrity": "sha512-gcGAK+u16eHkwsMYqqghZbmDquh8QaO24Scsxq+cVR+vx1ekRlsEiXvu+yXVDbZdcJ6PBIbeLcQbEu+xhDLmvQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/graphql-tag-pluck": "7.5.2", "@graphql-tools/utils": "^9.2.1", @@ -2506,9 +2245,8 @@ }, "node_modules/@graphql-tools/github-loader": { "version": "7.3.28", - "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.28.tgz", - "integrity": "sha512-OK92Lf9pmxPQvjUNv05b3tnVhw0JRfPqOf15jZjyQ8BfdEUrJoP32b4dRQQem/wyRL24KY4wOfArJNqzpsbwCA==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/sync-fetch": "^0.0.1", "@graphql-tools/executor-http": "^0.1.9", @@ -2524,9 +2262,8 @@ }, "node_modules/@graphql-tools/graphql-file-loader": { "version": "7.5.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.17.tgz", - "integrity": "sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/import": "6.7.18", "@graphql-tools/utils": "^9.2.1", @@ -2540,9 +2277,8 @@ }, "node_modules/@graphql-tools/graphql-tag-pluck": { "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz", - "integrity": "sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.16.8", "@babel/plugin-syntax-import-assertions": "^7.20.0", @@ -2557,9 +2293,8 @@ }, "node_modules/@graphql-tools/import": { "version": "6.7.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.18.tgz", - "integrity": "sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "resolve-from": "5.0.0", @@ -2571,9 +2306,8 @@ }, "node_modules/@graphql-tools/json-file-loader": { "version": "7.4.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.18.tgz", - "integrity": "sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "globby": "^11.0.3", @@ -2586,9 +2320,8 @@ }, "node_modules/@graphql-tools/load": { "version": "7.8.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.14.tgz", - "integrity": "sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/schema": "^9.0.18", "@graphql-tools/utils": "^9.2.1", @@ -2601,8 +2334,7 @@ }, "node_modules/@graphql-tools/merge": { "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "tslib": "^2.4.0" @@ -2613,8 +2345,7 @@ }, "node_modules/@graphql-tools/mock": { "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", + "license": "MIT", "dependencies": { "@graphql-tools/schema": "^9.0.18", "@graphql-tools/utils": "^9.2.1", @@ -2627,9 +2358,8 @@ }, "node_modules/@graphql-tools/optimize": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.4.0.tgz", - "integrity": "sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, @@ -2639,9 +2369,8 @@ }, "node_modules/@graphql-tools/prisma-loader": { "version": "7.2.72", - "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.72.tgz", - "integrity": "sha512-0a7uV7Fky6yDqd0tI9+XMuvgIo6GAqiVzzzFV4OSLry4AwiQlI3igYseBV7ZVOGhedOTqj/URxjpiv07hRcwag==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/url-loader": "^7.17.18", "@graphql-tools/utils": "^9.2.1", @@ -2668,9 +2397,8 @@ }, "node_modules/@graphql-tools/relay-operation-optimizer": { "version": "6.5.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz", - "integrity": "sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/relay-compiler": "12.0.0", "@graphql-tools/utils": "^9.2.1", @@ -2682,8 +2410,7 @@ }, "node_modules/@graphql-tools/schema": { "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", + "license": "MIT", "dependencies": { "@graphql-tools/merge": "^8.4.1", "@graphql-tools/utils": "^9.2.1", @@ -2696,9 +2423,8 @@ }, "node_modules/@graphql-tools/url-loader": { "version": "7.17.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.18.tgz", - "integrity": "sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/sync-fetch": "^0.0.1", "@graphql-tools/delegate": "^9.0.31", @@ -2720,8 +2446,7 @@ }, "node_modules/@graphql-tools/utils": { "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "tslib": "^2.4.0" @@ -2732,9 +2457,8 @@ }, "node_modules/@graphql-tools/wrap": { "version": "9.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.4.2.tgz", - "integrity": "sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/delegate": "^9.0.31", "@graphql-tools/schema": "^9.0.18", @@ -2748,16 +2472,14 @@ }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "license": "MIT", "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@grpc/grpc-js": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.2.tgz", - "integrity": "sha512-lSbgu8iayAod8O0YcoXK3+bMFGThY2svtN35Zlm9VepsB3jfyIcoupKknEht7Kh9Q8ITjsp0J4KpYo9l4+FhNg==", + "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.10", "@js-sdsl/ordered-map": "^4.4.2" @@ -2768,8 +2490,7 @@ }, "node_modules/@grpc/proto-loader": { "version": "0.7.10", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz", - "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==", + "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", @@ -2785,14 +2506,12 @@ }, "node_modules/@grpc/proto-loader/node_modules/long": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "license": "Apache-2.0" }, "node_modules/@grpc/proto-loader/node_modules/protobufjs": { "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -2813,29 +2532,25 @@ }, "node_modules/@hapi/b64": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/boom": { "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", - "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/bourne": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", - "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" + "license": "BSD-3-Clause" }, "node_modules/@hapi/cryptiles": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", - "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x" }, @@ -2845,13 +2560,11 @@ }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "license": "BSD-3-Clause" }, "node_modules/@hapi/iron": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", - "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", @@ -2862,8 +2575,7 @@ }, "node_modules/@hapi/podium": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", - "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x", "@hapi/teamwork": "5.x.x", @@ -2872,24 +2584,21 @@ }, "node_modules/@hapi/teamwork": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.1.tgz", - "integrity": "sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg==", + "license": "BSD-3-Clause", "engines": { "node": ">=12.0.0" } }, "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@hapi/validate": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", - "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0" @@ -2897,9 +2606,8 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -2911,9 +2619,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2924,19 +2631,16 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@ioredis/commands": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" + "license": "MIT" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2951,8 +2655,7 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2962,8 +2665,7 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2973,13 +2675,11 @@ }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2994,8 +2694,7 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3008,8 +2707,7 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3024,14 +2722,12 @@ }, "node_modules/@josephg/resolvable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" + "license": "ISC" }, "node_modules/@joystream/cli": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@joystream/cli/-/cli-1.5.1.tgz", - "integrity": "sha512-VaDQ+jdNpAbfKd6QTFr44uv/danlNzi2d/s6ZRmFD5KsqnDPs2ebKS9ZENqZ0RmeOgF2FBKCAYuzJpjS9eP6ZA==", "dev": true, + "license": "GPL-3.0-only", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.6", "@apollo/client": "^3.3.13", @@ -3094,9 +2790,8 @@ }, "node_modules/@joystream/cli/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -3110,18 +2805,16 @@ }, "node_modules/@joystream/cli/node_modules/axios": { "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.0" } }, "node_modules/@joystream/cli/node_modules/inquirer": { "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", @@ -3143,15 +2836,13 @@ }, "node_modules/@joystream/cli/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@joystream/cli/node_modules/rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^1.9.0" }, @@ -3161,14 +2852,12 @@ }, "node_modules/@joystream/cli/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@joystream/js": { "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@joystream/js/-/js-1.11.0.tgz", - "integrity": "sha512-u4+wfZfdc7hwWzykws3LSU+a+c8mc7NVraOWcciPSkGxCxOOWNq81pEFCLGlRSZArlxTTm4ndQEY+UgIvuWuDg==", + "license": "GPL-3.0-only", "dependencies": { "@joystream/metadata-protobuf": "^2.15.0", "@joystream/types": "^4.4.0", @@ -3187,13 +2876,11 @@ }, "node_modules/@joystream/js/node_modules/long": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "license": "Apache-2.0" }, "node_modules/@joystream/metadata-protobuf": { "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@joystream/metadata-protobuf/-/metadata-protobuf-2.15.0.tgz", - "integrity": "sha512-VvRzBPMY21pv8hCZarIrxXeQQv+P26XoCBWftK9eQYBTMzrarwIUNFGx47O089OMfVM1uEZMONBINyX8a8NqhQ==", + "license": "MIT", "dependencies": { "@types/iso-3166-2": "^1.0.0", "@types/long": "^4.0.1", @@ -3207,8 +2894,7 @@ }, "node_modules/@joystream/types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@joystream/types/-/types-4.0.0.tgz", - "integrity": "sha512-3NE+sQC9cXBudYIPrCJCDdM4N9p6a4/XLUCjaZLaHwiD1Ds7Dbsfwjbfw67wU1m2V9hUeQCacV/ixumjcOIBsw==", + "license": "GPL-3.0-only", "dependencies": { "@polkadot/api": "8.9.1", "@polkadot/keyring": "9.5.1", @@ -3225,9 +2911,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3239,33 +2924,29 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3273,8 +2954,7 @@ }, "node_modules/@js-sdsl/ordered-map": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/js-sdsl" @@ -3282,13 +2962,11 @@ }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + "license": "MIT" }, "node_modules/@keyv/redis": { "version": "2.5.8", - "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.8.tgz", - "integrity": "sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug==", + "license": "MIT", "dependencies": { "ioredis": "^5.3.2" }, @@ -3298,22 +2976,27 @@ }, "node_modules/@lukeed/csprng": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", - "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz", + "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, "node_modules/@multiformats/base-x": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@nestjs/axios": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.1.tgz", - "integrity": "sha512-VlOZhAGDmOoFdsmewn8AyClAdGpKXQQaY1+3PGB+g6ceurGIdTxZgRX3VXc1T6Zs60PedWjg3A82TDOB05mrzQ==", + "license": "MIT", "peerDependencies": { "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", "axios": "^1.3.1", @@ -3323,8 +3006,7 @@ }, "node_modules/@nestjs/common": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz", - "integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", + "license": "MIT", "dependencies": { "iterare": "1.2.1", "tslib": "2.6.2", @@ -3351,9 +3033,8 @@ }, "node_modules/@nestjs/core": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz", - "integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "@nuxtjs/opencollective": "0.3.2", "fast-safe-stringify": "2.1.1", @@ -3388,8 +3069,7 @@ }, "node_modules/@noble/curves": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.3.3" }, @@ -3399,8 +3079,7 @@ }, "node_modules/@noble/curves/node_modules/@noble/hashes": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -3410,31 +3089,28 @@ }, "node_modules/@noble/hashes": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.1.tgz", - "integrity": "sha512-Lkp9+NijmV7eSVZqiUvt3UCuuHeJpUVmRrvh430gyJjJiuJMqkeHf6/A9lQ/smmbWV/0spDeJscscPzyB4waZg==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "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/" } - ] + ], + "license": "MIT" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3445,18 +3121,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3467,8 +3141,7 @@ }, "node_modules/@nuxtjs/opencollective": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "consola": "^2.15.0", @@ -3484,10 +3157,8 @@ }, "node_modules/@oclif/color": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@oclif/color/-/color-0.1.2.tgz", - "integrity": "sha512-M9o+DOrb8l603qvgz1FogJBUGLqcMFL1aFg2ZEL0FbXJofiNTLOWIeB4faeZTLwE6dt0xH9GpCVpzksMMzGbmA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "chalk": "^3.0.0", @@ -3501,18 +3172,16 @@ }, "node_modules/@oclif/color/node_modules/ansi-regex": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@oclif/color/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3523,9 +3192,8 @@ }, "node_modules/@oclif/color/node_modules/chalk/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3538,9 +3206,8 @@ }, "node_modules/@oclif/color/node_modules/chalk/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==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3550,9 +3217,8 @@ }, "node_modules/@oclif/color/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3562,24 +3228,21 @@ }, "node_modules/@oclif/color/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@oclif/color/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@oclif/color/node_modules/strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -3589,16 +3252,13 @@ }, "node_modules/@oclif/color/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@oclif/command": { "version": "1.8.36", - "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.36.tgz", - "integrity": "sha512-/zACSgaYGtAQRzc7HjzrlIs14FuEYAZrMOEwicRoUnZVyRunG4+t5iSEeQu0Xy2bgbCD0U1SP/EdeNZSTXRwjQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/config": "^1.18.2", "@oclif/errors": "^1.3.6", @@ -3616,9 +3276,8 @@ }, "node_modules/@oclif/command/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -3628,9 +3287,8 @@ }, "node_modules/@oclif/command/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3643,16 +3301,13 @@ }, "node_modules/@oclif/command/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@oclif/config": { "version": "1.18.17", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.17.tgz", - "integrity": "sha512-k77qyeUvjU8qAJ3XK3fr/QVAqsZO8QOBuESnfeM5HHtPNLSyfVcwiMM2zveSW5xRdLSG3MfV8QnLVkuyCL2ENg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/errors": "^1.3.6", "@oclif/parser": "^3.8.17", @@ -3667,10 +3322,8 @@ }, "node_modules/@oclif/errors": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.6.tgz", - "integrity": "sha512-fYaU4aDceETd89KXP+3cLyg9EHZsLD3RxF2IU9yxahhBpspWjkWi3Dy3bTgcwZ3V47BgxQaGapzJWDM33XIVDQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^3.0.0", "fs-extra": "^8.1", @@ -3684,10 +3337,8 @@ }, "node_modules/@oclif/help": { "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@oclif/help/-/help-1.0.15.tgz", - "integrity": "sha512-Yt8UHoetk/XqohYX76DfdrUYLsPKMc5pgkzsZVHDyBSkLiGRzujVaGZdjr32ckVZU9q3a47IjhWxhip7Dz5W/g==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/config": "1.18.16", "@oclif/errors": "1.3.6", @@ -3705,10 +3356,8 @@ }, "node_modules/@oclif/help/node_modules/@oclif/config": { "version": "1.18.16", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.16.tgz", - "integrity": "sha512-VskIxVcN22qJzxRUq+raalq6Q3HUde7sokB7/xk5TqRZGEKRVbFeqdQBxDWwQeudiJEgcNiMvIFbMQ43dY37FA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/errors": "^1.3.6", "@oclif/parser": "^3.8.16", @@ -3723,9 +3372,8 @@ }, "node_modules/@oclif/help/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3738,9 +3386,8 @@ }, "node_modules/@oclif/help/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3750,15 +3397,13 @@ }, "node_modules/@oclif/help/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@oclif/help/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3770,16 +3415,13 @@ }, "node_modules/@oclif/linewrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz", - "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@oclif/parser": { "version": "3.8.17", - "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.17.tgz", - "integrity": "sha512-l04iSd0xoh/16TGVpXb81Gg3z7tlQGrEup16BrVLsZBK6SEYpYHRJZnM32BwZrHI97ZSFfuSwVlzoo6HdsaK8A==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/errors": "^1.3.6", "@oclif/linewrap": "^1.0.0", @@ -3792,9 +3434,8 @@ }, "node_modules/@oclif/plugin-autocomplete": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-0.2.1.tgz", - "integrity": "sha512-EOcoh1x3auFg1a7NNVTT+hJ1PPih7Kg1it7WtG8oBgYKe+YD/bvHnX2QlXqi9S7H0XsQQMUb8hxbLP+XwQY/8Q==", "dev": true, + "license": "MIT", "dependencies": { "@oclif/command": "^1.5.13", "@oclif/config": "^1.13.0", @@ -3810,9 +3451,8 @@ }, "node_modules/@oclif/plugin-autocomplete/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3824,18 +3464,16 @@ }, "node_modules/@oclif/plugin-autocomplete/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@oclif/plugin-autocomplete/node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -3848,9 +3486,8 @@ }, "node_modules/@oclif/plugin-autocomplete/node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -3860,18 +3497,16 @@ }, "node_modules/@oclif/plugin-autocomplete/node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/@oclif/plugin-help": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.3.1.tgz", - "integrity": "sha512-QuSiseNRJygaqAdABYFWn/H1CwIZCp9zp/PLid6yXvy6VcQV7OenEFF5XuYaCvSARe2Tg9r8Jqls5+fw1A9CbQ==", "dev": true, + "license": "MIT", "dependencies": { "@oclif/command": "^1.8.15", "@oclif/config": "1.18.2", @@ -3891,10 +3526,8 @@ }, "node_modules/@oclif/plugin-help/node_modules/@oclif/config": { "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.2.tgz", - "integrity": "sha512-cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/errors": "^1.3.3", "@oclif/parser": "^3.8.0", @@ -3909,10 +3542,8 @@ }, "node_modules/@oclif/plugin-help/node_modules/@oclif/errors": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.5.tgz", - "integrity": "sha512-OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^3.0.0", "fs-extra": "^8.1", @@ -3926,9 +3557,8 @@ }, "node_modules/@oclif/plugin-help/node_modules/@oclif/errors/node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3943,9 +3573,8 @@ }, "node_modules/@oclif/plugin-help/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3958,9 +3587,8 @@ }, "node_modules/@oclif/plugin-help/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3970,15 +3598,13 @@ }, "node_modules/@oclif/plugin-help/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@oclif/plugin-help/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3990,9 +3616,8 @@ }, "node_modules/@oclif/plugin-not-found": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-1.2.6.tgz", - "integrity": "sha512-cfkDub79I9EpselfU/W8FTXhslrkOgfqjaa25tyGo99dAX5UVr6BWL2wbUobsU+rUcm4HN3byzdHDcqfu6hoAw==", "dev": true, + "license": "MIT", "dependencies": { "@oclif/color": "^0.1.2", "@oclif/command": "1.8.11", @@ -4006,10 +3631,8 @@ }, "node_modules/@oclif/plugin-not-found/node_modules/@oclif/command": { "version": "1.8.11", - "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.11.tgz", - "integrity": "sha512-2fGLMvi6J5+oNxTaZfdWPMWY8oW15rYj0V8yLzmZBAEjfzjLqLIzJE9IlNccN1zwRqRHc1bcISSRDdxJ56IS/Q==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/config": "^1.18.2", "@oclif/errors": "^1.3.5", @@ -4027,9 +3650,8 @@ }, "node_modules/@oclif/plugin-not-found/node_modules/@oclif/plugin-help": { "version": "3.2.14", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.14.tgz", - "integrity": "sha512-NP5qmE2YfcW3MmXjcrxiqKe9Hf3G0uK/qNc0zAMYKU4crFyIsWj7dBfQVFZSb28YXGioOOpjMzG1I7VMxKF38Q==", "dev": true, + "license": "MIT", "dependencies": { "@oclif/command": "^1.8.9", "@oclif/config": "^1.18.2", @@ -4048,9 +3670,8 @@ }, "node_modules/@oclif/plugin-not-found/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4063,19 +3684,16 @@ }, "node_modules/@oclif/plugin-not-found/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/@oclif/plugin-not-found/node_modules/cli-ux": { "version": "5.6.6", - "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.6.tgz", - "integrity": "sha512-4wUB34zoFklcZV0z5YiOM5IqVMMt9c3TK3QYRK3dqyk3XoRC0ybiWDWHfsMDjkKrzsVTw95rXn9NrzSHbae4pg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/command": "^1.8.9", "@oclif/errors": "^1.3.5", @@ -4110,9 +3728,8 @@ }, "node_modules/@oclif/plugin-not-found/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4122,24 +3739,21 @@ }, "node_modules/@oclif/plugin-not-found/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@oclif/plugin-not-found/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@oclif/plugin-not-found/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -4150,9 +3764,8 @@ }, "node_modules/@oclif/plugin-not-found/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4162,9 +3775,8 @@ }, "node_modules/@oclif/plugin-not-found/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4177,15 +3789,13 @@ }, "node_modules/@oclif/plugin-not-found/node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@oclif/plugin-not-found/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4198,9 +3808,8 @@ }, "node_modules/@oclif/plugin-not-found/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4212,15 +3821,13 @@ }, "node_modules/@oclif/plugin-not-found/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@oclif/plugin-warn-if-update-available": { "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-1.7.3.tgz", - "integrity": "sha512-q8q0NIneVCwIAJzglUMsl3EbXR/H5aPDk6g+qs7uF0tToxe07SWSONoNaKPzViwRWvYChMPjL77/rXyW1HVn4A==", "dev": true, + "license": "MIT", "dependencies": { "@oclif/command": "^1.8.6", "@oclif/config": "^1.17.1", @@ -4238,9 +3845,8 @@ }, "node_modules/@oclif/plugin-warn-if-update-available/node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -4253,9 +3859,8 @@ }, "node_modules/@oclif/plugin-warn-if-update-available/node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -4265,9 +3870,8 @@ }, "node_modules/@oclif/plugin-warn-if-update-available/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4277,9 +3881,8 @@ }, "node_modules/@oclif/plugin-warn-if-update-available/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4292,40 +3895,34 @@ }, "node_modules/@oclif/plugin-warn-if-update-available/node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/@oclif/plugin-warn-if-update-available/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@oclif/screen": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz", - "integrity": "sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==", - "deprecated": "Deprecated in favor of @oclif/core", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/@one-ini/wasm": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", - "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@openapitools/openapi-generator-cli": { "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.12.0.tgz", - "integrity": "sha512-1msjEK5y5zVNbDvbCQNY5Un7KUdhZ/2fhMGgToOQUF1gQOOHQVZ9ALXJkd9STb+wlV/1Cr/UVM56d85NOUMstA==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "@nestjs/axios": "3.0.1", "@nestjs/common": "10.3.0", @@ -4358,8 +3955,7 @@ }, "node_modules/@openapitools/openapi-generator-cli/node_modules/axios": { "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.4", "form-data": "^4.0.0", @@ -4368,8 +3964,7 @@ }, "node_modules/@openapitools/openapi-generator-cli/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -4381,8 +3976,7 @@ }, "node_modules/@openapitools/openapi-generator-cli/node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -4392,17 +3986,15 @@ }, "node_modules/@openapitools/openapi-generator-cli/node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "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==", "dev": true, + "license": "Apache-2.0", "dependencies": { "continuation-local-storage": "^3.2.1", "log-driver": "^1.2.7", @@ -4416,28 +4008,24 @@ }, "node_modules/@opencensus/core/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "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.", "dev": true, + "license": "MIT", "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==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@opencensus/core": "^0.0.8", "uuid": "^3.2.1" @@ -4448,9 +4036,8 @@ }, "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==", "dev": true, + "license": "Apache-2.0", "dependencies": { "continuation-local-storage": "^3.2.1", "log-driver": "^1.2.7", @@ -4464,35 +4051,30 @@ }, "node_modules/@opencensus/propagation-b3/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "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.", "dev": true, + "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "node_modules/@opentelemetry/api": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", - "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", + "license": "Apache-2.0", "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/api-logs": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.39.1.tgz", - "integrity": "sha512-9BJ8lMcOzEN0lu+Qji801y707oFO4xT3db6cosPvl+k7ItUHKN5ofWqtSbM9gbt1H4JJ/4/2TVrqI9Rq7hNv6Q==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/api": "^1.0.0" }, @@ -4502,8 +4084,7 @@ }, "node_modules/@opentelemetry/auto-instrumentations-node": { "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.37.0.tgz", - "integrity": "sha512-sPvZEm1YvnRkhC6XNs9a+LQpsAqmIw4KSoedYxPoWTpuU4mpkdJFQMfC1E51+z/Bo2AXWw3CyWpxI96tUZlxHg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.39.1", "@opentelemetry/instrumentation-amqplib": "^0.32.4", @@ -4558,8 +4139,7 @@ }, "node_modules/@opentelemetry/context-async-hooks": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.13.0.tgz", - "integrity": "sha512-pS5fU4lrRjOIPZQqA2V1SUM9QUFXbO+8flubAiy6ntLjnAjJJUdRFOUOxK6v86ZHI2p2S8A0vD0BTu95FZYvjA==", + "license": "Apache-2.0", "engines": { "node": ">=14" }, @@ -4569,8 +4149,7 @@ }, "node_modules/@opentelemetry/core": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.13.0.tgz", - "integrity": "sha512-2dBX3Sj99H96uwJKvc2w9NOiNgbvAO6mOFJFramNkKfS9O4Um+VWgpnlAazoYjT6kUJ1MP70KQ5ngD4ed+4NUw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "1.13.0" }, @@ -4583,8 +4162,7 @@ }, "node_modules/@opentelemetry/exporter-jaeger": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.13.0.tgz", - "integrity": "sha512-ke/STs/erRDqKmNv6Dv+5SetXsVD+Zm1/Wo8cLdAGrZn6kG6Fyp5EXVO/BJuzx6q+jHCdODm8jV4veXl4m71nQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/sdk-trace-base": "1.13.0", @@ -4600,8 +4178,7 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-http": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.39.1.tgz", - "integrity": "sha512-Uj2i6t5v9aexV03xvVobwLV0Yxn7lQcCxBGN5KKxcs8BTZYSfjdwhrFjsOxvEQ2cXugL0aIzCuTKxrlXYTmFwA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/otlp-exporter-base": "0.39.1", @@ -4618,8 +4195,7 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-http/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -4633,8 +4209,7 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-proto": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.39.1.tgz", - "integrity": "sha512-S+FgIhmZiFMsUivtAlCyzf3L5ezPyCqvlzt4hSZmiKs0kqapau1HS4cSpGacs9Jy499TRSNtqfjj7GxZrNIevw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/exporter-metrics-otlp-http": "0.39.1", @@ -4653,8 +4228,7 @@ }, "node_modules/@opentelemetry/exporter-metrics-otlp-proto/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -4668,8 +4242,7 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.39.1.tgz", - "integrity": "sha512-l5RhLKx6U+yuLhMrtgavTDthX50E1mZM3/SSySC7OPZiArFHV/b/9x9jxAzrOgIQUDxyj4N0V9aLKSA2t7Qzxg==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.13.0", @@ -4687,8 +4260,7 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -4702,8 +4274,7 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.39.1.tgz", - "integrity": "sha512-AEhnJfVmo1g+7NxszAuf3c6vddld2DGH2+IM4XrPxCklucCsIpuStuC5EVZbCXXXBMpAY+n3t04QMxIQqNrcSw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/otlp-exporter-base": "0.39.1", @@ -4720,8 +4291,7 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -4735,8 +4305,7 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.39.1.tgz", - "integrity": "sha512-oJQC7a67iwExRYynKqn/O9Fl5gUjDa43ZQsZu2iKAADs/6YJ+u5MJ/wcq3CpJsn2KU/8j8HWAKOcDkkQXPuJ9A==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/otlp-exporter-base": "0.39.1", @@ -4754,8 +4323,7 @@ }, "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -4769,8 +4337,7 @@ }, "node_modules/@opentelemetry/exporter-zipkin": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.13.0.tgz", - "integrity": "sha512-4IuUmYEhlHm8tAGtd6KKkktEO9Bt7dpdBdAPVAzhmXsPwGi0yExo7E5qfi9HtHQcdfP9SnrGRkeorVtrZkGlhg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/resources": "1.13.0", @@ -4786,8 +4353,7 @@ }, "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -4801,8 +4367,7 @@ }, "node_modules/@opentelemetry/instrumentation": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.39.1.tgz", - "integrity": "sha512-s7/9tPmM0l5KCd07VQizC4AO2/5UJdkXq5gMSHPdCeiMKSeBEdyDyQX7A+Cq+RYZM452qzFmrJ4ut628J5bnSg==", + "license": "Apache-2.0", "dependencies": { "require-in-the-middle": "^7.1.0", "semver": "^7.3.2", @@ -4817,8 +4382,7 @@ }, "node_modules/@opentelemetry/instrumentation-amqplib": { "version": "0.32.5", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.32.5.tgz", - "integrity": "sha512-D2hTvDfXQxj/9ydOcrz8Na7O3rLpNwSAKYHju37Mc15YLN2rmhnB/kW7YyW2+z1eC+cbLPg2iDIxzLd1FsJ15Q==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -4833,8 +4397,7 @@ }, "node_modules/@opentelemetry/instrumentation-amqplib/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -4851,8 +4414,7 @@ }, "node_modules/@opentelemetry/instrumentation-amqplib/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4862,8 +4424,7 @@ }, "node_modules/@opentelemetry/instrumentation-amqplib/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4876,13 +4437,11 @@ }, "node_modules/@opentelemetry/instrumentation-amqplib/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.35.3.tgz", - "integrity": "sha512-GCG0MyKSOyRfRUcWNUA0xLZQ5gVS+GDHXX//IIc01n81sFoWhgEl0wYWIa/ziLu7qKAAsJF1klKlMo/HppfkLQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/propagator-aws-xray": "^1.2.1", @@ -4899,8 +4458,7 @@ }, "node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -4917,8 +4475,7 @@ }, "node_modules/@opentelemetry/instrumentation-aws-lambda/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4928,8 +4485,7 @@ }, "node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4942,13 +4498,11 @@ }, "node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-aws-sdk": { "version": "0.34.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.34.3.tgz", - "integrity": "sha512-esz3PUIKnRlzu9rXtSPfQkoR/amvrNDqFJK7RGAmcOxvXg+4TQGLF3BY74ZCv84iBjSgvObL8ELkVofYH6cDWg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -4964,8 +4518,7 @@ }, "node_modules/@opentelemetry/instrumentation-aws-sdk/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -4982,8 +4535,7 @@ }, "node_modules/@opentelemetry/instrumentation-aws-sdk/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4993,8 +4545,7 @@ }, "node_modules/@opentelemetry/instrumentation-aws-sdk/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5007,13 +4558,11 @@ }, "node_modules/@opentelemetry/instrumentation-aws-sdk/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-bunyan": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.31.4.tgz", - "integrity": "sha512-uwQPzNXq+f2/7odtYPsBlozm2bjDHLOB/r3pSO02BEnHG5L7RyzV7aPLH1xYTHrLnZAd8ew8Am5dGM4uRiO4sA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@types/bunyan": "1.8.7" @@ -5027,8 +4576,7 @@ }, "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5045,8 +4593,7 @@ }, "node_modules/@opentelemetry/instrumentation-bunyan/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5056,8 +4603,7 @@ }, "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5070,13 +4616,11 @@ }, "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-cassandra-driver": { "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.32.4.tgz", - "integrity": "sha512-xBWXyg585E/8PFoIgEyUdvVo4y/9rO/plkH9h1LF7aE4xXpAiYKVKNVFh4BsOTcylJkFSEZEvbHnFM8z8zb4jA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -5090,8 +4634,7 @@ }, "node_modules/@opentelemetry/instrumentation-cassandra-driver/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5108,8 +4651,7 @@ }, "node_modules/@opentelemetry/instrumentation-cassandra-driver/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5119,8 +4661,7 @@ }, "node_modules/@opentelemetry/instrumentation-cassandra-driver/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5133,13 +4674,11 @@ }, "node_modules/@opentelemetry/instrumentation-cassandra-driver/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-connect": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.31.4.tgz", - "integrity": "sha512-cce1AVRfWyQUOvJHMARaT+0KK5gN5qvKfmiiecmNSlj4NVC6w2DzknMuoHy3WkHQEQKPgF0pJG034UaU6bLKFA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -5155,8 +4694,7 @@ }, "node_modules/@opentelemetry/instrumentation-connect/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5173,8 +4711,7 @@ }, "node_modules/@opentelemetry/instrumentation-connect/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5184,8 +4721,7 @@ }, "node_modules/@opentelemetry/instrumentation-connect/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5198,13 +4734,11 @@ }, "node_modules/@opentelemetry/instrumentation-connect/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-dataloader": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.4.3.tgz", - "integrity": "sha512-iV1noFh7rOjDJ5WXg3o5mQIaEnxTCIpFGWPxqwK2kta3p78wU0KpYIz9x4MvdEVjFyTXxfB7iVz1kQ2g2b6Kpw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0" }, @@ -5217,8 +4751,7 @@ }, "node_modules/@opentelemetry/instrumentation-dataloader/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5235,8 +4768,7 @@ }, "node_modules/@opentelemetry/instrumentation-dataloader/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5246,8 +4778,7 @@ }, "node_modules/@opentelemetry/instrumentation-dataloader/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5260,13 +4791,11 @@ }, "node_modules/@opentelemetry/instrumentation-dataloader/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-dns": { "version": "0.31.5", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.31.5.tgz", - "integrity": "sha512-jGMpUzUlPT0mPum2N931Q918cuAfrEJOTHM35O1+YpCfjBnpbj+Vx77pIX0dSdWPxrigiPNZqdxQ2GadfdwBCA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0", @@ -5281,8 +4810,7 @@ }, "node_modules/@opentelemetry/instrumentation-dns/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5299,8 +4827,7 @@ }, "node_modules/@opentelemetry/instrumentation-dns/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5310,8 +4837,7 @@ }, "node_modules/@opentelemetry/instrumentation-dns/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5324,13 +4850,11 @@ }, "node_modules/@opentelemetry/instrumentation-dns/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-express": { "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.32.4.tgz", - "integrity": "sha512-67o/pc2GYRxNpgC5nw6xrPvxlpGKjr43dsukR23IJom45gtsZjt0V7YjEGw40MAvtdsrG0PMkthjXNBvr34Y6A==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -5346,8 +4870,7 @@ }, "node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5364,8 +4887,7 @@ }, "node_modules/@opentelemetry/instrumentation-express/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5375,8 +4897,7 @@ }, "node_modules/@opentelemetry/instrumentation-express/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5389,13 +4910,11 @@ }, "node_modules/@opentelemetry/instrumentation-express/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-fastify": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.31.4.tgz", - "integrity": "sha512-3qYJySc+Eo0cpQVpE/MGbMi+WKU7n9OxQIEj/CswTcn3W1H7ot9dreV8IchNdM6WrRhUjFmAMCtrDS7Ewdvkpg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -5410,8 +4929,7 @@ }, "node_modules/@opentelemetry/instrumentation-fastify/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5428,8 +4946,7 @@ }, "node_modules/@opentelemetry/instrumentation-fastify/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5439,8 +4956,7 @@ }, "node_modules/@opentelemetry/instrumentation-fastify/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5453,13 +4969,11 @@ }, "node_modules/@opentelemetry/instrumentation-fastify/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-fs": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.7.4.tgz", - "integrity": "sha512-JN+X7nfBeEbl2dvyd/6IBqVujjqE5/fY0oJdju2kW6X/fsKyIBTlEoKW1nlI+VLO6JVwTMTkvREFTvTOlGZqsA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -5474,8 +4988,7 @@ }, "node_modules/@opentelemetry/instrumentation-fs/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5492,8 +5005,7 @@ }, "node_modules/@opentelemetry/instrumentation-fs/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5503,8 +5015,7 @@ }, "node_modules/@opentelemetry/instrumentation-fs/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5517,13 +5028,11 @@ }, "node_modules/@opentelemetry/instrumentation-fs/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-generic-pool": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.31.4.tgz", - "integrity": "sha512-S9LpOtGhk7COsC6GmkF5i/BB+XQD8qBbMgLHR0/fccsrzxTw7wd2IMo2hZOLPBYDvaSrywmOy8etJGT34eOEQA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0", @@ -5538,8 +5047,7 @@ }, "node_modules/@opentelemetry/instrumentation-generic-pool/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5556,8 +5064,7 @@ }, "node_modules/@opentelemetry/instrumentation-generic-pool/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5567,8 +5074,7 @@ }, "node_modules/@opentelemetry/instrumentation-generic-pool/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5581,13 +5087,11 @@ }, "node_modules/@opentelemetry/instrumentation-generic-pool/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-graphql": { "version": "0.34.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.34.3.tgz", - "integrity": "sha512-5NTOZWpIr0/E6FbftUHpoR6MxdySjcnNbHA3XAVqqAgLg5w5cmsaJepeKPxrbbNI91CShXqwcrNcaHueUGGCBw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0" }, @@ -5600,8 +5104,7 @@ }, "node_modules/@opentelemetry/instrumentation-graphql/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5618,8 +5121,7 @@ }, "node_modules/@opentelemetry/instrumentation-graphql/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5629,8 +5131,7 @@ }, "node_modules/@opentelemetry/instrumentation-graphql/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5643,13 +5144,11 @@ }, "node_modules/@opentelemetry/instrumentation-graphql/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-grpc": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.39.1.tgz", - "integrity": "sha512-Kw5sZTB6zvo7a515q2FhlK4tLLRwgzqt0niqozsOxtkiPUJCNcdVEoNn+US7MWtXeOB6BujEPwRu3WuDr+9wew==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "0.39.1", "@opentelemetry/semantic-conventions": "1.13.0" @@ -5663,8 +5162,7 @@ }, "node_modules/@opentelemetry/instrumentation-hapi": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.31.4.tgz", - "integrity": "sha512-6A8jxzeHow6RwrlM2PRfV10C2sVAeqy3L8EBa8FvNoUQiZbmmHhJssu0lxgeRabI3VS/1vDrac1zASN3aMqecQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -5680,8 +5178,7 @@ }, "node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5698,8 +5195,7 @@ }, "node_modules/@opentelemetry/instrumentation-hapi/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5709,8 +5205,7 @@ }, "node_modules/@opentelemetry/instrumentation-hapi/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5723,13 +5218,11 @@ }, "node_modules/@opentelemetry/instrumentation-hapi/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-http": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.39.1.tgz", - "integrity": "sha512-JX1HTvNOqqel2fuMSRiSzFREyk2iMQ2B4/1Y46AGa0u6i4XQRCbCuy64FZ1YYMrQ2e5P917iiGrEUFkB+33Tlw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/instrumentation": "0.39.1", @@ -5745,8 +5238,7 @@ }, "node_modules/@opentelemetry/instrumentation-http/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5756,8 +5248,7 @@ }, "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5770,13 +5261,11 @@ }, "node_modules/@opentelemetry/instrumentation-http/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-ioredis": { "version": "0.34.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.34.3.tgz", - "integrity": "sha512-k/4zPfdZSkdRYbx6CEjwgqi/UZlTUKk+8ZsthOzYsvmpCwPb1a1PomOa+1gk+5OvF83HanSy4mO06FhMx/NUgQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/redis-common": "^0.35.1", @@ -5792,8 +5281,7 @@ }, "node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5810,8 +5298,7 @@ }, "node_modules/@opentelemetry/instrumentation-ioredis/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5821,8 +5308,7 @@ }, "node_modules/@opentelemetry/instrumentation-ioredis/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5835,13 +5321,11 @@ }, "node_modules/@opentelemetry/instrumentation-ioredis/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-knex": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.31.4.tgz", - "integrity": "sha512-1Q0I5mn/pF5d42sZa9RWEayBft8c5XqQupC/MSaK6nuSZowQKcOPs5q8wMuPCB8Ma04xLmiH3N4MErjS3GIaSA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -5855,8 +5339,7 @@ }, "node_modules/@opentelemetry/instrumentation-knex/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5873,8 +5356,7 @@ }, "node_modules/@opentelemetry/instrumentation-knex/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5884,8 +5366,7 @@ }, "node_modules/@opentelemetry/instrumentation-knex/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5898,13 +5379,11 @@ }, "node_modules/@opentelemetry/instrumentation-knex/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-koa": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.34.6.tgz", - "integrity": "sha512-Rohp13k6t8XkbIKWjblW+qOovqSl3+OmgWHoyM8lf12cN0DAdCklwCKiittvht4ecVU/uRLh3MBIPIMCnkQa6g==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -5921,8 +5400,7 @@ }, "node_modules/@opentelemetry/instrumentation-koa/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -5939,8 +5417,7 @@ }, "node_modules/@opentelemetry/instrumentation-koa/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5950,8 +5427,7 @@ }, "node_modules/@opentelemetry/instrumentation-koa/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5964,13 +5440,11 @@ }, "node_modules/@opentelemetry/instrumentation-koa/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-lru-memoizer": { "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.32.4.tgz", - "integrity": "sha512-5IxH+cW/2CsPR3owASTaO+RAlfs+oSZtHpCx/2LhjXms49yuLHB6YDFJcWyOW4QN6P2A3uLbxWYCxMt2XKy39Q==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0" }, @@ -5983,8 +5457,7 @@ }, "node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6001,8 +5474,7 @@ }, "node_modules/@opentelemetry/instrumentation-lru-memoizer/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6012,8 +5484,7 @@ }, "node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6026,13 +5497,11 @@ }, "node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-memcached": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.31.4.tgz", - "integrity": "sha512-IDGys1d3aG7CGqgvZZ0dkmZCEFn1eQ3HPJCap+gUhjt7RRxLFYasa4h/GWviUHM3BNwJaA7VSmhEfbwxUCHxXw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0", @@ -6047,8 +5516,7 @@ }, "node_modules/@opentelemetry/instrumentation-memcached/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6065,8 +5533,7 @@ }, "node_modules/@opentelemetry/instrumentation-memcached/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6076,8 +5543,7 @@ }, "node_modules/@opentelemetry/instrumentation-memcached/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6090,13 +5556,11 @@ }, "node_modules/@opentelemetry/instrumentation-memcached/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-mongodb": { "version": "0.34.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.34.3.tgz", - "integrity": "sha512-QCsX5vGjmmUnqLOlT+eThfBQ35JbQ3bdZSOCFvYu24+vqDEzMf+sWmgQVZuSlEGooXJ9lhlyFszPyUrTk2jS3g==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.39.1", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -6110,8 +5574,7 @@ }, "node_modules/@opentelemetry/instrumentation-mongoose": { "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.32.4.tgz", - "integrity": "sha512-JylmvZnH1ScQGc9tbV/6PIzk/rTNVgOtZDh9kJCYU0fbmX9a4lAsKav4kfnOK177IE+/jLsEECSUuytjqumGnQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -6126,8 +5589,7 @@ }, "node_modules/@opentelemetry/instrumentation-mongoose/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6144,8 +5606,7 @@ }, "node_modules/@opentelemetry/instrumentation-mongoose/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6155,8 +5616,7 @@ }, "node_modules/@opentelemetry/instrumentation-mongoose/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6169,13 +5629,11 @@ }, "node_modules/@opentelemetry/instrumentation-mongoose/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-mysql": { "version": "0.33.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.33.3.tgz", - "integrity": "sha512-nzKW1mtEHu0YlUD+dRq+oPAMMQHMML5hLNDGKDwK/mcGqrXKHzaQKukVIKHv3AS3tMVBoayQi4Rz2LdZ/kylwA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0", @@ -6190,8 +5648,7 @@ }, "node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6208,8 +5665,7 @@ }, "node_modules/@opentelemetry/instrumentation-mysql/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6219,8 +5675,7 @@ }, "node_modules/@opentelemetry/instrumentation-mysql/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6233,13 +5688,11 @@ }, "node_modules/@opentelemetry/instrumentation-mysql/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-mysql2": { "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.33.4.tgz", - "integrity": "sha512-niaBa79lmgXTvMJXDpucPdiyTv+gUejkAiweAqgpigTTQM4T4qtfxNcw+dlP3vWAkHfu44+INy+96BHGlROxYw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -6253,8 +5706,7 @@ }, "node_modules/@opentelemetry/instrumentation-mysql2/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6271,8 +5723,7 @@ }, "node_modules/@opentelemetry/instrumentation-mysql2/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6282,8 +5733,7 @@ }, "node_modules/@opentelemetry/instrumentation-mysql2/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6296,13 +5746,11 @@ }, "node_modules/@opentelemetry/instrumentation-mysql2/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-nestjs-core": { "version": "0.32.5", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.32.5.tgz", - "integrity": "sha512-fqPLahEiAW21aO60R+O+j5PJyfLHBczF+Ol7dodXpbzxd+9JWmiB2jeEgAAoOePDTJQC98WBuzfSZ8wRct06sQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -6316,8 +5764,7 @@ }, "node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6334,8 +5781,7 @@ }, "node_modules/@opentelemetry/instrumentation-nestjs-core/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6345,8 +5791,7 @@ }, "node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6359,13 +5804,11 @@ }, "node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-net": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.31.4.tgz", - "integrity": "sha512-KbQg0Qwhu98+kgo2jIWw0/WqSxHA/Old6yFj8MoNOo/OF+SWQwaPHK1+oV9dZGV6v3aaikb//YnoaubWucUOiQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -6379,8 +5822,7 @@ }, "node_modules/@opentelemetry/instrumentation-net/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6397,8 +5839,7 @@ }, "node_modules/@opentelemetry/instrumentation-net/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6408,8 +5849,7 @@ }, "node_modules/@opentelemetry/instrumentation-net/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6422,13 +5862,11 @@ }, "node_modules/@opentelemetry/instrumentation-net/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-pg": { "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.35.3.tgz", - "integrity": "sha512-Q37HiZJ1KsHH/gdzRHI8ixgiR1v7/+bFL+E/f6bi4BpPdJGJzer+sYYhdPyzpvGMFwlzRcGJpv9jYaQvCwJp9Q==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -6445,8 +5883,7 @@ }, "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6463,8 +5900,7 @@ }, "node_modules/@opentelemetry/instrumentation-pg/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6474,8 +5910,7 @@ }, "node_modules/@opentelemetry/instrumentation-pg/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6488,13 +5923,11 @@ }, "node_modules/@opentelemetry/instrumentation-pg/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-pino": { "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.33.4.tgz", - "integrity": "sha512-9jRkfICHBkwcP/O363Ft3cA2t7cuYgOyiW1L+hJ4rmnCmfAVOM+uNQ1dTezftkodgTvurlQbDjOBSKhvh2r2Pw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0" }, @@ -6507,8 +5940,7 @@ }, "node_modules/@opentelemetry/instrumentation-pino/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6525,8 +5957,7 @@ }, "node_modules/@opentelemetry/instrumentation-pino/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6536,8 +5967,7 @@ }, "node_modules/@opentelemetry/instrumentation-pino/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6550,13 +5980,11 @@ }, "node_modules/@opentelemetry/instrumentation-pino/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-redis": { "version": "0.34.7", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.34.7.tgz", - "integrity": "sha512-mDfoMi73SXC5TRn/Xt1LRrQKYcz7w7TVekM8QlbPpx3KI7xKAjwa9+38psO1snhbX/nXdXgtcrtbXhz8nUJ+Sg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/redis-common": "^0.35.1", @@ -6571,8 +5999,7 @@ }, "node_modules/@opentelemetry/instrumentation-redis-4": { "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.34.6.tgz", - "integrity": "sha512-owBvjxm5QjSLaJJT23yX0Wx6DzBEE0m+yq3wue4k3yGToGgYienS5ThfrWNtkoTKhECJNajR0LyqZCtC+CGHsw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/redis-common": "^0.35.1", @@ -6587,8 +6014,7 @@ }, "node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6605,8 +6031,7 @@ }, "node_modules/@opentelemetry/instrumentation-redis-4/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6616,8 +6041,7 @@ }, "node_modules/@opentelemetry/instrumentation-redis-4/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6630,13 +6054,11 @@ }, "node_modules/@opentelemetry/instrumentation-redis-4/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-redis/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6653,8 +6075,7 @@ }, "node_modules/@opentelemetry/instrumentation-redis/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6664,8 +6085,7 @@ }, "node_modules/@opentelemetry/instrumentation-redis/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6678,13 +6098,11 @@ }, "node_modules/@opentelemetry/instrumentation-redis/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-restify": { "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.32.4.tgz", - "integrity": "sha512-puF9DaSKgC8NvqrUUt/5XA9iua+qOdtm8HhUvBmUlEfo8aNc//wfSd1znGAhg8jXaf5lRdYbOmBbT7SMM8gxiA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.40.0", @@ -6699,8 +6117,7 @@ }, "node_modules/@opentelemetry/instrumentation-restify/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6717,8 +6134,7 @@ }, "node_modules/@opentelemetry/instrumentation-restify/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6728,8 +6144,7 @@ }, "node_modules/@opentelemetry/instrumentation-restify/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6742,13 +6157,11 @@ }, "node_modules/@opentelemetry/instrumentation-restify/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-router": { "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.32.4.tgz", - "integrity": "sha512-TbiufieBpP78UvVnECmhxuHtVWR0tfkZW53TwqsYShlNPeQjNYX377fLUw+S8Lnvnctqn47Wjt4SbCOBhNnZEg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -6762,8 +6175,7 @@ }, "node_modules/@opentelemetry/instrumentation-router/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6780,8 +6192,7 @@ }, "node_modules/@opentelemetry/instrumentation-router/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6791,8 +6202,7 @@ }, "node_modules/@opentelemetry/instrumentation-router/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6805,13 +6215,11 @@ }, "node_modules/@opentelemetry/instrumentation-router/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-socket.io": { "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.33.4.tgz", - "integrity": "sha512-6Rbg1d1q/OECrodA+ESFw30KA9zb0atrX+bk2rhLxhJMSO8s3MW9/rtdgkytLFS+nsEyPVMljmmOOPKwiki2Xg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -6825,8 +6233,7 @@ }, "node_modules/@opentelemetry/instrumentation-socket.io/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6843,8 +6250,7 @@ }, "node_modules/@opentelemetry/instrumentation-socket.io/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6854,8 +6260,7 @@ }, "node_modules/@opentelemetry/instrumentation-socket.io/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6868,13 +6273,11 @@ }, "node_modules/@opentelemetry/instrumentation-socket.io/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-tedious": { "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.5.4.tgz", - "integrity": "sha512-i3P+/9+i8yWoMhrw9vCKClpiWB4lp9CGRF/riaRGTrPNF14IO2B0E+DpNMlOjCWydnOLnjZ/m0vIkbVLAdP9aw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0", "@opentelemetry/semantic-conventions": "^1.0.0", @@ -6889,8 +6292,7 @@ }, "node_modules/@opentelemetry/instrumentation-tedious/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6907,8 +6309,7 @@ }, "node_modules/@opentelemetry/instrumentation-tedious/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6918,8 +6319,7 @@ }, "node_modules/@opentelemetry/instrumentation-tedious/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6932,13 +6332,11 @@ }, "node_modules/@opentelemetry/instrumentation-tedious/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation-winston": { "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.31.4.tgz", - "integrity": "sha512-AmUq5Do7FUoPLrehsDh45sK34qlPNg1i9HUieop3F+d1+gk+YPv2Z29WGi7KEnhM4/GJu2OsWq/pwzgemeNHuQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.40.0" }, @@ -6951,8 +6349,7 @@ }, "node_modules/@opentelemetry/instrumentation-winston/node_modules/@opentelemetry/instrumentation": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.40.0.tgz", - "integrity": "sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==", + "license": "Apache-2.0", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.3.5", @@ -6969,8 +6366,7 @@ }, "node_modules/@opentelemetry/instrumentation-winston/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6980,8 +6376,7 @@ }, "node_modules/@opentelemetry/instrumentation-winston/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6994,13 +6389,11 @@ }, "node_modules/@opentelemetry/instrumentation-winston/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/instrumentation/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7010,8 +6403,7 @@ }, "node_modules/@opentelemetry/instrumentation/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7024,13 +6416,11 @@ }, "node_modules/@opentelemetry/instrumentation/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/otlp-exporter-base": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.39.1.tgz", - "integrity": "sha512-Pv5X8fbi6jD/RJBePyn7MnCSuE6MbPB6dl+7YYBWJ5RcMGYMwvLXjd4h2jWsPV2TSUg38H/RoSP0aXvQ06Y7iw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0" }, @@ -7043,8 +6433,7 @@ }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.39.1.tgz", - "integrity": "sha512-u3ErFRQqQFKjjIMuwLWxz/tLPYInfmiAmSy//fGSCzCh2ZdJgqQjMOAxBgqFtCF2xFL+OmMhyuC2ThMzceGRWA==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.13.0", @@ -7060,14 +6449,12 @@ }, "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/long": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "license": "Apache-2.0" }, "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/protobufjs": { "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -7088,8 +6475,7 @@ }, "node_modules/@opentelemetry/otlp-proto-exporter-base": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.39.1.tgz", - "integrity": "sha512-VssdfGYu6LkSliQATdkvoP8lPSQuNLENRdHTUOV2veF4iqY/UpxBFFlkarY29W+MYjWXIBfYntgNjQvcn78A+w==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/otlp-exporter-base": "0.39.1", @@ -7104,14 +6490,12 @@ }, "node_modules/@opentelemetry/otlp-proto-exporter-base/node_modules/long": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "license": "Apache-2.0" }, "node_modules/@opentelemetry/otlp-proto-exporter-base/node_modules/protobufjs": { "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -7132,8 +6516,7 @@ }, "node_modules/@opentelemetry/otlp-transformer": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.39.1.tgz", - "integrity": "sha512-0hgVnXXz5efI382B/24NxD4b6Zxlh7nxCdJkxkdmQMbn0yRiwoq/ZT+QG8eUL6JNzsBAV1WJlF5aJNsL8skHvw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/api-logs": "0.39.1", "@opentelemetry/core": "1.13.0", @@ -7151,8 +6534,7 @@ }, "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -7166,8 +6548,7 @@ }, "node_modules/@opentelemetry/propagation-utils": { "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.29.5.tgz", - "integrity": "sha512-TRVQAZZfXmatJ8ZrjtQadxv+3n1DbQl42aK2/UOeZ0THdz9EqQ2+IBbvPD484c8H7pjUVUwqDOsk+1BOSPwXEw==", + "license": "Apache-2.0", "engines": { "node": ">=14" }, @@ -7177,8 +6558,7 @@ }, "node_modules/@opentelemetry/propagator-aws-xray": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.3.1.tgz", - "integrity": "sha512-6fDMzFlt5r6VWv7MUd0eOpglXPFqykW8CnOuUxJ1VZyLy6mV1bzBlzpsqEmhx1bjvZYvH93vhGkQZqrm95mlrQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0" }, @@ -7191,8 +6571,7 @@ }, "node_modules/@opentelemetry/propagator-b3": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.13.0.tgz", - "integrity": "sha512-HOo91EI4UbuG8xQVLFziTzrcIn0MJQhy8m9jorh8aonb94jFVFi3CFNIiAnIGOabmnshJLOABxpYXsiPB8Xnzg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0" }, @@ -7205,8 +6584,7 @@ }, "node_modules/@opentelemetry/propagator-jaeger": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.13.0.tgz", - "integrity": "sha512-IV9TO+u1Jzm9mUDAD3gyXf89eyvgEJUY1t+GB5QmS4wjVeWrSMUtD0JjH3yG9SNqkrQOqOGJq7YUSSetW+Lf5Q==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0" }, @@ -7219,16 +6597,14 @@ }, "node_modules/@opentelemetry/redis-common": { "version": "0.35.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.35.1.tgz", - "integrity": "sha512-qLXe7h9VzFLx3LaizFiUlpuohCRyvHlDW5b9synE6omHKTZr/n0EHEdmhp3GezBeAqMGI+q499Mht4SmStaSqQ==", + "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.27.7.tgz", - "integrity": "sha512-TjNuB+e1fUrlypy76ksoi3CGGVf/8eY5ZAHalvCZMWdHLjmziuaJbmYfBhqeqzwUswiSxgJvFjwhcA92wL7U2Q==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/resources": "^1.0.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -7242,8 +6618,7 @@ }, "node_modules/@opentelemetry/resource-detector-aws": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.4.0.tgz", - "integrity": "sha512-Cn8eQ/heLqrNrPuHGG7xUkk//VQt4hzVIPurmLlCI0wrDV6HR+yykBvRkJBuSdLzbjeQ/qNbGel9OvTmA6PBQA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", "@opentelemetry/resources": "^1.0.0", @@ -7258,8 +6633,7 @@ }, "node_modules/@opentelemetry/resource-detector-container": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.2.5.tgz", - "integrity": "sha512-aaTr+mKF8KiqIQRR9KjPAGa7budCpyVUH1iun8pxTuxMs9TkuP5PAvQioyhDFtnMt9BBfV+nFOFShu0Npss7wA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/resources": "^1.0.0", "@opentelemetry/semantic-conventions": "^1.0.0" @@ -7273,8 +6647,7 @@ }, "node_modules/@opentelemetry/resource-detector-gcp": { "version": "0.28.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.28.3.tgz", - "integrity": "sha512-P2iE0kSaEdrFn2in6N232LcYDvt19G3cTvllIYcjK8trKrClFSpJyhReZj+dW/HPItMCXYQnL+tyU4CYq3QVZw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", "@opentelemetry/resources": "^1.0.0", @@ -7290,8 +6663,7 @@ }, "node_modules/@opentelemetry/resources": { "version": "1.22.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.22.0.tgz", - "integrity": "sha512-+vNeIFPH2hfcNL0AJk/ykJXoUCtR1YaDUZM+p3wZNU4Hq98gzq+7b43xbkXjadD9VhWIUQqEwXyY64q6msPj6A==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.22.0", "@opentelemetry/semantic-conventions": "1.22.0" @@ -7305,8 +6677,7 @@ }, "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { "version": "1.22.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.22.0.tgz", - "integrity": "sha512-0VoAlT6x+Xzik1v9goJ3pZ2ppi6+xd3aUfg4brfrLkDBHRIVjMP0eBHrKrhB+NKcDyMAg8fAbGL3Npg/F6AwWA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "1.22.0" }, @@ -7319,16 +6690,14 @@ }, "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": { "version": "1.22.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.22.0.tgz", - "integrity": "sha512-CAOgFOKLybd02uj/GhCdEeeBjOS0yeoDeo/CA7ASBSmenpZHAKGB3iDm/rv3BQLcabb/OprDEsSQ1y0P8A7Siw==", + "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/sdk-logs": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.39.1.tgz", - "integrity": "sha512-/gmgKfZ1ZVFporKuwsewqIyvaUIGpv76JZ7lBpHQQPb37IMpaXO6pdqFI4ebHAWfNIm3akMyhmdtzivcgF3lgw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/resources": "1.13.0" @@ -7343,8 +6712,7 @@ }, "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -7358,8 +6726,7 @@ }, "node_modules/@opentelemetry/sdk-metrics": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.13.0.tgz", - "integrity": "sha512-MOjZX6AnSOqLliCcZUrb+DQKjAWXBiGeICGbHAGe5w0BB18PJIeIo995lO5JSaFfHpmUMgJButTPfJJD27W3Vg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/resources": "1.13.0", @@ -7374,8 +6741,7 @@ }, "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -7389,8 +6755,7 @@ }, "node_modules/@opentelemetry/sdk-node": { "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.39.1.tgz", - "integrity": "sha512-qODReBGNSdfRS5gvCFj1SdiIi/3ZFTZb0H1KvWE/OrTkklyL5RhIs7vDwvEGHmha+YpUu0Y2+R2+itSBSu/jCA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/exporter-jaeger": "1.13.0", @@ -7414,8 +6779,7 @@ }, "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -7429,8 +6793,7 @@ }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.13.0.tgz", - "integrity": "sha512-moTiQtc0uPR1hQLt6gLDJH9IIkeBhgRb71OKjNHZPE1VF45fHtD6nBDi5J/DkTHTwYP5X3kBJLa3xN7ub6J4eg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/resources": "1.13.0", @@ -7445,8 +6808,7 @@ }, "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/resources": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.13.0.tgz", - "integrity": "sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.13.0", "@opentelemetry/semantic-conventions": "1.13.0" @@ -7460,8 +6822,7 @@ }, "node_modules/@opentelemetry/sdk-trace-node": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.13.0.tgz", - "integrity": "sha512-FXA85lXKTsnbOflA/TBuBf2pmhD3c8uDjNjG0YqK+ap8UayfALmfJhf+aG1yBOUHevCY0JXJ4/xtbXExxpsMog==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/context-async-hooks": "1.13.0", "@opentelemetry/core": "1.13.0", @@ -7479,8 +6840,7 @@ }, "node_modules/@opentelemetry/sdk-trace-node/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7490,8 +6850,7 @@ }, "node_modules/@opentelemetry/sdk-trace-node/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7504,22 +6863,19 @@ }, "node_modules/@opentelemetry/sdk-trace-node/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/@opentelemetry/semantic-conventions": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.13.0.tgz", - "integrity": "sha512-LMGqfSZkaMQXqewO0o1wvWr/2fQdCh4a3Sqlxka/UsJCe0cfLulh6x2aqnKLnsrSGiCq5rSCwvINd152i0nCqw==", + "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@parcel/watcher": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", - "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", "dev": true, + "license": "MIT", "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -7548,34 +6904,13 @@ "@parcel/watcher-win32-x64": "2.4.1" } }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", - "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/@parcel/watcher-darwin-arm64": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", - "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -7588,259 +6923,54 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", - "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", - "cpu": [ - "x64" - ], + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.8", "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "license": "MIT", + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2" } }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", - "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", - "cpu": [ - "x64" - ], + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", - "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=8.0.0" } }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", - "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", - "cpu": [ - "arm64" - ], + "node_modules/@peculiar/webcrypto": { + "version": "1.4.5", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2", + "webcrypto-core": "^1.7.8" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=10.12.0" } }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", - "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "license": "MIT", "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=14" } }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", - "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", - "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", - "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", - "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", - "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz", - "integrity": "sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==", - "dev": true, - "dependencies": { - "asn1js": "^3.0.5", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" - } - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@peculiar/webcrypto": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.5.tgz", - "integrity": "sha512-oDk93QCDGdxFRM8382Zdminzs44dg3M2+E5Np+JWkpqLDyJC9DviMh8F8mEJkYuUcUOGA5jHO5AJJ10MFWdbZw==", - "dev": true, - "dependencies": { - "@peculiar/asn1-schema": "^2.3.8", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2", - "webcrypto-core": "^1.7.8" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pm2/agent": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.3.tgz", - "integrity": "sha512-xkqqCoTf5VsciMqN0vb9jthW7olVAi4KRFNddCc7ZkeJZ3i8QwZANr4NSH2H5DvseRFHq7MiPspRY/EWAFWWTg==", + "node_modules/@pm2/agent": { + "version": "2.0.3", "dev": true, + "license": "AGPL-3.0", "dependencies": { "async": "~3.2.0", "chalk": "~3.0.0", @@ -7859,9 +6989,8 @@ }, "node_modules/@pm2/agent/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -7874,9 +7003,8 @@ }, "node_modules/@pm2/agent/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7887,9 +7015,8 @@ }, "node_modules/@pm2/agent/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -7899,30 +7026,26 @@ }, "node_modules/@pm2/agent/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@pm2/agent/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@pm2/agent/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@pm2/agent/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7932,9 +7055,8 @@ }, "node_modules/@pm2/agent/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7947,9 +7069,8 @@ }, "node_modules/@pm2/agent/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==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7959,9 +7080,8 @@ }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -7980,15 +7100,13 @@ }, "node_modules/@pm2/agent/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@pm2/io": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.2.tgz", - "integrity": "sha512-XAvrNoQPKOyO/jJyCu8jPhLzlyp35MEf7w/carHXmWKddPzeNOFSEpSEqMzPDawsvpxbE+i918cNN+MwgVsStA==", "dev": true, + "license": "Apache-2", "dependencies": { "@opencensus/core": "0.0.9", "@opencensus/propagation-b3": "0.0.8", @@ -8007,24 +7125,21 @@ }, "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==", "dev": true, + "license": "MIT", "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@pm2/io/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -8034,9 +7149,8 @@ }, "node_modules/@pm2/io/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==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "module-details-from-path": "^1.0.3", @@ -8048,9 +7162,8 @@ }, "node_modules/@pm2/io/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8063,21 +7176,18 @@ }, "node_modules/@pm2/io/node_modules/tslib": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@pm2/io/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@pm2/js-api": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.8.0.tgz", - "integrity": "sha512-nmWzrA/BQZik3VBz+npRcNIu01kdBhWL0mxKmP1ciF/gTcujPTQqt027N9fc1pK9ERM8RipFhymw7RcmCyOEYA==", "dev": true, + "license": "Apache-2", "dependencies": { "async": "^2.6.3", "debug": "~4.3.1", @@ -8091,24 +7201,21 @@ }, "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==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -8136,8 +7243,7 @@ }, "node_modules/@polkadot/api": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-8.9.1.tgz", - "integrity": "sha512-UwQ5hWPHruqnBO2hriaPhGaOwaWZx9MVECWFJzVs0ZuhKDge9jyBp+JXud/Ly/+8VbeokYUB0DSZG/gTAO5+vg==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/api-augment": "8.9.1", @@ -8163,8 +7269,7 @@ }, "node_modules/@polkadot/api-augment": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-8.9.1.tgz", - "integrity": "sha512-yobYURNgoZcZD3QJmE34n3ZcEEUtsiivquckxjJMXnHJv3zahMyJh75tCNAXjzWn+e+SqKTVlgCpLXYlC1HJPQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/api-base": "8.9.1", @@ -8180,8 +7285,7 @@ }, "node_modules/@polkadot/api-base": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-8.9.1.tgz", - "integrity": "sha512-2OpS9ArZSuUu9vg2Y5DdK7r1iB1Bjx9e+6qerPGry8um+jI+EsHJESylw5OUrR2DxvtW3Ilrk4YvYpQPa9OB4w==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/rpc-core": "8.9.1", @@ -8195,8 +7299,7 @@ }, "node_modules/@polkadot/api-derive": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-8.9.1.tgz", - "integrity": "sha512-zOuNK1tApg3iEC5N4yiOTaMKUykk4tkNU1htcnotOxflgdhYUi22l0JuCrEtrnG6TE2ZH8z1VQA/jK0MbLfC3A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/api": "8.9.1", @@ -8215,8 +7318,7 @@ }, "node_modules/@polkadot/keyring": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-9.5.1.tgz", - "integrity": "sha512-ixv2lq1zNzYa+GqZQTzcraNw5ZrTTK+2/sqfeMOIr7gBGk0UCALuK0NCvTRAUtQK1RT2psBkkm2lr/rrNCeK+A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/util": "9.5.1", @@ -8232,8 +7334,7 @@ }, "node_modules/@polkadot/networks": { "version": "9.7.2", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-9.7.2.tgz", - "integrity": "sha512-oMAdF8Y9CLBI0EUZBcycHcvbQQdbkJHevPJ/lwnZXJTaueXuav/Xm2yiFj5J3V8meIjLocURlMawgsAVItXOBQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.6", "@polkadot/util": "9.7.2", @@ -8245,8 +7346,7 @@ }, "node_modules/@polkadot/rpc-augment": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-8.9.1.tgz", - "integrity": "sha512-6TtZPVjvjcPy3w4lmcNu3MTU1h2YLkZBVNwUZFnZPhALc9qBy9ZcvkMODLPfD+mj+i8Fcfn4b7Ypj+sNqXFxUQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/rpc-core": "8.9.1", @@ -8260,8 +7360,7 @@ }, "node_modules/@polkadot/rpc-core": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-8.9.1.tgz", - "integrity": "sha512-+mAkpxIX2kIovnIIf8uxqjXqPA/7LaeysfIPi8VGrVB3IqvLEaT2rWtCMRSFkBEZwYI7vP7PrAw9co6MMkXlUw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/rpc-augment": "8.9.1", @@ -8276,8 +7375,7 @@ }, "node_modules/@polkadot/rpc-provider": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-8.9.1.tgz", - "integrity": "sha512-XunL29pi464VB6AJGuvVzTnCtk4y5KBwgBIC/S4YMdqi+l2ujXZOFM2WBnbiV+YhB7FEXmbYR8NsKAe/DSb85A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/keyring": "^9.5.1", @@ -8299,8 +7397,7 @@ }, "node_modules/@polkadot/types": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-8.9.1.tgz", - "integrity": "sha512-h43/aPzk+ta0MzzGQz3DiGtearttHxZr08xOdtU5GctI6u9MXm0n0w74clciLpIGu5CI+QxYN3oQ8/5WXTukMw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/keyring": "^9.5.1", @@ -8317,8 +7414,7 @@ }, "node_modules/@polkadot/types-augment": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-8.9.1.tgz", - "integrity": "sha512-kfSioIpB8krtNgIANN8QCik+uBFmxGACEq84oxiqbKc2BfTXzcqQ7jkmslXeEqb9IsQ9rpaa3fkvyoLQNLqXgA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/types": "8.9.1", @@ -8331,8 +7427,7 @@ }, "node_modules/@polkadot/types-codec": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-8.9.1.tgz", - "integrity": "sha512-bboHpTwvHooTdITsmJ5IqAyZDuONZaVs6xC3iRbE9SIHD4kUpivlTc+Rvk91EcQclFo5IUKvNrX4BrOx8Y/YnQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/util": "^9.5.1" @@ -8343,8 +7438,7 @@ }, "node_modules/@polkadot/types-create": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-8.9.1.tgz", - "integrity": "sha512-q7er671QXYcmG4gkZvtKpES7QV013w36s8VT947aT3GDzlGZDQQKNKpELyi7K1sgWjQyrL3/0cTKhP8taAjWPQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/types-codec": "8.9.1", @@ -8356,8 +7450,7 @@ }, "node_modules/@polkadot/types-known": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-8.9.1.tgz", - "integrity": "sha512-y5Fvo7TM9DjM/CNQbQsR78O5LP3CuBbQY90yA2APwqZNn/dilTxWIGrxtPzTG9QCZJyhMN+EZdKUo51brKRI/g==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/networks": "^9.5.1", @@ -8372,8 +7465,7 @@ }, "node_modules/@polkadot/types-support": { "version": "8.9.1", - "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-8.9.1.tgz", - "integrity": "sha512-t3HJc8o68LWvhEy63PRZQxCL4T7sSsrLm7+rpkfeJAEC1DXeFF85FwE2U+YKa3+Z3NuMv2e4DV2jnIZe9XRtHQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/util": "^9.5.1" @@ -8384,8 +7476,7 @@ }, "node_modules/@polkadot/util": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-9.5.1.tgz", - "integrity": "sha512-cI2ar15vkoXjs//YNn1yT5eUdK7jF32XNw3Oc6YJ2qEpenwy30c3BUQJOiqW7J6UBYLYll5O5y0ejv6LQoSFBQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/x-bigint": "9.5.1", @@ -8402,8 +7493,7 @@ }, "node_modules/@polkadot/util-crypto": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-9.5.1.tgz", - "integrity": "sha512-4YwJJ2/mXx3PXTy4WLekQOo1MlDtQzYgTZsjOagi3Uz3Q/ITvS+/iu6eF/H6Tz0uEQjwX6t9tsMkM5FWk/XoGg==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@noble/hashes": "1.1.1", @@ -8426,8 +7516,7 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/networks": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-9.5.1.tgz", - "integrity": "sha512-1q9jm7NLk1ZMqFJL+kYkpn1phEO+N0d5LU81ropjYf0hC9boBAya4Zqvv3DwasPuLp6qaj4r0nrfzmkP5xHKZQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/util": "9.5.1", @@ -8439,8 +7528,7 @@ }, "node_modules/@polkadot/util/node_modules/@polkadot/x-global": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-9.5.1.tgz", - "integrity": "sha512-asG5YlW1K3f4YjyuZ+HrbF9H5d78i5v9+7Bh+9gD+sVfB3KhqwVYZB+wzOaJkPp6lwUbBA9OBHFCVBqpR3wBJw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3" }, @@ -8450,8 +7538,7 @@ }, "node_modules/@polkadot/wasm-bridge": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-6.4.1.tgz", - "integrity": "sha512-QZDvz6dsUlbYsaMV5biZgZWkYH9BC5AfhT0f0/knv8+LrbAoQdP3Asbvddw8vyU9sbpuCHXrd4bDLBwUCRfrBQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -8465,8 +7552,7 @@ }, "node_modules/@polkadot/wasm-crypto": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-6.4.1.tgz", - "integrity": "sha512-FH+dcDPdhSLJvwL0pMLtn/LIPd62QDPODZRCmDyw+pFjLOMaRBc7raomWUOqyRWJTnqVf/iscc2rLVLNMyt7ag==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-bridge": "6.4.1", @@ -8485,8 +7571,7 @@ }, "node_modules/@polkadot/wasm-crypto-asmjs": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.4.1.tgz", - "integrity": "sha512-UxZTwuBZlnODGIQdCsE2Sn/jU0O2xrNQ/TkhRFELfkZXEXTNu4lw6NpaKq7Iey4L+wKd8h4lT3VPVkMcPBLOvA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -8499,8 +7584,7 @@ }, "node_modules/@polkadot/wasm-crypto-init": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.4.1.tgz", - "integrity": "sha512-1ALagSi/nfkyFaH6JDYfy/QbicVbSn99K8PV9rctDUfxc7P06R7CoqbjGQ4OMPX6w1WYVPU7B4jPHGLYBlVuMw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-bridge": "6.4.1", @@ -8517,8 +7601,7 @@ }, "node_modules/@polkadot/wasm-crypto-wasm": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.4.1.tgz", - "integrity": "sha512-3VV9ZGzh0ZY3SmkkSw+0TRXxIpiO0nB8lFwlRgcwaCihwrvLfRnH9GI8WE12mKsHVjWTEVR3ogzILJxccAUjDA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-util": "6.4.1" @@ -8532,8 +7615,7 @@ }, "node_modules/@polkadot/wasm-util": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-6.4.1.tgz", - "integrity": "sha512-Uwo+WpEsDmFExWC5kTNvsVhvqXMZEKf4gUHXFn4c6Xz4lmieRT5g+1bO1KJ21pl4msuIgdV3Bksfs/oiqMFqlw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -8546,8 +7628,7 @@ }, "node_modules/@polkadot/x-bigint": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-9.5.1.tgz", - "integrity": "sha512-rTp7j3KvCy8vANRoaW6j0pCQdLc/eed6uSRXoxh3z1buJhw460/Q/hJ0Bey6fyeNSDzIwFk4SGwf/Gzf+kS1vQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/x-global": "9.5.1" @@ -8558,8 +7639,7 @@ }, "node_modules/@polkadot/x-bigint/node_modules/@polkadot/x-global": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-9.5.1.tgz", - "integrity": "sha512-asG5YlW1K3f4YjyuZ+HrbF9H5d78i5v9+7Bh+9gD+sVfB3KhqwVYZB+wzOaJkPp6lwUbBA9OBHFCVBqpR3wBJw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3" }, @@ -8569,8 +7649,7 @@ }, "node_modules/@polkadot/x-fetch": { "version": "9.7.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-9.7.2.tgz", - "integrity": "sha512-ysXpPNq2S+L98hKow3d59prU4QFRg5N86pMkJdONc4VxtKITVY2MfdLVCqfEOOFuuwCzE7Sfmx53I4XpDgbP7A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.6", "@polkadot/x-global": "9.7.2", @@ -8583,8 +7662,7 @@ }, "node_modules/@polkadot/x-global": { "version": "9.7.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-9.7.2.tgz", - "integrity": "sha512-3NN5JhjosaelaFWBJSlv9mb/gDAlt7RuZ8NKlOjB+LQHd9g6ZbnYi5wwjW+i/x/3E4IVbBx66uvWgNaw7IBrkg==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.6" }, @@ -8594,8 +7672,7 @@ }, "node_modules/@polkadot/x-randomvalues": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-9.5.1.tgz", - "integrity": "sha512-NFvG//NsBjFP01dEtQATNPn5lSAZwh6jkkUXG2rHlgvW6k8nVJ0aJPvO5MlgItgS5Ry2F88AIiSsO3cfoTpszg==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/x-global": "9.5.1" @@ -8606,8 +7683,7 @@ }, "node_modules/@polkadot/x-randomvalues/node_modules/@polkadot/x-global": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-9.5.1.tgz", - "integrity": "sha512-asG5YlW1K3f4YjyuZ+HrbF9H5d78i5v9+7Bh+9gD+sVfB3KhqwVYZB+wzOaJkPp6lwUbBA9OBHFCVBqpR3wBJw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3" }, @@ -8617,8 +7693,7 @@ }, "node_modules/@polkadot/x-textdecoder": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-9.5.1.tgz", - "integrity": "sha512-bY0J3Tov5y4oZi8qB/UtoEYCSgo5sDiiOa3Wmgen09LfB4gXJhWFGJSmcZqHERXCdEcmZojdbHTvOGSeYM9U1w==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/x-global": "9.5.1" @@ -8629,8 +7704,7 @@ }, "node_modules/@polkadot/x-textdecoder/node_modules/@polkadot/x-global": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-9.5.1.tgz", - "integrity": "sha512-asG5YlW1K3f4YjyuZ+HrbF9H5d78i5v9+7Bh+9gD+sVfB3KhqwVYZB+wzOaJkPp6lwUbBA9OBHFCVBqpR3wBJw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3" }, @@ -8640,8 +7714,7 @@ }, "node_modules/@polkadot/x-textencoder": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-9.5.1.tgz", - "integrity": "sha512-zt121nqxiudMeZnanpnfWhCE0SOTcVRqn/atqO59us/yf6LMTf23mgd7P4795TgJwXOUcui4fhm/g/VcpsLq9Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3", "@polkadot/x-global": "9.5.1" @@ -8652,8 +7725,7 @@ }, "node_modules/@polkadot/x-textencoder/node_modules/@polkadot/x-global": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-9.5.1.tgz", - "integrity": "sha512-asG5YlW1K3f4YjyuZ+HrbF9H5d78i5v9+7Bh+9gD+sVfB3KhqwVYZB+wzOaJkPp6lwUbBA9OBHFCVBqpR3wBJw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.3" }, @@ -8663,8 +7735,7 @@ }, "node_modules/@polkadot/x-ws": { "version": "9.7.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-9.7.2.tgz", - "integrity": "sha512-yF2qKL00SGivbima22jxoBNYCZFI8Ph7dmnVm7fDztVtO8Fc2x30Lj3a8+qsSOrynLyJHAh2bjjQxpPmDCB9tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.18.6", "@polkadot/x-global": "9.7.2", @@ -8677,28 +7748,23 @@ }, "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==" + "license": "BSD-3-Clause" }, "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==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "license": "BSD-3-Clause" }, "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==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -8706,50 +7772,42 @@ }, "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==" + "license": "BSD-3-Clause" }, "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==" + "license": "BSD-3-Clause" }, "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==" + "license": "BSD-3-Clause" }, "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==" + "license": "BSD-3-Clause" }, "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==" + "license": "BSD-3-Clause" }, "node_modules/@repeaterjs/repeater": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", - "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@scure/base": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "node_modules/@scure/bip32": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", - "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", + "license": "MIT", "dependencies": { "@noble/curves": "~1.3.0", "@noble/hashes": "~1.3.2", @@ -8761,8 +7819,7 @@ }, "node_modules/@scure/bip32/node_modules/@noble/hashes": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -8772,16 +7829,14 @@ }, "node_modules/@scure/bip32/node_modules/@scure/base": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", + "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip39": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", - "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", + "license": "MIT", "dependencies": { "@noble/hashes": "~1.3.2", "@scure/base": "~1.1.4" @@ -8792,8 +7847,7 @@ }, "node_modules/@scure/bip39/node_modules/@noble/hashes": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -8803,16 +7857,14 @@ }, "node_modules/@scure/bip39/node_modules/@scure/base": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", + "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@sendgrid/client": { "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-7.7.0.tgz", - "integrity": "sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==", + "license": "MIT", "dependencies": { "@sendgrid/helpers": "^7.7.0", "axios": "^0.26.0" @@ -8823,16 +7875,14 @@ }, "node_modules/@sendgrid/client/node_modules/axios": { "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.8" } }, "node_modules/@sendgrid/helpers": { "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-7.7.0.tgz", - "integrity": "sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==", + "license": "MIT", "dependencies": { "deepmerge": "^4.2.2" }, @@ -8842,8 +7892,7 @@ }, "node_modules/@sendgrid/mail": { "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-7.7.0.tgz", - "integrity": "sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==", + "license": "MIT", "dependencies": { "@sendgrid/client": "^7.7.0", "@sendgrid/helpers": "^7.7.0" @@ -8854,31 +7903,37 @@ }, "node_modules/@sideway/address": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "license": "BSD-3-Clause" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } }, "node_modules/@sqltools/formatter": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", - "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" + "license": "MIT" }, "node_modules/@subsquid/archive-registry": { "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-2.1.14.tgz", - "integrity": "sha512-STsM5ys44lV5aW+Ha1go5eLfTCLJGrB603/Ok4JbaruaU23RBTsIyLkI4FK08sSEkeQhX54xR7U/fZX85yjnIA==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/util-internal": "^1.0.0", "commander": "^10.0.0", @@ -8891,21 +7946,17 @@ }, "node_modules/@subsquid/archive-registry/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@subsquid/graphiql-console": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", - "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" + "version": "0.3.0" }, "node_modules/@subsquid/graphql-server": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-3.3.2.tgz", - "integrity": "sha512-sJbOqvUrIej34bodz2jYPgOCB8GxwdqmMYEkbk6jz4OAwGS103bUYzypAtk35zxJYL9xzFRPhIXrNOaa9glXQw==", + "license": "GPL-3.0-or-later", "dependencies": { "@apollo/utils.keyvadapter": "~1.1.2", "@apollo/utils.keyvaluecache": "~1.0.2", @@ -8957,8 +8008,7 @@ }, "node_modules/@subsquid/graphql-server/node_modules/@graphql-tools/schema": { "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", + "license": "MIT", "dependencies": { "@graphql-tools/merge": "8.3.1", "@graphql-tools/utils": "8.9.0", @@ -8971,8 +8021,7 @@ }, "node_modules/@subsquid/graphql-server/node_modules/@graphql-tools/schema/node_modules/@graphql-tools/merge": { "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", + "license": "MIT", "dependencies": { "@graphql-tools/utils": "8.9.0", "tslib": "^2.4.0" @@ -8983,8 +8032,7 @@ }, "node_modules/@subsquid/graphql-server/node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", + "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, @@ -8994,8 +8042,7 @@ }, "node_modules/@subsquid/graphql-server/node_modules/@graphql-tools/utils": { "version": "8.13.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", - "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", + "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, @@ -9005,24 +8052,21 @@ }, "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal-commander": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-0.0.2.tgz", - "integrity": "sha512-midCpkwu7NaXGhr0MiyQsJlIj284/0mAFBvVG8gRHqqRqb71GIAQq+aRcUSv8KNnAiRWnXK1OPak+gc40V9btw==", + "license": "GPL-3.0-or-later", "peerDependencies": { "commander": "^10.0.0" } }, "node_modules/@subsquid/graphql-server/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@subsquid/graphql-server/node_modules/pg": { "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "license": "MIT", "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", @@ -9049,16 +8093,14 @@ }, "node_modules/@subsquid/graphql-server/node_modules/value-or-promise": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/@subsquid/logger": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-0.3.1.tgz", - "integrity": "sha512-Hi0aWeVgK0OZ3L2KxRejLCHIBIs6k3AR8FEb9RCKgQvqHK8DDNuMFANo4obHqXDZpDF+Ef+T050Oz5n4O1u3lA==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/util-internal-hex": "^0.0.2", "@subsquid/util-internal-json": "^0.2.1", @@ -9067,16 +8109,14 @@ }, "node_modules/@subsquid/logger/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==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@subsquid/logger/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9089,8 +8129,7 @@ }, "node_modules/@subsquid/openreader": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-3.1.7.tgz", - "integrity": "sha512-Ma1RAFk4dtmcRfcL/ys9Kq7qaEWvKH0TCbd5vcijwfnPu7GpOhU/3wYtegrwhQiWg1AaDavd9ub9jLPvur0FFQ==", + "license": "GPL-3.0-or-later", "dependencies": { "@graphql-tools/merge": "^8", "@subsquid/graphiql-console": "^0.3.0", @@ -9125,24 +8164,21 @@ }, "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal-commander": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-0.0.2.tgz", - "integrity": "sha512-midCpkwu7NaXGhr0MiyQsJlIj284/0mAFBvVG8gRHqqRqb71GIAQq+aRcUSv8KNnAiRWnXK1OPak+gc40V9btw==", + "license": "GPL-3.0-or-later", "peerDependencies": { "commander": "^10.0.0" } }, "node_modules/@subsquid/openreader/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@subsquid/openreader/node_modules/pg": { "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "license": "MIT", "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", @@ -9169,8 +8205,7 @@ }, "node_modules/@subsquid/rpc-client": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-2.0.0.tgz", - "integrity": "sha512-El67TER6lmeoaeOlRNELlH2AGpG4YWg8YRnIw3yrfzYhiXsmpX1Hra4XJi53/RxU5tsS1qMON2bd44QbceL27Q==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/util-timeout": "^1.0.0", "websocket": "^1.0.34" @@ -9178,8 +8213,7 @@ }, "node_modules/@subsquid/scale-codec": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-1.1.1.tgz", - "integrity": "sha512-gDI0TnF0LXG5+nwXW6TUkTBVfbTcPqtPeAqAwy6Z9EtetHK8IoogkewIILisXcbVun2M66cZR+i/VABbaVy2Sw==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/util-internal-hex": "^0.0.2", "@subsquid/util-internal-json": "^0.2.1" @@ -9187,16 +8221,14 @@ }, "node_modules/@subsquid/ss58": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-0.1.4.tgz", - "integrity": "sha512-YM7Wt+upN8M5IZ9tr+yxHafBOWCcvJzXz4rlC62SM7VCP++ErqbBtui03yROussGTSAjBObXgzVljYypG0kawQ==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/ss58-codec": "^0.1.2" } }, "node_modules/@subsquid/ss58-codec": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@subsquid/ss58-codec/-/ss58-codec-0.1.2.tgz", - "integrity": "sha512-fyTFjx60m0j4aNJMocNaJBptc/TWh9BCb33gtVPfcPV6gVIPhH37rbHaXz3+9NlnsLAiOuxrzDfbKOcxws/ZdA==", + "license": "GPL-3.0-or-later", "dependencies": { "base-x": "^4.0.0", "blake2b": "^2.1.4" @@ -9204,8 +8236,7 @@ }, "node_modules/@subsquid/substrate-metadata": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata/-/substrate-metadata-2.3.0.tgz", - "integrity": "sha512-jHmeShjbQdvAYhRQ/62yOaPlGr5veKdF9idazCEUYMHQsy0U/TNPtsGyAwmLU/9qvwqpCe775XBEetlb9pa9FA==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/scale-codec": "^1.1.1", "@subsquid/util-internal": "^1.1.0", @@ -9214,9 +8245,8 @@ }, "node_modules/@subsquid/substrate-metadata-explorer": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-1.1.2.tgz", - "integrity": "sha512-HE8g4PeDTGAXYBCbao7DayHkKzR+h0e7ocsJoEqKaNFO22Brnv9RVkcoUjswcWDWmXQyekS0hQI4O2JgYHy6cA==", "dev": true, + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/logger": "^0.3.1", "@subsquid/util-internal": "^1.1.0", @@ -9233,26 +8263,23 @@ }, "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal-commander": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-0.0.2.tgz", - "integrity": "sha512-midCpkwu7NaXGhr0MiyQsJlIj284/0mAFBvVG8gRHqqRqb71GIAQq+aRcUSv8KNnAiRWnXK1OPak+gc40V9btw==", "dev": true, + "license": "GPL-3.0-or-later", "peerDependencies": { "commander": "^10.0.0" } }, "node_modules/@subsquid/substrate-metadata-explorer/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@subsquid/substrate-processor": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-2.4.1.tgz", - "integrity": "sha512-vFHDbiovCC/BDb03ui55M5Cf638Qcb9YZVKDs2xTltFMpT9lQM1Rs+bpaCne3AqAS5SY03A/PUKNu4jxl8fXTQ==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/logger": "^0.3.1", "@subsquid/scale-codec": "^1.1.1", @@ -9281,9 +8308,8 @@ }, "node_modules/@subsquid/substrate-typegen": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-2.2.1.tgz", - "integrity": "sha512-kRV5aA4w6jUfiWdcRKUW/zjgtWLMKlai02AwN8BdW1T+6pOk0jI9PFvTbiGWjmqAjTHxCHOuNvhmvzNApl20gg==", "dev": true, + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/logger": "^0.3.1", "@subsquid/scale-codec": "^1.1.1", @@ -9302,18 +8328,16 @@ }, "node_modules/@subsquid/substrate-typegen/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@subsquid/typeorm-codegen": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-0.3.1.tgz", - "integrity": "sha512-oNyKeFkSE9w4lIr1yOUAyVcSAZ694bCni16YH3TJEQnIFs6ANGAvLX/GuSUpcmhW1MN44UhV2jy75l6Oz5ghMA==", "dev": true, + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/openreader": "^3.1.4", "@subsquid/util-internal": "^1.0.0", @@ -9327,9 +8351,8 @@ }, "node_modules/@subsquid/typeorm-codegen/node_modules/@subsquid/util-naming": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-0.0.1.tgz", - "integrity": "sha512-qxvZX/JJ8zqBxsGrVATu/M3Q3vGWXPO5L0AGIGtNUaBZm8T3WlzKUn6+MDuxU18xaLS50xEpYa91tUgIqga9WA==", "dev": true, + "license": "GPL-3.0-or-later", "dependencies": { "camelcase": "^6.3.0", "inflected": "^2.1.0" @@ -9337,17 +8360,15 @@ }, "node_modules/@subsquid/typeorm-codegen/node_modules/commander": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/@subsquid/typeorm-config": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-2.0.2.tgz", - "integrity": "sha512-LoyWzhFeNSI9fXnhgYF4MizyGuiBVB7t3je9TFsOTCnOTYSIcDKJJkmCDzobDlA8PgkJ5bFLFilxIFKsVFqt4w==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/util-naming": "^0.0.2" }, @@ -9362,8 +8383,7 @@ }, "node_modules/@subsquid/typeorm-migration": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-migration/-/typeorm-migration-0.1.4.tgz", - "integrity": "sha512-x2VCODuomJrxCPQFJipQ3//0BsrK+dx4lJbr7nPPbh7zULo17pQ0gByD5H849fua3bLDzRzQHm1kCC+IgTj2lg==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/typeorm-config": "^2.0.0", "@subsquid/util-internal": "^1.0.0", @@ -9384,24 +8404,21 @@ }, "node_modules/@subsquid/typeorm-migration/node_modules/commander": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/@subsquid/typeorm-migration/node_modules/dotenv": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", "engines": { "node": ">=10" } }, "node_modules/@subsquid/typeorm-store": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-0.2.2.tgz", - "integrity": "sha512-mzqiJCPFT/KBuwNuNAK8D3Wmf5Hws27wvYWw/bXAAT47rxAERz3oLMsAs/dSjXT30F63kMcQfJzvp5FOsa3Ohw==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/typeorm-config": "^2.0.2", "@subsquid/util-internal": "^1.1.0" @@ -9412,24 +8429,20 @@ }, "node_modules/@subsquid/util-internal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-1.1.0.tgz", - "integrity": "sha512-O6m666RDcWEw4vb3bmeNZKlAa1rGOHQvS0nhZFTBXnxZpqK/pU5N0jrQ7X/3is0pY2RKxFoxTurZjhv4QdxtqA==" + "license": "GPL-3.0-or-later" }, "node_modules/@subsquid/util-internal-binary-heap": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-0.0.0.tgz", - "integrity": "sha512-eVtdf442+L10G4lgSHCcxgNzYEcrdZ3WKy7Y7CGkhKLJhKuOlgDtEwklZmh1/lM+37AQn9XnX/VpxTaJ2vA2sg==" + "license": "GPL-3.0-or-later" }, "node_modules/@subsquid/util-internal-code-printer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-0.1.1.tgz", - "integrity": "sha512-367YmYeLoLaOiBdlrYElEC4AeM4Kx0XYWM9mA9VBllGvT9qWNnGllaJ+mY9UBhlhWQtCbUnTRtHXhjR5qL8g1w==" + "license": "GPL-3.0-or-later" }, "node_modules/@subsquid/util-internal-config": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-1.0.1.tgz", - "integrity": "sha512-F5jr3OWerUQ+dn0ecCtcizdZunlFN6wXy50SmfLY+x8f8ggXsk3Z2waIxJjOAB4GnuNYyvvQREM7pusjCyN2RQ==", "dev": true, + "license": "GPL-3.0-or-later", "dependencies": { "@exodus/schemasafe": "^1.0.0-rc.9", "jsonc-parser": "^3.2.0" @@ -9437,18 +8450,15 @@ }, "node_modules/@subsquid/util-internal-counters": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-counters/-/util-internal-counters-0.0.2.tgz", - "integrity": "sha512-x/O+56bR/X41ZEKjxZy0IqiapKCN9gGJB7G8md+idvGeC15kw8r5pg2Ck9tulB07VQEOqWLNNuvobrfvH0hNkg==" + "license": "GPL-3.0-or-later" }, "node_modules/@subsquid/util-internal-hex": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-0.0.2.tgz", - "integrity": "sha512-EgqYmZjJ6ox885tXBObEAZQZImpRc5pFzQeOLEh78gGPTc39IH3VI4BG0zaomStvgBx+e25M7Y2cc+ae+ttuXQ==" + "license": "GPL-3.0-or-later" }, "node_modules/@subsquid/util-internal-http-client": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-client/-/util-internal-http-client-0.1.0.tgz", - "integrity": "sha512-LOSOX1Yv4t/NA/90qrmmCArOYTntxWV4dcnTXadKXQiM9gPnVNGLCa+Z17HYjBrvZFHDdYglV2F9kOikOqDd/Q==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/logger": "^0.3.1", "@subsquid/util-internal": "^1.1.0", @@ -9457,16 +8467,14 @@ }, "node_modules/@subsquid/util-internal-http-client/node_modules/data-uri-to-buffer": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/@subsquid/util-internal-http-client/node_modules/node-fetch": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -9482,24 +8490,21 @@ }, "node_modules/@subsquid/util-internal-http-server": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-0.1.1.tgz", - "integrity": "sha512-Vi7hSBSty5qOvrANNsxCtHASpdhRqmJsrp+hVnQ3PhcrZkGRrcu0O7jkVAZfhptzxMZeQ5r/NXDTt4b/qNSvJg==", + "license": "GPL-3.0-or-later", "dependencies": { "stoppable": "^1.1.0" } }, "node_modules/@subsquid/util-internal-json": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-0.2.1.tgz", - "integrity": "sha512-X9bhhKWBcaeZekGEiE15i8xwfq07/aIYDhA+JFdiVT3aygdb9b57V85USuArd6oh3jjHeQ2SBgj6B5rd8m8vlA==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/util-internal-hex": "^0.0.2" } }, "node_modules/@subsquid/util-internal-prometheus-server": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-0.0.3.tgz", - "integrity": "sha512-Hb40h47V6tnBcCoZYeXERUUlDcrJMajcwhXf4vBpuq6wJMXhBaYwOpP+sr7v0x3wvHfuh1639BRxxbKBVcuOfw==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/util-internal-http-server": "^0.1.1" }, @@ -9509,14 +8514,12 @@ }, "node_modules/@subsquid/util-internal-read-lines": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-0.0.2.tgz", - "integrity": "sha512-XniSw0MTQXJVAB3pl3ZBylFeFGdPMEwLdWUfOePQYsCH13Y7nat2fJ5W4tK78yJ456UsuB+mw8qS2EuAfcOvfw==", - "dev": true + "dev": true, + "license": "GPL-3.0-or-later" }, "node_modules/@subsquid/util-internal-resilient-rpc": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-resilient-rpc/-/util-internal-resilient-rpc-0.0.3.tgz", - "integrity": "sha512-HExQgeQFHEk7HfnjXZZApHtRF2mAsnu90E7hoWTrVnDzsvMTvtX9tPMjQXKXFoyDDb+WQcVs0yqnzl6rhQY2Iw==", + "license": "GPL-3.0-or-later", "dependencies": { "@subsquid/logger": "^0.3.1", "@subsquid/rpc-client": "^2.0.0", @@ -9528,8 +8531,7 @@ }, "node_modules/@subsquid/util-naming": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-0.0.2.tgz", - "integrity": "sha512-t23kWD5kdRi03HXAhMSO1SesmM6dyD8kmMKfBR5SoFScij0Z2zf4dZ/jQT0bH9V59r4eZvv+NxR5XC+uR8GBAQ==", + "license": "GPL-3.0-or-later", "dependencies": { "camelcase": "^6.3.0", "inflected": "^2.1.0" @@ -9537,13 +8539,11 @@ }, "node_modules/@subsquid/util-timeout": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-timeout/-/util-timeout-1.0.0.tgz", - "integrity": "sha512-6LiXYuRKIFcuUOsHPL3qN+cYDZJiCPGQFDdBECrZvXM/FtjF6dloX9JS4LJ7lMHsnKsu7v78+ioiUYpk1Jlyug==" + "license": "GPL-3.0-or-later" }, "node_modules/@subsquid/util-xxhash": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-0.1.2.tgz", - "integrity": "sha512-UQ1opUT0vP2wwCYblM5TvDtvKvPy3LLRI4vVlLPXDelroTa5zkWL3LNTC+Niw4Mvac0u3gpqNDknVdKlKrVvhw==", + "license": "GPL-3.0-or-later", "dependencies": { "xxhash-wasm": "^1.0.2", "xxhashjs": "^0.2.2" @@ -9551,8 +8551,7 @@ }, "node_modules/@substrate/connect": { "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.6.tgz", - "integrity": "sha512-PHizR91CbjC5bzUwgYUZJrbOyoraCS1QqoxkFHteZ/0vkXDKyuzoixobDaITJqq6wSTeM8ZSjuOn9u/3q7F5+A==", + "license": "GPL-3.0-only", "dependencies": { "@substrate/connect-extension-protocol": "^1.0.0", "@substrate/smoldot-light": "0.6.19", @@ -9561,13 +8560,11 @@ }, "node_modules/@substrate/connect-extension-protocol": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz", - "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==" + "license": "GPL-3.0-only" }, "node_modules/@substrate/smoldot-light": { "version": "0.6.19", - "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.6.19.tgz", - "integrity": "sha512-Xi+v1cdURhTwx7NH+9fa1U9m7VGP61GvB6qwev9HrZXlGbQiUIvySxPlH/LMsq3mwgiRYkokPhcaZEHufY7Urg==", + "license": "GPL-3.0-or-later WITH Classpath-exception-2.0", "dependencies": { "buffer": "^6.0.1", "pako": "^2.0.4", @@ -9576,14 +8573,12 @@ }, "node_modules/@substrate/ss58-registry": { "version": "1.47.0", - "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.47.0.tgz", - "integrity": "sha512-6kuIJedRcisUJS2pgksEH2jZf3hfSIVzqtFzs/AyjTW3ETbMg5q1Bb7VWa0WYaT6dTrEXp/6UoXM5B9pSIUmcw==" + "license": "Apache-2.0" }, "node_modules/@substrate/txwrapper-core": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@substrate/txwrapper-core/-/txwrapper-core-6.0.1.tgz", - "integrity": "sha512-pwYvrDgTyNRqOxxmmbhjpuPoZR8+WKYtmY4Eqv++FUUfPVo6xMQGps8n1LQAwKrA3/79F0dCrdV2LPDlUtjmYQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@polkadot/api": "^10.7.1", "@polkadot/keyring": "^12.2.1", @@ -9592,9 +8587,8 @@ }, "node_modules/@substrate/txwrapper-polkadot": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@substrate/txwrapper-polkadot/-/txwrapper-polkadot-6.0.1.tgz", - "integrity": "sha512-adIa8/npvB0+Y2chgx6cwE5BEcGK7He+yrLiSIUyd5f92pW+94nt48mOLyKm9fJl1Uvsc23Apn6USECAtouPfQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@substrate/txwrapper-core": "^6.0.1", "@substrate/txwrapper-substrate": "^6.0.1" @@ -9602,90 +8596,88 @@ }, "node_modules/@substrate/txwrapper-substrate": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@substrate/txwrapper-substrate/-/txwrapper-substrate-6.0.1.tgz", - "integrity": "sha512-LxskfiF1lf+/TMU1C50imLl9+NR+/Hx/BIqf4KfbiF7pXgGFN2bUs/50p5NIJmCt78DRNrHvtVoRraINeMbvLA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@substrate/txwrapper-core": "^6.0.1" } }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/@types/accepts": { "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/async-lock": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/async-lock/-/async-lock-1.4.2.tgz", - "integrity": "sha512-HlZ6Dcr205BmNhwkdXqrg2vkFMN2PluI7Lgr8In3B3wE5PiQHhjRqtW/lGdVU9gw+sM0JcIDx2AN+cW8oSWIcw==" + "license": "MIT" }, "node_modules/@types/aws-lambda": { "version": "8.10.81", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.81.tgz", - "integrity": "sha512-C1rFKGVZ8KwqhwBOYlpoybTSRtxu2433ea6JaO3amc6ubEe08yQoFsPa9aU9YqvX7ppeZ25CnCtC4AH9mhtxsQ==" + "license": "MIT" }, "node_modules/@types/big-json": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@types/big-json/-/big-json-3.2.4.tgz", - "integrity": "sha512-9j4OYGHfHazBz7WxRs1tqXy2qccjYAa4ej3vfT0uIPFvlX6nYw9Mvgxijvww6OKZE0aK6kFHTXDxR0uVJiRhLw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/bmp-js": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/bmp-js/-/bmp-js-0.1.2.tgz", - "integrity": "sha512-BF6u+M+KySDBKfr1DQOT3+z42n4/tq62uf9ong4i2SLLpa7mJqPwEmKbNgMzlVliT/jtE6elxyD/0X1mja8jLg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/bn.js": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/body-parser": { "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -9693,59 +8685,62 @@ }, "node_modules/@types/bunyan": { "version": "1.8.7", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.7.tgz", - "integrity": "sha512-jaNt6xX5poSmXuDAkQrSqx2zkR66OrdRDuVnU8ldvn3k/Ci/7Sf5nooKspQWimDnw337Bzt/yirqSThTjvrHkg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "node_modules/@types/chai": { "version": "4.3.12", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz", - "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/cli-progress": { "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.5.tgz", - "integrity": "sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==", "dev": true, + "license": "MIT", "dependencies": { "@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==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/content-disposition": { "version": "0.5.8", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", - "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==" + "license": "MIT" }, "node_modules/@types/cookie-parser": { "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.7.tgz", - "integrity": "sha512-Fvuyi354Z+uayxzIGCwYTayFKocfV7TuDYZClCdIP9ckhvAu/ixDtCB6qx2TT0FKjPLf1f3P/J1rgf6lPs64mw==", "dev": true, + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/cookiejar": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", - "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/cookies": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", - "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/express": "*", @@ -9755,22 +8750,19 @@ }, "node_modules/@types/cors": { "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + "license": "MIT" }, "node_modules/@types/debug": { "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/express": { "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -9780,18 +8772,15 @@ }, "node_modules/@types/express-rate-limit": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@types/express-rate-limit/-/express-rate-limit-6.0.0.tgz", - "integrity": "sha512-nZxo3nwU20EkTl/f2eGdndQkDIJYwkXIX4S3Vrp2jMdSdFJ6AWtIda8gOz0wiMuOFoeH/UUlCAiacz3x3eWNFA==", - "deprecated": "This is a stub types definition. express-rate-limit provides its own type definitions, so you do not need this installed.", "dev": true, + "license": "MIT", "dependencies": { "express-rate-limit": "*" } }, "node_modules/@types/express-serve-static-core": { "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -9801,26 +8790,23 @@ }, "node_modules/@types/fluent-ffmpeg": { "version": "2.1.24", - "resolved": "https://registry.npmjs.org/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.24.tgz", - "integrity": "sha512-g5oQO8Jgi2kFS3tTub7wLvfLztr1s8tdXmRd8PiL/hLMLzTIAyMR2sANkTggM/rdEDAg3d63nYRRVepwBiCw5A==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/generic-pool": { "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@types/generic-pool/-/generic-pool-3.8.1.tgz", - "integrity": "sha512-eaMAbZS0EfKvaP5PUZ/Cdf5uJBO2t6T3RdvQTKuMqUwGhNpCnPAsKWEMyV+mCeCQG3UiHrtgdzni8X6DmhxRaQ==", "deprecated": "This is a stub types definition. generic-pool provides its own type definitions, so you do not need this installed.", + "license": "MIT", "dependencies": { "generic-pool": "*" } }, "node_modules/@types/glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -9828,13 +8814,11 @@ }, "node_modules/@types/hapi__catbox": { "version": "10.2.6", - "resolved": "https://registry.npmjs.org/@types/hapi__catbox/-/hapi__catbox-10.2.6.tgz", - "integrity": "sha512-qdMHk4fBlwRfnBBDJaoaxb+fU9Ewi2xqkXD3mNjSPl2v/G/8IJbDpVRBuIcF7oXrcE8YebU5M8cCeKh1NXEn0w==" + "license": "MIT" }, "node_modules/@types/hapi__hapi": { "version": "20.0.9", - "resolved": "https://registry.npmjs.org/@types/hapi__hapi/-/hapi__hapi-20.0.9.tgz", - "integrity": "sha512-fGpKScknCKZityRXdZgpCLGbm41R1ppFgnKHerfZlqOOlCX/jI129S6ghgBqkqCE8m9A0CIu1h7Ch04lD9KOoA==", + "license": "MIT", "dependencies": { "@hapi/boom": "^9.0.0", "@hapi/iron": "^6.0.0", @@ -9848,35 +8832,35 @@ }, "node_modules/@types/hapi__mimos": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz", - "integrity": "sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ==", + "license": "MIT", "dependencies": { "@types/mime-db": "*" } }, "node_modules/@types/hapi__shot": { "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/hapi__shot/-/hapi__shot-4.1.6.tgz", - "integrity": "sha512-h33NBjx2WyOs/9JgcFeFhkxnioYWQAZxOHdmqDuoJ1Qjxpcs+JGvSjEEoDeWfcrF+1n47kKgqph5IpfmPOnzbg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-assert": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.5.tgz", - "integrity": "sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==" + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" }, "node_modules/@types/http-errors": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + "license": "MIT" }, "node_modules/@types/inquirer": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", "dev": true, + "license": "MIT", "dependencies": { "@types/through": "*", "rxjs": "^6.4.0" @@ -9884,9 +8868,8 @@ }, "node_modules/@types/inquirer/node_modules/rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^1.9.0" }, @@ -9896,56 +8879,55 @@ }, "node_modules/@types/inquirer/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@types/ioredis4": { "name": "@types/ioredis", "version": "4.28.10", - "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz", - "integrity": "sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/iso-3166-2": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/iso-3166-2/-/iso-3166-2-1.0.3.tgz", - "integrity": "sha512-jOqKFSfZYVJ5ARkXH2V2RrEhLvFds1RVrFGRKKxqLU3jjExlf5LtqdFgXNd19KAMRhgsZSNjedeLDVYlGUemZg==" + "license": "MIT" }, "node_modules/@types/js-yaml": { "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", - "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "license": "MIT" }, "node_modules/@types/json-stable-stringify": { "version": "1.0.36", - "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.36.tgz", - "integrity": "sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/keygrip": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", - "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==" + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/koa": { "version": "2.13.6", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.6.tgz", - "integrity": "sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==", + "license": "MIT", "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -9959,110 +8941,93 @@ }, "node_modules/@types/koa__router": { "version": "8.0.7", - "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-8.0.7.tgz", - "integrity": "sha512-OB3Ax75nmTP+WR9AgdzA42DI7YmBtiNKN2g1Wxl+d5Dyek9SWt740t+ukwXSmv/jMBCUPyV3YEI93vZHgdP7UQ==", + "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/koa-compose": { "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", - "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", + "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/lodash": { "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", - "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==" + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/@types/lowdb": { "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@types/lowdb/-/lowdb-1.0.15.tgz", - "integrity": "sha512-xaMNIveDCryK4UvnUJOc2BCOH0lPivdvWHrutsLryo9r9Id3RqZq2RDmT4eddiEPYzu7nJMw6nFIcVifcqjWqg==", + "license": "MIT", "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/memcached": { "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.10.tgz", - "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/methods": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", - "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + "license": "MIT" }, "node_modules/@types/mime-db": { "version": "1.43.5", - "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.43.5.tgz", - "integrity": "sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A==" + "license": "MIT" }, "node_modules/@types/mime-types": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz", - "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/minimatch": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" + "license": "MIT" }, "node_modules/@types/mocha": { "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/ms": { "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/multer": { "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.11.tgz", - "integrity": "sha512-svK240gr6LVWvv3YGyhLlA+6LRRWA4mnGIU7RcNmgjBYFl6665wcXrRfxGp5tEPVHUNm5FMcmq7too9bxCwX/w==", + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/mysql": { "version": "2.15.19", - "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.19.tgz", - "integrity": "sha512-wSRg2QZv14CWcZXkgdvHbbV2ACufNy5EgI8mBBxnJIptchv7DBy/h53VMa2jDhyo0C9MO4iowE6z9vF8Ja1DkQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/node": { "version": "16.11.56", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.56.tgz", - "integrity": "sha512-aFcUkv7EddxxOa/9f74DINReQ/celqH8DiB3fRYgVDM2Xm5QJL8sl80QKuAnGvwAsMn+H3IFA6WCrQh1CY7m1A==" + "license": "MIT" }, "node_modules/@types/node-fetch": { "version": "2.6.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "license": "MIT", "dependencies": { "@types/node": "*", "form-data": "^4.0.0" @@ -10070,22 +9035,19 @@ }, "node_modules/@types/node-schedule": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@types/node-schedule/-/node-schedule-2.1.6.tgz", - "integrity": "sha512-6AlZSUiNTdaVmH5jXYxX9YgmF1zfOlbjUqw0EllTBmZCnN1R5RR/m/u3No1OiWR05bnQ4jM4/+w4FcGvkAtnKQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/parse-json": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/pg": { "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", - "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", + "license": "MIT", "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -10094,46 +9056,47 @@ }, "node_modules/@types/pg-pool": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.3.tgz", - "integrity": "sha512-fwK5WtG42Yb5RxAwxm3Cc2dJ39FlgcaNiXKvtTLAwtCn642X7dgel+w1+cLWwpSOFImR3YjsZtbkfjxbHtFAeg==", + "license": "MIT", "dependencies": { "@types/pg": "*" } }, "node_modules/@types/proper-lockfile": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/proper-lockfile/-/proper-lockfile-4.1.4.tgz", - "integrity": "sha512-uo2ABllncSqg9F1D4nugVl9v93RmjxF6LJzQLMLDdPaXCUIDPeOJ21Gbqi43xNKzBi/WQ0Q0dICqufzQbMjipQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/retry": "*" } }, "node_modules/@types/qs": { "version": "6.9.12", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", - "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==" + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + "license": "MIT" + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/retry": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.5.tgz", - "integrity": "sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/semver": { "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -10141,8 +9104,7 @@ }, "node_modules/@types/serve-static": { "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/mime": "*", @@ -10151,20 +9113,17 @@ }, "node_modules/@types/shimmer": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.5.tgz", - "integrity": "sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==" + "license": "MIT" }, "node_modules/@types/slug": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@types/slug/-/slug-0.9.1.tgz", - "integrity": "sha512-zR/u8WFQ4/6uCIikjI00a5uB084XjgEGNRAvM4a1BL39Bw9yEiDQFiPS2DgJ8lPDkR2Qd/vZ26dCR9XqlKbDqQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/superagent": { "version": "8.1.4", - "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.4.tgz", - "integrity": "sha512-uzSBYwrpal8y2X2Pul5ZSWpzRiDha2FLcquaN95qUPnOjYgm/zQ5LIdqeJpQJTRWNTN+Rhm0aC8H06Ds2rqCYw==", "dev": true, + "license": "MIT", "dependencies": { "@types/cookiejar": "^2.1.5", "@types/methods": "^1.1.4", @@ -10173,18 +9132,16 @@ }, "node_modules/@types/supertest": { "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.16.tgz", - "integrity": "sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==", "dev": true, + "license": "MIT", "dependencies": { "@types/superagent": "*" } }, "node_modules/@types/swagger-ui-express": { "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.6.tgz", - "integrity": "sha512-UVSiGYXa5IzdJJG3hrc86e8KdZWLYxyEsVoUI4iPXc7CO4VZ3AfNP8d/8+hrDRIqz+HAaSMtZSqAsF3Nq2X/Dg==", "dev": true, + "license": "MIT", "dependencies": { "@types/express": "*", "@types/serve-static": "*" @@ -10192,81 +9149,85 @@ }, "node_modules/@types/tedious": { "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", - "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/through": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz", - "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/ua-parser-js": { "version": "0.7.39", - "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.39.tgz", - "integrity": "sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/unist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + "license": "MIT" }, "node_modules/@types/url-join": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/url-join/-/url-join-4.0.3.tgz", - "integrity": "sha512-3l1qMm3wqO0iyC5gkADzT95UVW7C/XXcdvUcShOideKF0ddgVRErEQQJXBd2kvQm+aSgqhBGHGB38TgMeT57Ww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/uuid": { "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.8.tgz", - "integrity": "sha512-95N4tyM4B5u1sj2m8Tht09qWHju2ht413GBFz8CHtxp8aIiJUF6t51MsR7jC9OF4rRVf93AxE++WJe7+Puc1UA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/validator": { "version": "13.11.9", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.9.tgz", - "integrity": "sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==", + "license": "MIT", "peer": true }, "node_modules/@types/vfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-4.0.0.tgz", - "integrity": "sha512-eleP0/Cz8uVWxARDLi3Axq2+fDdN4ibAXoC6Pv8p6s7znXaUL7XvhgeIhjCiNMnvlLNP+tmCLd+RuCryGgmtEg==", - "deprecated": "This is a stub types definition. vfile provides its own type definitions, so you do not need this installed.", + "license": "MIT", "dependencies": { "vfile": "*" } }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + }, "node_modules/@types/websocket": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.10.tgz", - "integrity": "sha512-svjGZvPB7EzuYS94cI7a+qhwgGU1y89wUgjT6E2wVUfmAGIvRfT7obBvRtnhXCSsoMdlG4gBFGE7MfkIXZLoww==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "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==", + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, "node_modules/@types/ws": { "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.62.0", @@ -10298,9 +9259,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10310,9 +9270,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10325,15 +9284,13 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/parser": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -10358,9 +9315,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -10375,9 +9331,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -10402,9 +9357,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -10415,9 +9369,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", @@ -10442,9 +9395,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10454,9 +9406,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10469,15 +9420,13 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -10501,9 +9450,8 @@ }, "node_modules/@typescript-eslint/utils/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10513,9 +9461,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10528,15 +9475,13 @@ }, "node_modules/@typescript-eslint/utils/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -10551,8 +9496,7 @@ }, "node_modules/@typescript/analyze-trace": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@typescript/analyze-trace/-/analyze-trace-0.9.1.tgz", - "integrity": "sha512-HIWrYxz106aoJJauaCb08fK2XjH17KpuELEfWlgq72hYucEo3Hwtr0bCKE6EM2t2uUNEBvPG1tuYRU2yiF/qlg==", + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "exit": "^0.1.2", @@ -10571,8 +9515,7 @@ }, "node_modules/@typescript/analyze-trace/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -10581,8 +9524,7 @@ }, "node_modules/@typescript/analyze-trace/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -10598,21 +9540,18 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@whatwg-node/events": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.3.tgz", - "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@whatwg-node/fetch": { "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.8.tgz", - "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/webcrypto": "^1.4.0", "@whatwg-node/node-fetch": "^0.3.6", @@ -10623,9 +9562,8 @@ }, "node_modules/@whatwg-node/node-fetch": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz", - "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", "dev": true, + "license": "MIT", "dependencies": { "@whatwg-node/events": "^0.0.3", "busboy": "^1.6.0", @@ -10636,8 +9574,7 @@ }, "node_modules/@wry/caches": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz", - "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -10647,8 +9584,7 @@ }, "node_modules/@wry/context": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz", - "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -10658,8 +9594,7 @@ }, "node_modules/@wry/equality": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz", - "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -10669,8 +9604,7 @@ }, "node_modules/@wry/trie": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz", - "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -10680,30 +9614,26 @@ }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + "license": "BSD-2-Clause" }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", "dev": true, + "license": "(Unlicense OR Apache-2.0)", "optional": true }, "node_modules/abbrev": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/abort-controller": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -10713,9 +9643,8 @@ }, "node_modules/abstract-leveldown": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -10729,8 +9658,6 @@ }, "node_modules/abstract-leveldown/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -10746,6 +9673,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -10753,8 +9681,7 @@ }, "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==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -10765,9 +9692,8 @@ }, "node_modules/acorn": { "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "devOptional": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -10777,27 +9703,24 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -10807,9 +9730,8 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -10820,17 +9742,15 @@ }, "node_modules/aggregate-error/node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -10844,8 +9764,7 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -10860,8 +9779,7 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -10875,45 +9793,35 @@ }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "license": "MIT" }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "dependencies": { "amp": "0.3.1" } }, "node_modules/ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "engines": { - "node": "*" - } + "version": "0.2.1" }, "node_modules/ansi-colors": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -10926,16 +9834,14 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -10945,29 +9851,25 @@ }, "node_modules/ansicolors": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/any-promise": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "license": "MIT" }, "node_modules/any-signal": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-1.2.0.tgz", - "integrity": "sha512-Cl08k4xItix3jvu4cxO/dt2rQ6iUAjO66pTyRMub+WL1VXeAyZydCpD8GqWTPKfdL28U0R0UucmQVsUsBnvCmQ==", "dev": true, + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0" } }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -10978,9 +9880,7 @@ }, "node_modules/apollo-datasource": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "license": "MIT", "dependencies": { "@apollo/utils.keyvaluecache": "^1.0.1", "apollo-server-env": "^4.2.1" @@ -10991,18 +9891,15 @@ }, "node_modules/apollo-reporting-protobuf": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "license": "MIT", "dependencies": { "@apollo/protobufjs": "1.2.6" } }, "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -11025,13 +9922,11 @@ }, "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + "license": "MIT" }, "node_modules/apollo-server-core": { "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz", - "integrity": "sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==", + "license": "MIT", "dependencies": { "@apollo/utils.keyvaluecache": "^1.0.1", "@apollo/utils.logger": "^1.0.0", @@ -11066,8 +9961,7 @@ }, "node_modules/apollo-server-core/node_modules/@graphql-tools/merge": { "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", + "license": "MIT", "dependencies": { "@graphql-tools/utils": "8.9.0", "tslib": "^2.4.0" @@ -11078,8 +9972,7 @@ }, "node_modules/apollo-server-core/node_modules/@graphql-tools/schema": { "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", + "license": "MIT", "dependencies": { "@graphql-tools/merge": "8.3.1", "@graphql-tools/utils": "8.9.0", @@ -11092,8 +9985,7 @@ }, "node_modules/apollo-server-core/node_modules/@graphql-tools/utils": { "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", + "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, @@ -11103,8 +9995,7 @@ }, "node_modules/apollo-server-core/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -11114,34 +10005,29 @@ }, "node_modules/apollo-server-core/node_modules/uuid": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/apollo-server-core/node_modules/value-or-promise": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/apollo-server-core/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/apollo-server-env": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.7" }, @@ -11151,9 +10037,7 @@ }, "node_modules/apollo-server-errors": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "license": "MIT", "engines": { "node": ">=12.0" }, @@ -11163,8 +10047,7 @@ }, "node_modules/apollo-server-express": { "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.13.0.tgz", - "integrity": "sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==", + "license": "MIT", "dependencies": { "@types/accepts": "^1.3.5", "@types/body-parser": "1.19.2", @@ -11188,8 +10071,7 @@ }, "node_modules/apollo-server-express/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==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -11197,8 +10079,7 @@ }, "node_modules/apollo-server-express/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==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -11208,8 +10089,7 @@ }, "node_modules/apollo-server-express/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==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -11218,9 +10098,7 @@ }, "node_modules/apollo-server-plugin-base": { "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "license": "MIT", "dependencies": { "apollo-server-types": "^3.8.0" }, @@ -11233,9 +10111,7 @@ }, "node_modules/apollo-server-plugin-response-cache": { "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz", - "integrity": "sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w==", - "deprecated": "The `apollo-server-plugin-response-cache` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server-plugin-response-cache` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "license": "MIT", "dependencies": { "@apollo/utils.keyvaluecache": "^1.0.1", "apollo-server-plugin-base": "^3.6.3", @@ -11250,9 +10126,7 @@ }, "node_modules/apollo-server-types": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "license": "MIT", "dependencies": { "@apollo/utils.keyvaluecache": "^1.0.1", "@apollo/utils.logger": "^1.0.0", @@ -11268,50 +10142,27 @@ }, "node_modules/app-root-path": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", - "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", + "license": "MIT", "engines": { "node": ">= 6.0.0" } }, "node_modules/append-field": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dev": true, - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } + "license": "MIT" }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" @@ -11325,14 +10176,12 @@ }, "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==" + "license": "MIT" }, "node_modules/array-includes": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -11349,18 +10198,16 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.filter": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -11377,9 +10224,8 @@ }, "node_modules/array.prototype.findlastindex": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -11396,9 +10242,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -11414,9 +10259,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -11432,9 +10276,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", @@ -11454,24 +10297,21 @@ }, "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/asn1js": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "pvtsutils": "^1.3.2", "pvutils": "^1.1.3", @@ -11483,26 +10323,23 @@ }, "node_modules/assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "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==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.1" }, @@ -11512,24 +10349,21 @@ }, "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/async": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/async-iterator-to-pull-stream": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz", - "integrity": "sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA==", "dev": true, + "license": "MIT", "dependencies": { "get-iterator": "^1.0.2", "pull-stream-to-async-iterator": "^1.0.1" @@ -11537,9 +10371,8 @@ }, "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==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "semver": "^5.3.0", "shimmer": "^1.1.0" @@ -11550,44 +10383,38 @@ }, "node_modules/async-listener/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/async-lock": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", - "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==" + "license": "MIT" }, "node_modules/async-retry": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "license": "MIT", "dependencies": { "retry": "0.13.1" } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/auto-bind": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", - "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -11597,8 +10424,7 @@ }, "node_modules/available-typed-arrays": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -11611,8 +10437,7 @@ }, "node_modules/axios": { "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.4", "form-data": "^4.0.0", @@ -11621,20 +10446,17 @@ }, "node_modules/b4a": { "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + "license": "Apache-2.0" }, "node_modules/babel-plugin-syntax-trailing-function-commas": { "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", - "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/babel-preset-fbjs": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", - "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-object-rest-spread": "^7.0.0", @@ -11670,27 +10492,22 @@ }, "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==" + "license": "MIT" }, "node_modules/base-x": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + "license": "MIT" }, "node_modules/base32.js": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", - "integrity": "sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "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", @@ -11704,21 +10521,20 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/basic-ftp": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/big-json": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big-json/-/big-json-3.2.0.tgz", - "integrity": "sha512-2Etdurszm1CAFxqpH08lItXyf5CI1OBKRn7imCeI8Lh+a2UvdN2WpuSduxB/3ccao6v93SxiS5fIlE/v1QLoPg==", + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "into-stream": "^5.1.0", @@ -11730,50 +10546,35 @@ }, "node_modules/bignumber.js": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bintrees": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" + "license": "MIT" }, "node_modules/bl": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.1.tgz", - "integrity": "sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^3.0.1" } }, "node_modules/bl/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11785,8 +10586,7 @@ }, "node_modules/blake2b": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", - "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", + "license": "ISC", "dependencies": { "blake2b-wasm": "^2.4.0", "nanoassert": "^2.0.0" @@ -11794,8 +10594,7 @@ }, "node_modules/blake2b-wasm": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", - "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", + "license": "MIT", "dependencies": { "b4a": "^1.0.1", "nanoassert": "^2.0.0" @@ -11803,21 +10602,18 @@ }, "node_modules/blake3-wasm": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", - "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/blakejs": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/blessed": { "version": "0.1.81", - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", - "integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==", "dev": true, + "license": "MIT", "bin": { "blessed": "bin/tput.js" }, @@ -11827,33 +10623,28 @@ }, "node_modules/blob-to-it": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-0.0.2.tgz", - "integrity": "sha512-3/NRr0mUWQTkS71MYEC1teLbT5BTs7RZ6VMPXDV6qApjw3B4TAZspQuvDkYfHuD/XzL5p/RO91x5XRPeJvcCqg==", "dev": true, + "license": "ISC", "dependencies": { "browser-readablestream-to-it": "^0.0.2" } }, "node_modules/bmp-js": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==" + "license": "MIT" }, "node_modules/bn.js": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "license": "MIT" }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/body-parser": { "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -11875,28 +10666,24 @@ }, "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==", + "license": "MIT", "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==" + "license": "MIT" }, "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/borc": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", "dev": true, + "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0", "buffer": "^5.5.0", @@ -11912,8 +10699,6 @@ }, "node_modules/borc/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -11929,6 +10714,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -11936,15 +10722,13 @@ }, "node_modules/borc/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/borc/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11956,8 +10740,7 @@ }, "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==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11965,8 +10748,7 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -11976,20 +10758,16 @@ }, "node_modules/browser-readablestream-to-it": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-0.0.2.tgz", - "integrity": "sha512-bbiTccngeAbPmpTUJcUyr6JhivADKV9xkNJVLdA91vjdzXyFBZ6fgrzElQsV3k1UNGQACRTl3p4y+cEGG9U48A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserslist": { "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -12005,6 +10783,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", @@ -12020,35 +10799,38 @@ }, "node_modules/bs58": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } }, "node_modules/bs58/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, + "node_modules/bson": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.6.0.tgz", + "integrity": "sha512-BVINv2SgcMjL4oYbBuCQTpE3/VKOSxrOA8Cj/wQP7izSzlBGVomdm+TcUd0Pzy0ytLSSDweCKQ6X3f5veM5LQA==", + "engines": { + "node": ">=16.20.1" + } + }, "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", @@ -12063,59 +10845,31 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "optional": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true, - "optional": true - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true, - "optional": true - }, "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==" + "license": "MIT" }, "node_modules/buffer-reverse": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", - "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==" + "license": "MIT" }, "node_modules/buffer-writer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/bufferutil": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -12125,8 +10879,7 @@ }, "node_modules/bufferutil/node_modules/node-gyp-build": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -12135,8 +10888,6 @@ }, "node_modules/bufrw": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.4.0.tgz", - "integrity": "sha512-sWm8iPbqvL9+5SiYxXH73UOkyEbGQg7kyHQmReF89WJHQJw2eV4P/yZ0E+b71cczJ4pPobVhXxgQcmfSTgGHxQ==", "dependencies": { "ansi-color": "^0.2.1", "error": "^7.0.0", @@ -12149,18 +10900,16 @@ }, "node_modules/builtins": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.0.0" } }, "node_modules/builtins/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -12170,9 +10919,8 @@ }, "node_modules/builtins/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -12185,14 +10933,11 @@ }, "node_modules/builtins/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/busboy": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", "dependencies": { "streamsearch": "^1.1.0" }, @@ -12202,16 +10947,39 @@ }, "node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -12228,23 +10996,20 @@ }, "node_modules/call-me-maybe": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camel-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -12252,8 +11017,7 @@ }, "node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -12263,8 +11027,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001597", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", - "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", "dev": true, "funding": [ { @@ -12279,13 +11041,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/capital-case": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -12294,9 +11056,8 @@ }, "node_modules/cardinal": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", "dev": true, + "license": "MIT", "dependencies": { "ansicolors": "~0.3.2", "redeyed": "~2.1.0" @@ -12307,9 +11068,8 @@ }, "node_modules/chai": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -12325,8 +11085,7 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12340,8 +11099,7 @@ }, "node_modules/chalk/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==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12354,8 +11112,7 @@ }, "node_modules/chalk/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==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -12365,21 +11122,18 @@ }, "node_modules/chalk/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==" + "license": "MIT" }, "node_modules/chalk/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==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/chalk/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==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12389,9 +11143,8 @@ }, "node_modules/change-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", "dev": true, + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -12409,9 +11162,8 @@ }, "node_modules/change-case-all": { "version": "1.0.15", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", - "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", "dev": true, + "license": "MIT", "dependencies": { "change-case": "^4.1.2", "is-lower-case": "^2.0.2", @@ -12427,20 +11179,17 @@ }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "license": "MIT" }, "node_modules/charm": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==", - "dev": true + "dev": true, + "license": "MIT/X11" }, "node_modules/check-error": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.2" }, @@ -12450,9 +11199,8 @@ }, "node_modules/cheerio": { "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "dev": true, + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -12471,9 +11219,8 @@ }, "node_modules/cheerio-select": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -12488,9 +11235,8 @@ }, "node_modules/chokidar": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -12512,9 +11258,8 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -12522,24 +11267,14 @@ "node": ">= 6" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true, - "optional": true - }, "node_modules/ci-info": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "license": "MIT" }, "node_modules/cids": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", - "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^4.0.1", "multicodec": "^3.0.1", @@ -12553,10 +11288,8 @@ }, "node_modules/cids/node_modules/multibase": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "@multiformats/base-x": "^4.0.1" }, @@ -12567,10 +11300,8 @@ }, "node_modules/cids/node_modules/multicodec": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", - "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "uint8arrays": "^3.0.0", "varint": "^6.0.0" @@ -12578,29 +11309,25 @@ }, "node_modules/cids/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/cids/node_modules/varint": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/class-is": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/class-validator": { "version": "0.14.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", - "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "license": "MIT", "peer": true, "dependencies": { "@types/validator": "^13.11.8", @@ -12610,9 +11337,8 @@ }, "node_modules/clean-css": { "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", "dev": true, + "license": "MIT", "dependencies": { "source-map": "~0.6.0" }, @@ -12622,9 +11348,8 @@ }, "node_modules/clean-stack": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", - "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "4.0.0" }, @@ -12637,8 +11362,7 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -12648,8 +11372,7 @@ }, "node_modules/cli-highlight": { "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "license": "ISC", "dependencies": { "chalk": "^4.0.0", "highlight.js": "^10.7.1", @@ -12668,8 +11391,7 @@ }, "node_modules/cli-highlight/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -12678,26 +11400,22 @@ }, "node_modules/cli-highlight/node_modules/parse5": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + "license": "MIT" }, "node_modules/cli-highlight/node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "license": "MIT", "dependencies": { "parse5": "^6.0.1" } }, "node_modules/cli-highlight/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "license": "MIT" }, "node_modules/cli-highlight/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -12713,9 +11431,8 @@ }, "node_modules/cli-progress": { "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.2.3" }, @@ -12725,8 +11442,7 @@ }, "node_modules/cli-spinners": { "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -12736,8 +11452,6 @@ }, "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==", "dev": true, "dependencies": { "chalk": "3.0.0" @@ -12748,9 +11462,8 @@ }, "node_modules/cli-tableau/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12763,9 +11476,8 @@ }, "node_modules/cli-tableau/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12776,9 +11488,8 @@ }, "node_modules/cli-tableau/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -12788,24 +11499,21 @@ }, "node_modules/cli-tableau/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cli-tableau/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cli-tableau/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==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12815,9 +11523,8 @@ }, "node_modules/cli-truncate": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -12831,10 +11538,8 @@ }, "node_modules/cli-ux": { "version": "5.6.7", - "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.7.tgz", - "integrity": "sha512-dsKAurMNyFDnO6X1TiiRNiVbL90XReLKcvIq4H777NMqXGBxBws23ag8ubCJE97vVZEgWG2eSUhsyLf63Jv8+g==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "@oclif/command": "^1.8.15", "@oclif/errors": "^1.3.5", @@ -12869,9 +11574,8 @@ }, "node_modules/cli-ux/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12884,18 +11588,16 @@ }, "node_modules/cli-ux/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/cli-ux/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -12905,24 +11607,21 @@ }, "node_modules/cli-ux/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cli-ux/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cli-ux/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -12933,9 +11632,8 @@ }, "node_modules/cli-ux/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -12945,9 +11643,8 @@ }, "node_modules/cli-ux/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -12960,15 +11657,13 @@ }, "node_modules/cli-ux/node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/cli-ux/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12981,22 +11676,19 @@ }, "node_modules/cli-ux/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "license": "ISC", "engines": { "node": ">= 10" } }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -13008,53 +11700,48 @@ }, "node_modules/clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", "engines": { "node": ">=0.8" } }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "engines": { - "node": ">=0.10.0" + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "optional": true, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "license": "Apache-2.0", "engines": { "node": ">=0.10.0" } }, "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==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "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==" + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -13064,47 +11751,41 @@ }, "node_modules/commander": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/common-tags": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/compare-versions": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz", - "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==" + "license": "MIT" }, "node_modules/component-emitter": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -13114,8 +11795,7 @@ }, "node_modules/concurrently": { "version": "6.5.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", - "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "date-fns": "^2.16.1", @@ -13135,8 +11815,7 @@ }, "node_modules/concurrently/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -13145,16 +11824,14 @@ }, "node_modules/concurrently/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==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/concurrently/node_modules/rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^1.9.0" }, @@ -13164,8 +11841,7 @@ }, "node_modules/concurrently/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13178,13 +11854,11 @@ }, "node_modules/concurrently/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/concurrently/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -13200,9 +11874,8 @@ }, "node_modules/config-chain": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -13210,20 +11883,11 @@ }, "node_modules/consola": { "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true, - "optional": true + "license": "MIT" }, "node_modules/console.table": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", - "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==", + "license": "MIT", "dependencies": { "easy-table": "1.1.0" }, @@ -13233,17 +11897,15 @@ }, "node_modules/console.table/node_modules/easy-table": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", - "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", + "license": "MIT", "optionalDependencies": { "wcwidth": ">=1.0.1" } }, "node_modules/constant-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -13252,8 +11914,7 @@ }, "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==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -13263,17 +11924,15 @@ }, "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "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==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "async-listener": "^0.6.0", "emitter-listener": "^1.1.1" @@ -13281,22 +11940,19 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-parser": { "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "license": "MIT", "dependencies": { "cookie": "0.4.1", "cookie-signature": "1.0.6" @@ -13307,24 +11963,20 @@ }, "node_modules/cookie-signature": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "license": "MIT" }, "node_modules/cookiejar": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true + "dev": true, + "license": "MIT" }, "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==" + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "object-assign": "^4", "vary": "^1" @@ -13335,9 +11987,8 @@ }, "node_modules/cosmiconfig": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -13351,14 +12002,12 @@ }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/cron-parser": { "version": "4.9.0", - "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", - "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "license": "MIT", "dependencies": { "luxon": "^3.2.1" }, @@ -13368,22 +12017,19 @@ }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-fetch": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } }, "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==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -13395,14 +12041,12 @@ }, "node_modules/crypto-js": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + "license": "MIT" }, "node_modules/css-select": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -13416,9 +12060,8 @@ }, "node_modules/css-what": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -13428,29 +12071,24 @@ }, "node_modules/cssfilter": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" + "license": "MIT" }, "node_modules/csv-stringify": { "version": "6.4.6", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.4.6.tgz", - "integrity": "sha512-h2V2XZ3uOTLilF5dPIptgUfN/o2ia/80Ie0Lly18LAnw5s8Eb7kt8rfxSUy24AztJZas9f6DPZpVlzDUtFt/ag==" + "license": "MIT" }, "node_modules/cuint": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" + "license": "MIT" }, "node_modules/culvert": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", - "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/d": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", "dependencies": { "es5-ext": "^0.10.64", "type": "^2.7.2" @@ -13461,23 +12099,20 @@ }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/dataloader": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" + "license": "MIT" }, "node_modules/datastore-core": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-0.6.1.tgz", - "integrity": "sha512-bPMmMEHu96EaFS+OXeyjC0C1YnnQFiybvMszduYya7xlCpKiK24YgF/YZm1STj0IjI9zub9UkNw3eIBos2z9cw==", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.1", "interface-datastore": "~0.6.0", @@ -13491,18 +12126,16 @@ }, "node_modules/datastore-core/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/datastore-fs": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-0.8.1.tgz", - "integrity": "sha512-kSWQwTWa7Pf6HIBvJVQ0b8BvKqW6y22zWJ1Vp0h34R5loq48hOYQ++4ckZFWyzOvF3bJAi5X2euF01RPKqMJIQ==", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.1", "datastore-core": "~0.6.0", @@ -13516,18 +12149,16 @@ }, "node_modules/datastore-fs/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/datastore-level": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-0.11.0.tgz", - "integrity": "sha512-kbxtHSI37EFpqy/u91VqZdzoFZMq11eRS7x9ZOtXDMToYJspyG7G8GXvq4NIB9+41+BZGIzNQuXL1M4SNoWtaA==", "dev": true, + "license": "MIT", "dependencies": { "datastore-core": "~0.6.0", "encoding-down": "^6.0.2", @@ -13540,8 +12171,7 @@ }, "node_modules/date-fns": { "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -13555,37 +12185,32 @@ }, "node_modules/dateformat": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/datejs": { "version": "1.0.0-rc3", - "resolved": "https://registry.npmjs.org/datejs/-/datejs-1.0.0-rc3.tgz", - "integrity": "sha512-c6kzWmGUKLrdT+8LjUvtAObOgsecqnkpOYOuSDzYdNhdCk3+WALxtBuSMRJDmOfS6JVs/+N2yTGHb0D8oNqB/Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/dayjs": { "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + "license": "MIT" }, "node_modules/debounce": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -13600,9 +12225,8 @@ }, "node_modules/decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13611,23 +12235,34 @@ } }, "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dev": true, - "optional": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dependencies": { - "mimic-response": "^1.0.0" + "mimic-response": "^3.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -13637,8 +12272,7 @@ }, "node_modules/deep-equal": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.5", @@ -13668,31 +12302,27 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/defaults": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -13702,17 +12332,23 @@ }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", "engines": { "node": ">=0.8" } }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, "node_modules/deferred-leveldown": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", "dev": true, + "license": "MIT", "dependencies": { "abstract-leveldown": "~6.2.1", "inherits": "^2.0.3" @@ -13723,9 +12359,8 @@ }, "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -13739,8 +12374,6 @@ }, "node_modules/deferred-leveldown/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -13756,6 +12389,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -13763,8 +12397,7 @@ }, "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -13779,8 +12412,7 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -13795,9 +12427,8 @@ }, "node_modules/degenerator": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", @@ -13809,54 +12440,41 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true, - "optional": true - }, "node_modules/delimit-stream": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/denque": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", "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==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/dependency-graph": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -13864,18 +12482,16 @@ }, "node_modules/detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, + "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -13885,15 +12501,13 @@ }, "node_modules/detect-node": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dezalgo": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, + "license": "ISC", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -13901,23 +12515,20 @@ }, "node_modules/diacritics": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", - "integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==" + "license": "MIT" }, "node_modules/diff": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -13927,15 +12538,13 @@ }, "node_modules/dlv": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.1", "native-fetch": "^3.0.0", @@ -13944,9 +12553,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -13956,9 +12564,8 @@ }, "node_modules/dom-serializer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -13970,21 +12577,19 @@ }, "node_modules/domelementtype": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -13997,9 +12602,8 @@ }, "node_modules/domutils": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -14011,9 +12615,8 @@ }, "node_modules/dot-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -14021,8 +12624,7 @@ }, "node_modules/dotenv": { "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -14032,30 +12634,26 @@ }, "node_modules/dotenv-expand": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/dset": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "license": "MIT" }, "node_modules/easy-table": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14065,17 +12663,15 @@ }, "node_modules/ed2curve": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz", - "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==", + "license": "Unlicense", "dependencies": { "tweetnacl": "1.x.x" } }, "node_modules/editorconfig": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", "dev": true, + "license": "MIT", "dependencies": { "@one-ini/wasm": "0.1.1", "commander": "^10.0.0", @@ -14091,27 +12687,24 @@ }, "node_modules/editorconfig/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/editorconfig/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/editorconfig/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -14121,9 +12714,8 @@ }, "node_modules/editorconfig/node_modules/minimatch": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -14136,9 +12728,8 @@ }, "node_modules/editorconfig/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -14151,48 +12742,41 @@ }, "node_modules/editorconfig/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "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==" + "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.4.705", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.705.tgz", - "integrity": "sha512-LKqhpwJCLhYId2VVwEzFXWrqQI5n5zBppz1W9ehhTlfYU8CUUW6kClbN8LHF/v7flMgRdETS772nqywJ+ckVAw==", - "dev": true + "dev": true, + "license": "ISC" }, "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==", "dev": true, + "license": "BSD-2-Clause", "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==" + "license": "MIT" }, "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==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/encoding-down": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", "dev": true, + "license": "MIT", "dependencies": { "abstract-leveldown": "^6.2.1", "inherits": "^2.0.3", @@ -14207,17 +12791,14 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "optional": true, "dependencies": { "once": "^1.4.0" } }, "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==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1" }, @@ -14227,9 +12808,8 @@ }, "node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -14239,15 +12819,13 @@ }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/errno": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "license": "MIT", "dependencies": { "prr": "~1.0.1" }, @@ -14257,8 +12835,6 @@ }, "node_modules/error": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", "dependencies": { "string-template": "~0.2.1", "xtend": "~4.0.0" @@ -14266,18 +12842,16 @@ }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { "version": "1.22.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", - "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", @@ -14330,14 +12904,12 @@ }, "node_modules/es-array-method-boxes-properly": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -14347,16 +12919,14 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-get-iterator": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -14374,9 +12944,8 @@ }, "node_modules/es-set-tostringtag": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4", "has-tostringtag": "^1.0.2", @@ -14388,18 +12957,16 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -14414,9 +12981,8 @@ }, "node_modules/es5-ext": { "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "hasInstallScript": true, + "license": "ISC", "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -14429,8 +12995,7 @@ }, "node_modules/es6-iterator": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -14439,8 +13004,7 @@ }, "node_modules/es6-symbol": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", "dependencies": { "d": "^1.0.2", "ext": "^1.7.0" @@ -14451,9 +13015,8 @@ }, "node_modules/es6-weak-map": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, + "license": "ISC", "dependencies": { "d": "1", "es5-ext": "^0.10.46", @@ -14463,17 +13026,15 @@ }, "node_modules/escalade": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-goat": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", - "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -14483,14 +13044,12 @@ }, "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==" + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -14500,9 +13059,8 @@ }, "node_modules/escodegen": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -14521,18 +13079,16 @@ }, "node_modules/escodegen/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/eslint": { "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -14585,9 +13141,8 @@ }, "node_modules/eslint-config-prettier": { "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -14597,8 +13152,6 @@ }, "node_modules/eslint-config-standard": { "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", "dev": true, "funding": [ { @@ -14614,6 +13167,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "engines": { "node": ">=12.0.0" }, @@ -14626,9 +13180,8 @@ }, "node_modules/eslint-config-standard-with-typescript": { "version": "34.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-34.0.1.tgz", - "integrity": "sha512-J7WvZeLtd0Vr9F+v4dZbqJCLD16cbIy4U+alJMq4MiXdpipdBM3U5NkXaGUjePc4sb1ZE01U9g6VuTBpHHz1fg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/parser": "^5.43.0", "eslint-config-standard": "17.0.0" @@ -14644,8 +13197,6 @@ }, "node_modules/eslint-config-standard-with-typescript/node_modules/eslint-config-standard": { "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", - "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", "dev": true, "funding": [ { @@ -14661,6 +13212,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "peerDependencies": { "eslint": "^8.0.1", "eslint-plugin-import": "^2.25.2", @@ -14670,9 +13222,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -14681,18 +13232,16 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -14707,18 +13256,16 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-chai-friendly": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.7.4.tgz", - "integrity": "sha512-PGPjJ8diYgX1mjLxGJqRop2rrGwZRKImoEOwUOgoIhg0p80MkTaqvmFLe5TF7/iagZHggasvIfQlUyHIhK/PYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" }, @@ -14728,9 +13275,8 @@ }, "node_modules/eslint-plugin-es": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, + "license": "MIT", "dependencies": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" @@ -14747,9 +13293,8 @@ }, "node_modules/eslint-plugin-es/node_modules/eslint-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -14762,18 +13307,16 @@ }, "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/eslint-plugin-import": { "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -14802,18 +13345,16 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -14823,9 +13364,8 @@ }, "node_modules/eslint-plugin-n": { "version": "15.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", - "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", "dev": true, + "license": "MIT", "dependencies": { "builtins": "^5.0.1", "eslint-plugin-es": "^4.1.0", @@ -14848,9 +13388,8 @@ }, "node_modules/eslint-plugin-n/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -14860,9 +13399,8 @@ }, "node_modules/eslint-plugin-n/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -14875,15 +13413,13 @@ }, "node_modules/eslint-plugin-n/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/eslint-plugin-prettier": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0" }, @@ -14902,9 +13438,8 @@ }, "node_modules/eslint-plugin-promise": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", "dev": true, + "license": "ISC", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -14914,9 +13449,6 @@ }, "node_modules/eslint-plugin-standard": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz", - "integrity": "sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==", - "deprecated": "standard 16.0.0 and eslint-config-standard 16.0.0 no longer require the eslint-plugin-standard package. You can remove it from your dependencies with 'npm rm eslint-plugin-standard'. More info here: https://github.com/standard/standard/issues/1316", "dev": true, "funding": [ { @@ -14932,15 +13464,15 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "peerDependencies": { "eslint": ">=5.0.0" } }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -14951,9 +13483,8 @@ }, "node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -14969,18 +13500,16 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -14990,9 +13519,8 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -15006,18 +13534,16 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -15030,9 +13556,8 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -15042,8 +13567,7 @@ }, "node_modules/esniff": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -15056,9 +13580,8 @@ }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -15073,9 +13596,8 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -15086,9 +13608,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -15098,18 +13619,16 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -15119,51 +13638,45 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "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==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/ethereum-bloom-filters": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "license": "MIT", "dependencies": { "js-sha3": "^0.8.0" } }, "node_modules/ethereum-cryptography": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", - "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "license": "MIT", "dependencies": { "@noble/curves": "1.3.0", "@noble/hashes": "1.3.3", @@ -15173,8 +13686,7 @@ }, "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -15184,8 +13696,7 @@ }, "node_modules/ethjs-unit": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "license": "MIT", "dependencies": { "bn.js": "4.11.6", "number-to-bn": "1.7.0" @@ -15197,13 +13708,11 @@ }, "node_modules/ethjs-unit/node_modules/bn.js": { "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + "license": "MIT" }, "node_modules/event-emitter": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "~0.10.14" @@ -15211,43 +13720,30 @@ }, "node_modules/event-target-shim": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/eventemitter2": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "license": "MIT" }, "node_modules/exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "engines": { "node": ">= 0.8.0" } }, - "node_modules/expand-template": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", - "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==", - "dev": true, - "optional": true - }, "node_modules/express": { "version": "4.18.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", - "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -15287,8 +13783,7 @@ }, "node_modules/express-openapi-validator": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/express-openapi-validator/-/express-openapi-validator-5.1.6.tgz", - "integrity": "sha512-CF24Pef5uThjdsCbjo1UP2mYx2YCkQl1HFoikCFFafFpZBCZ0YErD/RbqlcnKbKM9tMwXZsjAuuO84b2hmdF4g==", + "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.1.2", "@types/multer": "^1.4.7", @@ -15307,8 +13802,7 @@ }, "node_modules/express-openapi-validator/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -15322,8 +13816,7 @@ }, "node_modules/express-openapi-validator/node_modules/ajv-draft-04": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", "peerDependencies": { "ajv": "^8.5.0" }, @@ -15335,18 +13828,15 @@ }, "node_modules/express-openapi-validator/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "license": "MIT" }, "node_modules/express-openapi-validator/node_modules/path-to-regexp": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + "license": "MIT" }, "node_modules/express-rate-limit": { "version": "6.11.2", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.11.2.tgz", - "integrity": "sha512-a7uwwfNTh1U60ssiIkuLFWHt4hAC5yxlLGU2VP0X4YNlyEDZAqF4tK3GD3NSitVBrCQmQ0++0uOyFOgC2y4DDw==", + "license": "MIT", "engines": { "node": ">= 14" }, @@ -15356,47 +13846,40 @@ }, "node_modules/express/node_modules/cookie": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "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==", + "license": "MIT", "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==" + "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "license": "MIT" }, "node_modules/ext": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", "dependencies": { "type": "^2.7.2" } }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "license": "MIT" }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -15408,9 +13891,8 @@ }, "node_modules/extract-files": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", - "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20 || >= 14.13" }, @@ -15420,50 +13902,43 @@ }, "node_modules/extract-stack": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz", - "integrity": "sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/extrareqp2": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extrareqp2/-/extrareqp2-1.0.0.tgz", - "integrity": "sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==", "dev": true, + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.0" } }, "node_modules/fast-decode-uri-component": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-fifo": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -15477,9 +13952,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -15489,85 +13963,74 @@ }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", "dev": true, + "license": "MIT", "dependencies": { "fastest-levenshtein": "^1.0.7" } }, "node_modules/fast-querystring": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", - "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", "dev": true, + "license": "MIT", "dependencies": { "fast-decode-uri-component": "^1.0.1" } }, "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==" + "license": "MIT" }, "node_modules/fast-url-parser": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^1.3.2" } }, "node_modules/fast-write-atomic": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", - "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/fbjs": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", - "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", "dev": true, + "license": "MIT", "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", @@ -15580,20 +14043,16 @@ }, "node_modules/fbjs-css-vars": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fclone": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", - "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==", - "dev": true + "dev": true, + "license": "MIT" }, "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", @@ -15604,6 +14063,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -15614,8 +14074,7 @@ }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -15628,17 +14087,15 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -15646,17 +14103,9 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "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==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -15666,8 +14115,7 @@ }, "node_modules/finalhandler": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -15683,22 +14131,19 @@ }, "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==", + "license": "MIT", "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==" + "license": "MIT" }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -15712,26 +14157,23 @@ }, "node_modules/find-yarn-workspace-root": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "license": "Apache-2.0", "dependencies": { "micromatch": "^4.0.2" } }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -15743,15 +14185,13 @@ }, "node_modules/flatted": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fluent-ffmpeg": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", - "integrity": "sha512-IZTB4kq5GK0DPp7sGQ0q/BWurGHffRtQQwVkiqDgeO6wYJLLV5ZhgNOQ65loZxxuPMKZKZcICCUnaGtlxBiR0Q==", "dev": true, + "license": "MIT", "dependencies": { "async": ">=0.2.9", "which": "^1.1.1" @@ -15762,9 +14202,8 @@ }, "node_modules/fluent-ffmpeg/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -15774,14 +14213,13 @@ }, "node_modules/follow-redirects": { "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -15793,16 +14231,14 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/foreground-child": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -15816,8 +14252,7 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -15827,8 +14262,7 @@ }, "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==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -15840,8 +14274,7 @@ }, "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==", + "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -15851,9 +14284,8 @@ }, "node_modules/formidable": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", "dev": true, + "license": "MIT", "dependencies": { "dezalgo": "^1.0.4", "hexoid": "^1.0.0", @@ -15866,24 +14298,21 @@ }, "node_modules/forwarded": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/from2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -15891,21 +14320,12 @@ }, "node_modules/fs": { "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", - "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "optional": true + "license": "ISC" }, "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==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -15917,15 +14337,12 @@ }, "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==" + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -15936,17 +14353,15 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -15962,84 +14377,14 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "dev": true, - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/gaxios": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", - "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", + "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", @@ -16052,8 +14397,7 @@ }, "node_modules/gaxios/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==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -16063,8 +14407,7 @@ }, "node_modules/gaxios/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==", + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -16075,8 +14418,7 @@ }, "node_modules/gcp-metadata": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", - "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", + "license": "Apache-2.0", "dependencies": { "gaxios": "^5.0.0", "json-bigint": "^1.0.0" @@ -16087,42 +14429,37 @@ }, "node_modules/generic-pool": { "version": "3.9.0", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", - "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/get-graphql-schema": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/get-graphql-schema/-/get-graphql-schema-2.1.2.tgz", - "integrity": "sha512-1z5Hw91VrE3GrpCZE6lE8Dy+jz4kXWesLS7rCSjwOxf5BOcIedAZeTUJRIeIzmmR+PA9CKOkPTYFRJbdgUtrxA==", + "license": "MIT", "dependencies": { "chalk": "^2.4.1", "graphql": "^14.0.2", @@ -16135,8 +14472,7 @@ }, "node_modules/get-graphql-schema/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -16148,16 +14484,14 @@ }, "node_modules/get-graphql-schema/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/get-graphql-schema/node_modules/graphql": { "version": "14.7.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz", - "integrity": "sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==", + "license": "MIT", "dependencies": { "iterall": "^1.2.2" }, @@ -16167,8 +14501,7 @@ }, "node_modules/get-intrinsic": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -16185,15 +14518,27 @@ }, "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==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/get-symbol-description": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "es-errors": "^1.3.0", @@ -16208,9 +14553,8 @@ }, "node_modules/get-uri": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", - "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", "dev": true, + "license": "MIT", "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", @@ -16223,9 +14567,8 @@ }, "node_modules/get-uri/node_modules/fs-extra": { "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -16237,9 +14580,8 @@ }, "node_modules/get-uri/node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -16249,36 +14591,25 @@ }, "node_modules/get-uri/node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", - "dev": true - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", "dev": true, - "optional": true + "license": "MIT" }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -16296,9 +14627,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -16308,18 +14638,16 @@ }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -16332,9 +14660,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -16352,13 +14679,11 @@ }, "node_modules/google-protobuf": { "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + "license": "(BSD-3-Clause AND Apache-2.0)" }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -16366,30 +14691,50 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/graphql": { "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "license": "MIT", "engines": { "node": ">= 10.x" } }, "node_modules/graphql-config": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.5.0.tgz", - "integrity": "sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/graphql-file-loader": "^7.3.7", "@graphql-tools/json-file-loader": "^7.3.7", @@ -16418,9 +14763,8 @@ }, "node_modules/graphql-config/node_modules/cosmiconfig": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", "dev": true, + "license": "MIT", "dependencies": { "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -16433,18 +14777,16 @@ }, "node_modules/graphql-config/node_modules/jiti": { "version": "1.17.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz", - "integrity": "sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/graphql-config/node_modules/minimatch": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", - "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -16454,8 +14796,7 @@ }, "node_modules/graphql-parse-resolve-info": { "version": "4.13.0", - "resolved": "https://registry.npmjs.org/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.13.0.tgz", - "integrity": "sha512-VVJ1DdHYcR7hwOGQKNH+QTzuNgsLA8l/y436HtP9YHoX6nmwXRWq3xWthU3autMysXdm0fQUbhTZCx0W9ICozw==", + "license": "MIT", "dependencies": { "debug": "^4.1.1", "tslib": "^2.0.1" @@ -16469,8 +14810,7 @@ }, "node_modules/graphql-query-complexity": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", - "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", + "license": "MIT", "dependencies": { "lodash.get": "^4.4.2" }, @@ -16480,9 +14820,8 @@ }, "node_modules/graphql-request": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.2.0", "cross-fetch": "^3.1.5" @@ -16493,8 +14832,7 @@ }, "node_modules/graphql-subscriptions": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", + "license": "MIT", "dependencies": { "iterall": "^1.3.0" }, @@ -16504,8 +14842,7 @@ }, "node_modules/graphql-tag": { "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "license": "MIT", "dependencies": { "tslib": "^2.1.0" }, @@ -16518,9 +14855,7 @@ }, "node_modules/graphql-tools": { "version": "8.3.20", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-8.3.20.tgz", - "integrity": "sha512-x3VkXkaGyPaZu1G0Vr2x/7yxTiuTB6xpY3RbH2uTjBv01Z+985J3//B81fooTtEf2eySBiyPplMYwFmAybOIrQ==", - "deprecated": "This package has been deprecated and now it only exports makeExecutableSchema.\nAnd it will no longer receive updates.\nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.\nCheck out https://www.graphql-tools.com to learn what package you should use instead", + "license": "MIT", "dependencies": { "@graphql-tools/schema": "^9.0.18", "tslib": "^2.4.0" @@ -16534,8 +14869,7 @@ }, "node_modules/graphql-tools/node_modules/@apollo/client": { "version": "3.7.17", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.17.tgz", - "integrity": "sha512-0EErSHEtKPNl5wgWikHJbKFAzJ/k11O0WO2QyqZSHpdxdAnw7UWHY4YiLbHCFG7lhrD+NTQ3Z/H9Jn4rcikoJA==", + "license": "MIT", "optional": true, "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", @@ -16576,8 +14910,7 @@ }, "node_modules/graphql-tools/node_modules/@wry/trie": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz", - "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==", + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.3.0" @@ -16588,8 +14921,7 @@ }, "node_modules/graphql-tools/node_modules/optimism": { "version": "0.16.2", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", - "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", + "license": "MIT", "optional": true, "dependencies": { "@wry/context": "^0.7.0", @@ -16598,8 +14930,7 @@ }, "node_modules/graphql-tools/node_modules/optimism/node_modules/@wry/trie": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.3.0" @@ -16610,8 +14941,7 @@ }, "node_modules/graphql-ws": { "version": "5.15.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.15.0.tgz", - "integrity": "sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -16621,9 +14951,8 @@ }, "node_modules/hamt-sharding": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-0.0.2.tgz", - "integrity": "sha512-0pUBRvsdM1G6RgXfJASUMLwk++LQMNoXx2n2iMZiSzV43lBNesSz130wkGSP2D6d/8DYIWABLL1Vqb4PpcUcvQ==", "dev": true, + "license": "MIT", "dependencies": { "sparse-array": "^1.3.1" }, @@ -16634,8 +14963,7 @@ }, "node_modules/handlebars": { "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -16654,24 +14982,21 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -16681,8 +15006,7 @@ }, "node_modules/has-proto": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16692,8 +15016,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16703,8 +15026,7 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -16715,17 +15037,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true, - "optional": true - }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -16735,23 +15049,20 @@ }, "node_modules/haversine-distance": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/haversine-distance/-/haversine-distance-1.2.1.tgz", - "integrity": "sha512-rQpG89d6NlAis0eqOSFXDqNU/GZcMPlHNVMqTSzD16niD9s1fDK8T6kwrK0WJ7OMU+iRNy3cgGYnNQihMqmaHg==" + "license": "MIT" }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } }, "node_modules/header-case": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dev": true, + "license": "MIT", "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -16759,8 +15070,6 @@ }, "node_modules/hexer": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", "dependencies": { "ansi-color": "^0.2.1", "minimist": "^1.1.0", @@ -16776,40 +15085,35 @@ }, "node_modules/hexoid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/hi-base32": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", - "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/highlight.js": { "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } }, "node_modules/html-minifier": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", - "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", "dev": true, + "license": "MIT", "dependencies": { "camel-case": "^3.0.0", "clean-css": "^4.2.1", @@ -16828,9 +15132,8 @@ }, "node_modules/html-minifier/node_modules/camel-case": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^2.2.0", "upper-case": "^1.1.1" @@ -16838,44 +15141,37 @@ }, "node_modules/html-minifier/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/html-minifier/node_modules/lower-case": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/html-minifier/node_modules/no-case": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, + "license": "MIT", "dependencies": { "lower-case": "^1.1.1" } }, "node_modules/html-minifier/node_modules/param-case": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^2.2.0" } }, "node_modules/html-minifier/node_modules/upper-case": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/htmlparser2": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -16884,6 +15180,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -16891,11 +15188,15 @@ "entities": "^4.4.0" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "node_modules/http-call": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", - "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==", "dev": true, + "license": "ISC", "dependencies": { "content-type": "^1.0.4", "debug": "^4.1.1", @@ -16910,9 +15211,8 @@ }, "node_modules/http-call/node_modules/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -16923,8 +15223,7 @@ }, "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==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -16938,9 +15237,8 @@ }, "node_modules/http-proxy-agent": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-6.1.1.tgz", - "integrity": "sha512-JRCz+4Whs6yrrIoIlrH+ZTmhrRwtMnmOHsHn8GFEn9O2sVfSE+DAZ3oyyGIKF8tjJEeSJmP89j7aTjVsSqsU0g==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -16949,11 +15247,22 @@ "node": ">= 14" } }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/https-proxy-agent": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-6.2.1.tgz", - "integrity": "sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -16964,17 +15273,15 @@ }, "node_modules/hyperlinker": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", - "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/i18n-iso-countries": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/i18n-iso-countries/-/i18n-iso-countries-6.8.0.tgz", - "integrity": "sha512-jJs/+CA6+VUICFxqGcB0vFMERGfhfvyNk+8Vb9EagSZkl7kSpm/kT0VyhvzM/zixDWEV/+oN9L7v/GT9BwzoGg==", + "license": "MIT", "dependencies": { "diacritics": "1.3.0" }, @@ -16984,8 +15291,7 @@ }, "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==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -16995,17 +15301,14 @@ }, "node_modules/idb-readable-stream": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/idb-readable-stream/-/idb-readable-stream-0.0.4.tgz", - "integrity": "sha512-RvlW2v+7mN7ju4/U1rGVz44tw1z4Yes/qCEyd7/QMhzSpNk7srur2a0SOd8GzwHjCDsrPJrf1EVcSkWgZw5yzQ==", "dev": true, + "license": "ISC", "dependencies": { "xtend": "^4.0.1" } }, "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", @@ -17019,37 +15322,34 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/immediate": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/immutable": { "version": "3.7.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", - "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.8.0" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -17063,18 +15363,16 @@ }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/import-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.2" }, @@ -17084,39 +15382,34 @@ }, "node_modules/import-in-the-middle": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.3.5.tgz", - "integrity": "sha512-yzHlBqi1EBFrkieAnSt8eTgO5oLSl+YJ7qaOpUH/PMqQOMZoQ/RmDlwnTLQrwYto+gHYjRG+i/IbsB1eDx32NQ==", + "license": "Apache-2.0", "dependencies": { "module-details-from-path": "^1.0.3" } }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inflected": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", - "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==" + "license": "MIT" }, "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==", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -17124,19 +15417,16 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/inquirer": { "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -17160,9 +15450,8 @@ }, "node_modules/inquirer-datepicker-prompt": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/inquirer-datepicker-prompt/-/inquirer-datepicker-prompt-0.4.3.tgz", - "integrity": "sha512-mwyGK86VDhmvOpVIKjDg0UtaNowGk7cV59l+/Hgu/FMYiKxNCuLN8OCHgyQXPJ2AUiJ0R6WEuMqWScAuMALCFA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^2.1.0", "cli-cursor": "^2.1.0", @@ -17175,27 +15464,24 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/inquirer-datepicker-prompt/node_modules/ansi-regex": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/inquirer-datepicker-prompt/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -17207,15 +15493,13 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/chardet": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/inquirer-datepicker-prompt/node_modules/cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^2.0.0" }, @@ -17225,24 +15509,21 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/cli-width": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/inquirer-datepicker-prompt/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/inquirer-datepicker-prompt/node_modules/external-editor": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.4.0", "iconv-lite": "^0.4.17", @@ -17254,9 +15535,8 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -17266,9 +15546,8 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/inquirer": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", @@ -17288,33 +15567,29 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/inquirer-datepicker-prompt/node_modules/mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/inquirer-datepicker-prompt/node_modules/mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/inquirer-datepicker-prompt/node_modules/onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -17324,9 +15599,8 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -17337,9 +15611,8 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, + "license": "MIT", "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -17350,9 +15623,8 @@ }, "node_modules/inquirer-datepicker-prompt/node_modules/strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^3.0.0" }, @@ -17362,8 +15634,7 @@ }, "node_modules/inquirer/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==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -17376,8 +15647,7 @@ }, "node_modules/inquirer/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==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -17387,13 +15657,11 @@ }, "node_modules/inquirer/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==" + "license": "MIT" }, "node_modules/inquirer/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -17405,9 +15673,8 @@ }, "node_modules/interface-datastore": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-0.6.0.tgz", - "integrity": "sha512-aDbjWsEdTHd2Yc2A8QOeAEWMwlWDwumVX24bE0/AE7XxfDveWuDUKP7HQito0u1c80FZmR+y/Op14um+cG0CSw==", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.1", "class-is": "^1.1.0", @@ -17423,33 +15690,28 @@ }, "node_modules/interface-datastore/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/interface-datastore/node_modules/err-code": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/interface-datastore/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.", "dev": true, + "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "node_modules/internal-slot": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", @@ -17461,8 +15723,7 @@ }, "node_modules/into-stream": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", - "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==", + "license": "MIT", "dependencies": { "from2": "^2.3.0", "p-is-promise": "^3.0.0" @@ -17473,17 +15734,15 @@ }, "node_modules/invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/ioredis": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", + "license": "MIT", "dependencies": { "@ioredis/commands": "^1.1.1", "cluster-key-slot": "^1.1.0", @@ -17505,15 +15764,13 @@ }, "node_modules/ip": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ip-address": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, + "devOptional": true, + "license": "MIT", "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" @@ -17524,31 +15781,27 @@ }, "node_modules/ip-address/node_modules/sprintf-js": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true + "devOptional": true, + "license": "BSD-3-Clause" }, "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==", + "license": "MIT", "engines": { "node": ">=8" } }, "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==", + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/ipfs-block": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/ipfs-block/-/ipfs-block-0.8.1.tgz", - "integrity": "sha512-0FaCpmij+jZBoUYhjoB5ptjdl9QzvrdRIoBmUU5JiBnK2GA+4YM/ifklaB8ePRhA/rRzhd+KYBjvMFMAL4NrVQ==", "dev": true, + "license": "MIT", "dependencies": { "cids": "~0.7.0", "class-is": "^1.1.0" @@ -17560,10 +15813,8 @@ }, "node_modules/ipfs-block-service": { "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ipfs-block-service/-/ipfs-block-service-0.15.2.tgz", - "integrity": "sha512-iudmJO7UJZHonWoXyakuzy+bpV/7QVDm/g8eCqKN2BvhSjnLepaxdTyaXxJ76F2EOav1hdBP+U3Z9Mg/aCFPgg==", - "deprecated": "This module has been merged into ipfs", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.1" }, @@ -17574,26 +15825,22 @@ }, "node_modules/ipfs-block-service/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/ipfs-block/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/ipfs-block/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -17609,6 +15856,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -17616,10 +15864,8 @@ }, "node_modules/ipfs-block/node_modules/cids": { "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "class-is": "^1.1.0", @@ -17634,10 +15880,8 @@ }, "node_modules/ipfs-block/node_modules/multibase": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -17645,10 +15889,8 @@ }, "node_modules/ipfs-block/node_modules/multicodec": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "varint": "^5.0.0" @@ -17656,9 +15898,8 @@ }, "node_modules/ipfs-block/node_modules/multihashes": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "multibase": "^0.7.0", @@ -17667,10 +15908,8 @@ }, "node_modules/ipfs-block/node_modules/multihashes/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -17678,10 +15917,8 @@ }, "node_modules/ipfs-core-utils": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.4.0.tgz", - "integrity": "sha512-IBPFvYjWPfVFpCeYUL/0gCUOabdBhh7aO5i4tU//UlF2gVCXPH4PRYlbBH9WM83zE2+o4vDi+dBXsdAI6nLPAg==", - "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", "dev": true, + "license": "MIT", "dependencies": { "blob-to-it": "0.0.2", "browser-readablestream-to-it": "0.0.2", @@ -17696,10 +15933,8 @@ }, "node_modules/ipfs-http-client": { "version": "47.0.1", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-47.0.1.tgz", - "integrity": "sha512-IAQf+uTLvXw5QFOzbyhu/5lH3rn7jEwwwdCGaNKVhoPI7yfyOV0wRse3hVWejjP1Id0P9mKuMKG8rhcY7pVAdQ==", - "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", "dev": true, + "license": "(Apache-2.0 OR MIT)", "dependencies": { "abort-controller": "^3.0.0", "any-signal": "^1.1.0", @@ -17738,9 +15973,8 @@ }, "node_modules/ipfs-http-client/node_modules/form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -17752,9 +15986,8 @@ }, "node_modules/ipfs-http-client/node_modules/multihashes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz", - "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^3.1.0", "uint8arrays": "^2.0.5", @@ -17767,24 +16000,21 @@ }, "node_modules/ipfs-http-client/node_modules/multihashes/node_modules/uint8arrays": { "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/ipfs-http-client/node_modules/varint": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ipfs-only-hash": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ipfs-only-hash/-/ipfs-only-hash-1.0.2.tgz", - "integrity": "sha512-oQhndivHK+d89VNhnwRFVRHj2YTPhR2CXAb0Eks1AA5Z1To3O2Fu+DoFFnMK5mN3EhMB24BbZJejq/08HInDZA==", "dev": true, + "license": "MIT", "dependencies": { "async-iterator-to-pull-stream": "^1.1.0", "cids": "^0.5.7", @@ -17798,17 +16028,14 @@ }, "node_modules/ipfs-only-hash/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/ipfs-only-hash/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -17824,6 +16051,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -17831,10 +16059,8 @@ }, "node_modules/ipfs-only-hash/node_modules/cids": { "version": "0.5.8", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.5.8.tgz", - "integrity": "sha512-Ye8TZP3YQfy0j+i5k+LPHdTY3JOvTwN1pxds44p6BRUv8PTMOAF/Vt4Bc+oiIQ0Sktn0iftkUHgqKNHIMwhshA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "class-is": "^1.1.0", "multibase": "~0.6.0", @@ -17848,10 +16074,8 @@ }, "node_modules/ipfs-only-hash/node_modules/multibase": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -17859,19 +16083,16 @@ }, "node_modules/ipfs-only-hash/node_modules/multicodec": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "varint": "^5.0.0" } }, "node_modules/ipfs-only-hash/node_modules/multihashes": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "multibase": "^0.7.0", @@ -17880,10 +16101,8 @@ }, "node_modules/ipfs-only-hash/node_modules/multihashes/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -17891,9 +16110,8 @@ }, "node_modules/ipfs-repo": { "version": "0.26.6", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-0.26.6.tgz", - "integrity": "sha512-fcEV2y5N5tuI45zmoRQdDIN4bFj03xvxnZkXpblws4FMvPy0tkDZEtAdsZsmMnkbae2GDzwaKWZ6Dc3TPmzAZg==", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.2", "base32.js": "~0.1.0", @@ -17920,35 +16138,30 @@ }, "node_modules/ipfs-repo/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/ipfs-repo/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/ipfs-repo/node_modules/bignumber.js": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", - "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/ipfs-repo/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -17964,6 +16177,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -17971,10 +16185,8 @@ }, "node_modules/ipfs-repo/node_modules/cids": { "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "class-is": "^1.1.0", @@ -17989,18 +16201,16 @@ }, "node_modules/ipfs-repo/node_modules/ip-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/ipfs-repo/node_modules/is-ip": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-2.0.0.tgz", - "integrity": "sha512-9MTn0dteHETtyUx8pxqMwg5hMBi3pvlyglJ+b79KOCca0po23337LbVV2Hl4xmMvfw++ljnO0/+5G6G+0Szh6g==", "dev": true, + "license": "MIT", "dependencies": { "ip-regex": "^2.0.0" }, @@ -18010,10 +16220,8 @@ }, "node_modules/ipfs-repo/node_modules/multiaddr": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-6.1.1.tgz", - "integrity": "sha512-Q1Ika0F9MNhMtCs62Ue+GWIJtRFEhZ3Xz8wH7/MZDVZTWhil1/H2bEGN02kUees3hkI3q1oHSjmXYDM0gxaFjQ==", - "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr", "dev": true, + "license": "MIT", "dependencies": { "bs58": "^4.0.1", "class-is": "^1.1.0", @@ -18025,10 +16233,8 @@ }, "node_modules/ipfs-repo/node_modules/multibase": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -18036,10 +16242,8 @@ }, "node_modules/ipfs-repo/node_modules/multicodec": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "varint": "^5.0.0" @@ -18047,9 +16251,8 @@ }, "node_modules/ipfs-repo/node_modules/multihashes": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "multibase": "^0.7.0", @@ -18058,10 +16261,8 @@ }, "node_modules/ipfs-repo/node_modules/multihashes/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -18069,9 +16270,8 @@ }, "node_modules/ipfs-unixfs": { "version": "0.1.16", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-0.1.16.tgz", - "integrity": "sha512-TX9Dyu77MxpLzGh/LcQne95TofOyvOeW0oOi72aBMMcV1ItP3684e6NTG9KY1qzdrC+ZUR8kT7y18J058n8KXg==", "dev": true, + "license": "MIT", "dependencies": { "protons": "^1.0.1" }, @@ -18082,9 +16282,8 @@ }, "node_modules/ipfs-unixfs-importer": { "version": "0.38.5", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-0.38.5.tgz", - "integrity": "sha512-OGTxagHLzlsz8QXe/Z+pmTohS75F/s0X/Yjopnsbxok3yGX2pYk6UX3XLOpq5l/E26bcsVprdHiA4AmiV+yQ9Q==", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.1", "async-iterator-to-pull-stream": "^1.1.0", @@ -18115,26 +16314,22 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/ipfs-unixfs-importer/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/ipfs-unixfs-importer/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -18150,6 +16345,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -18157,10 +16353,8 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/cids": { "version": "0.5.8", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.5.8.tgz", - "integrity": "sha512-Ye8TZP3YQfy0j+i5k+LPHdTY3JOvTwN1pxds44p6BRUv8PTMOAF/Vt4Bc+oiIQ0Sktn0iftkUHgqKNHIMwhshA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "class-is": "^1.1.0", "multibase": "~0.6.0", @@ -18174,10 +16368,8 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/ipld-dag-pb": { "version": "0.15.3", - "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.15.3.tgz", - "integrity": "sha512-J1RJzSVCaOpxPmSzXbwVNsAZPHctjY4OjqG1dMIG86Z37CKvuy1QwCFkDhNccUTcQpF3sXfj5e0ZUyMM035vzg==", - "deprecated": "This module has been superseded by @ipld/dag-pb and multiformats", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.1", "bs58": "^4.0.1", @@ -18197,10 +16389,8 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/multibase": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -18208,19 +16398,16 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/multicodec": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "varint": "^5.0.0" } }, "node_modules/ipfs-unixfs-importer/node_modules/multihashes": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "multibase": "^0.7.0", @@ -18229,10 +16416,8 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/multihashes/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -18240,9 +16425,8 @@ }, "node_modules/ipfs-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-3.0.0.tgz", - "integrity": "sha512-qahDc+fghrM57sbySr2TeWjaVR/RH/YEB/hvdAjiTbjESeD87qZawrXwj+19Q2LtGmFGusKNLo5wExeuI5ZfDQ==", "dev": true, + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "any-signal": "^1.1.0", @@ -18260,8 +16444,6 @@ }, "node_modules/ipfs-utils/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -18277,6 +16459,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -18284,9 +16467,8 @@ }, "node_modules/ipfs-utils/node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -18299,9 +16481,8 @@ }, "node_modules/ipfs-utils/node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -18311,19 +16492,16 @@ }, "node_modules/ipfs-utils/node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/ipld": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.20.2.tgz", - "integrity": "sha512-VXGUqcMSfS1L0n8hCFCEbMj86nOkNRCXBihjAlzEOcUbdfdZZsv0wnhgExYCE1JPrCuTqmVV5b/PBfSrhQdMqQ==", - "deprecated": "Please use the multiformats module instead", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.1", "cids": "~0.5.5", @@ -18342,9 +16520,8 @@ }, "node_modules/ipld-block": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.10.1.tgz", - "integrity": "sha512-lPMfW9tA2hVZw9hdO/YSppTxFmA0+5zxcefBOlCTOn+12RLyy+pdepKMbQw8u0KESFu3pYVmabNRWuFGcgHLLw==", "dev": true, + "license": "MIT", "dependencies": { "cids": "^1.0.0", "class-is": "^1.1.0" @@ -18356,10 +16533,8 @@ }, "node_modules/ipld-dag-cbor": { "version": "0.17.1", - "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz", - "integrity": "sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==", - "deprecated": "This module has been superseded by @ipld/dag-cbor and multiformats", "dev": true, + "license": "MIT", "dependencies": { "borc": "^2.1.2", "cids": "^1.0.0", @@ -18375,16 +16550,13 @@ }, "node_modules/ipld-dag-cbor/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ipld-dag-cbor/node_modules/multicodec": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", - "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "uint8arrays": "^3.0.0", "varint": "^6.0.0" @@ -18392,18 +16564,16 @@ }, "node_modules/ipld-dag-cbor/node_modules/multicodec/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/ipld-dag-cbor/node_modules/multihashing-async": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", - "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", "dev": true, + "license": "MIT", "dependencies": { "blakejs": "^1.1.0", "err-code": "^3.0.0", @@ -18419,34 +16589,29 @@ }, "node_modules/ipld-dag-cbor/node_modules/multihashing-async/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/ipld-dag-cbor/node_modules/uint8arrays": { "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/ipld-dag-cbor/node_modules/varint": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ipld-dag-pb": { "version": "0.20.0", - "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz", - "integrity": "sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==", - "deprecated": "This module has been superseded by @ipld/dag-pb and multiformats", "dev": true, + "license": "MIT", "dependencies": { "cids": "^1.0.0", "class-is": "^1.1.0", @@ -18465,15 +16630,13 @@ }, "node_modules/ipld-dag-pb/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ipld-dag-pb/node_modules/multihashing-async": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", - "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", "dev": true, + "license": "MIT", "dependencies": { "blakejs": "^1.1.0", "err-code": "^3.0.0", @@ -18489,18 +16652,16 @@ }, "node_modules/ipld-dag-pb/node_modules/multihashing-async/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/ipld-dag-pb/node_modules/protons": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.3.tgz", - "integrity": "sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA==", "dev": true, + "license": "MIT", "dependencies": { "protocol-buffers-schema": "^3.3.1", "signed-varint": "^2.0.1", @@ -18510,18 +16671,16 @@ }, "node_modules/ipld-dag-pb/node_modules/protons/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/ipld-in-memory": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ipld-in-memory/-/ipld-in-memory-2.0.0.tgz", - "integrity": "sha512-DDVWc1PJE50T+43U4M8wL9/2oFyd0+mVPpK7EnmYC9ouwF6qL6nw0tKjOsdOw0PIlsXbuRUaYBSknswzq4WhUQ==", "dev": true, + "license": "MIT", "dependencies": { "interface-datastore": "~0.6.0", "ipfs-block-service": "~0.15.2", @@ -18530,10 +16689,8 @@ }, "node_modules/ipld-raw": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-6.0.0.tgz", - "integrity": "sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "cids": "^1.0.0", "multicodec": "^2.0.0", @@ -18542,15 +16699,13 @@ }, "node_modules/ipld-raw/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ipld-raw/node_modules/multihashing-async": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", - "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", "dev": true, + "license": "MIT", "dependencies": { "blakejs": "^1.1.0", "err-code": "^3.0.0", @@ -18566,35 +16721,30 @@ }, "node_modules/ipld-raw/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/ipld/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/ipld/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/ipld/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -18610,6 +16760,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -18617,10 +16768,8 @@ }, "node_modules/ipld/node_modules/cids": { "version": "0.5.8", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.5.8.tgz", - "integrity": "sha512-Ye8TZP3YQfy0j+i5k+LPHdTY3JOvTwN1pxds44p6BRUv8PTMOAF/Vt4Bc+oiIQ0Sktn0iftkUHgqKNHIMwhshA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "class-is": "^1.1.0", "multibase": "~0.6.0", @@ -18634,10 +16783,8 @@ }, "node_modules/ipld/node_modules/ipld-dag-cbor": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.13.1.tgz", - "integrity": "sha512-96KKh5XUq9LrWE/TQ/BOJ5FcQx7UZ892N76ufDdovq+fIwZ4/YpPRTAVssLUuN3crATHoGu80TVZMgevsuTCdQ==", - "deprecated": "This module has been superseded by @ipld/dag-cbor and multiformats", "dev": true, + "license": "MIT", "dependencies": { "borc": "^2.1.0", "bs58": "^4.0.1", @@ -18654,10 +16801,8 @@ }, "node_modules/ipld/node_modules/ipld-dag-pb": { "version": "0.15.3", - "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.15.3.tgz", - "integrity": "sha512-J1RJzSVCaOpxPmSzXbwVNsAZPHctjY4OjqG1dMIG86Z37CKvuy1QwCFkDhNccUTcQpF3sXfj5e0ZUyMM035vzg==", - "deprecated": "This module has been superseded by @ipld/dag-pb and multiformats", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.1", "bs58": "^4.0.1", @@ -18677,10 +16822,8 @@ }, "node_modules/ipld/node_modules/ipld-raw": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-2.0.1.tgz", - "integrity": "sha512-wtP1I61YQoAPnRZqVeflrxjTi41+38ck2puEz9mnMlc0ChYRGc4ZSKcWDTk66EQuqEzDAdV71nOMKb3JzDfbsg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "cids": "~0.5.2", "multihashing-async": "~0.5.1" @@ -18688,18 +16831,16 @@ }, "node_modules/ipld/node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/ipld/node_modules/merge-options": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", - "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^1.1" }, @@ -18709,10 +16850,8 @@ }, "node_modules/ipld/node_modules/multibase": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -18720,19 +16859,16 @@ }, "node_modules/ipld/node_modules/multicodec": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "varint": "^5.0.0" } }, "node_modules/ipld/node_modules/multihashes": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "multibase": "^0.7.0", @@ -18741,10 +16877,8 @@ }, "node_modules/ipld/node_modules/multihashes/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -18752,9 +16886,8 @@ }, "node_modules/is-absolute": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, + "license": "MIT", "dependencies": { "is-relative": "^1.0.0", "is-windows": "^1.0.1" @@ -18765,8 +16898,7 @@ }, "node_modules/is-arguments": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -18780,8 +16912,7 @@ }, "node_modules/is-array-buffer": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" @@ -18795,14 +16926,12 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -18812,9 +16941,8 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -18824,8 +16952,7 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -18839,8 +16966,7 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -18850,8 +16976,7 @@ }, "node_modules/is-ci": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "license": "MIT", "dependencies": { "ci-info": "^2.0.0" }, @@ -18861,14 +16986,12 @@ }, "node_modules/is-circular": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", - "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-core-module": { "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -18878,8 +17001,7 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -18892,8 +17014,7 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -18906,32 +17027,28 @@ }, "node_modules/is-electron": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", - "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "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==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -18944,9 +17061,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==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -18956,8 +17072,7 @@ }, "node_modules/is-hex-prefixed": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "license": "MIT", "engines": { "node": ">=6.5.0", "npm": ">=3" @@ -18965,17 +17080,15 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", "engines": { "node": ">=8" } }, "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==", "dev": true, + "license": "MIT", "dependencies": { "ip-regex": "^4.0.0" }, @@ -18985,9 +17098,8 @@ }, "node_modules/is-ipfs": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-0.6.3.tgz", - "integrity": "sha512-HyRot1dvLcxImtDqPxAaY1miO6WsiP/z7Yxpg2qpaLWv5UdhAPtLvHJ4kMLM0w8GSl8AFsVF23PHe1LzuWrUlQ==", "dev": true, + "license": "MIT", "dependencies": { "bs58": "^4.0.1", "cids": "~0.7.0", @@ -18999,17 +17111,14 @@ }, "node_modules/is-ipfs/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/is-ipfs/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -19025,6 +17134,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -19032,10 +17142,8 @@ }, "node_modules/is-ipfs/node_modules/cids": { "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "class-is": "^1.1.0", @@ -19050,10 +17158,8 @@ }, "node_modules/is-ipfs/node_modules/multiaddr": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz", - "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==", - "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "cids": "~0.8.0", @@ -19065,10 +17171,8 @@ }, "node_modules/is-ipfs/node_modules/multiaddr/node_modules/cids": { "version": "0.8.3", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz", - "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "class-is": "^1.1.0", @@ -19083,10 +17187,8 @@ }, "node_modules/is-ipfs/node_modules/multiaddr/node_modules/cids/node_modules/multibase": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -19098,10 +17200,8 @@ }, "node_modules/is-ipfs/node_modules/multiaddr/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -19109,9 +17209,8 @@ }, "node_modules/is-ipfs/node_modules/multiaddr/node_modules/multihashes": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz", - "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "multibase": "^1.0.1", @@ -19124,10 +17223,8 @@ }, "node_modules/is-ipfs/node_modules/multiaddr/node_modules/multihashes/node_modules/multibase": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -19139,10 +17236,8 @@ }, "node_modules/is-ipfs/node_modules/multibase": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -19150,10 +17245,8 @@ }, "node_modules/is-ipfs/node_modules/multicodec": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "varint": "^5.0.0" @@ -19161,9 +17254,8 @@ }, "node_modules/is-ipfs/node_modules/multihashes": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "multibase": "^0.7.0", @@ -19172,10 +17264,8 @@ }, "node_modules/is-ipfs/node_modules/multihashes/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -19183,17 +17273,15 @@ }, "node_modules/is-lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", - "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/is-map": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -19203,9 +17291,8 @@ }, "node_modules/is-negative-zero": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -19215,16 +17302,14 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -19237,32 +17322,28 @@ }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-promise": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -19276,9 +17357,8 @@ }, "node_modules/is-relative": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, + "license": "MIT", "dependencies": { "is-unc-path": "^1.0.0" }, @@ -19288,17 +17368,15 @@ }, "node_modules/is-retry-allowed": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-set": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -19308,8 +17386,7 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7" }, @@ -19322,8 +17399,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -19333,8 +17409,7 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -19347,8 +17422,7 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -19361,9 +17435,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.14" }, @@ -19376,14 +17449,12 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "license": "MIT" }, "node_modules/is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, + "license": "MIT", "dependencies": { "unc-path-regex": "^0.1.2" }, @@ -19393,8 +17464,7 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -19404,17 +17474,15 @@ }, "node_modules/is-upper-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", - "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/is-weakmap": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -19424,9 +17492,8 @@ }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -19436,8 +17503,7 @@ }, "node_modules/is-weakset": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4" @@ -19451,17 +17517,15 @@ }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -19471,75 +17535,64 @@ }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "license": "ISC" }, "node_modules/iso-3166-2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iso-3166-2/-/iso-3166-2-1.0.0.tgz", - "integrity": "sha512-xLAazfKZzwlsg/Zz/GQGQk3jJez5/2ORrjD3TjSuqz/arMht/xTK49c0GOE3afO/gEd9tHtBVVlfBla01unUng==" + "version": "1.0.0" }, "node_modules/iso-639-1": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz", - "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==", + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/iso-constants": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", - "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", "dev": true, "hasInstallScript": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/iso-url": { "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/isomorphic-ws": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", "dev": true, + "license": "MIT", "peerDependencies": { "ws": "*" } }, "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==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/it-concat": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.3.tgz", - "integrity": "sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.0.0" } }, "node_modules/it-concat/node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -19548,8 +17601,6 @@ }, "node_modules/it-concat/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -19565,6 +17616,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -19572,9 +17624,8 @@ }, "node_modules/it-concat/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19586,21 +17637,18 @@ }, "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==", - "dev": true + "dev": true, + "license": "ISC" }, "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==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/it-glob": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.8.tgz", - "integrity": "sha512-PmIAgb64aJPM6wwT1UTlNDAJnNgdGrvr0vRr3AYCngcUuq1KaAovuz0dQAmUkaXudDG3EQzc7OttuLW9DaL3YQ==", "dev": true, + "license": "ISC", "dependencies": { "fs-extra": "^8.1.0", "minimatch": "^3.0.4" @@ -19608,36 +17656,31 @@ }, "node_modules/it-last": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", - "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==", - "dev": true + "dev": true, + "license": "ISC" }, "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==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/it-peekable": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-0.0.1.tgz", - "integrity": "sha512-fd0JzbNldseeq+FFWthbqYB991UpKNyjPG6LqFhIOmJviCxSompMyoopKIXvLPLY+fBhhv2CT5PT31O/lEnTHw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/it-reader": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", - "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.0.0" } }, "node_modules/it-reader/node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -19646,8 +17689,6 @@ }, "node_modules/it-reader/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -19663,6 +17704,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -19670,9 +17712,8 @@ }, "node_modules/it-reader/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19684,9 +17725,8 @@ }, "node_modules/it-tar": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-1.2.2.tgz", - "integrity": "sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.0.0", "buffer": "^5.4.3", @@ -19698,9 +17738,8 @@ }, "node_modules/it-tar/node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -19709,8 +17748,6 @@ }, "node_modules/it-tar/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -19726,6 +17763,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -19733,9 +17771,8 @@ }, "node_modules/it-tar/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19747,17 +17784,14 @@ }, "node_modules/it-to-buffer": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-1.0.5.tgz", - "integrity": "sha512-dczvg0VeXkfr2i2IQ3GGWEATBbk4Uggr+YnvBz76/Yp0zFJZTIOeDCz2KyFDxSDHNI62OlldbJXWmDPb5nFQeg==", "dev": true, + "license": "ISC", "dependencies": { "buffer": "^5.5.0" } }, "node_modules/it-to-buffer/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -19773,6 +17807,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -19780,9 +17815,8 @@ }, "node_modules/it-to-stream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", - "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "fast-fifo": "^1.0.0", @@ -19794,8 +17828,6 @@ }, "node_modules/it-to-stream/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -19811,6 +17843,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -19818,9 +17851,8 @@ }, "node_modules/it-to-stream/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19832,21 +17864,18 @@ }, "node_modules/iterall": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + "license": "MIT" }, "node_modules/iterare": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", - "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "license": "ISC", "engines": { "node": ">=6" } }, "node_modules/jackspeak": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -19862,8 +17891,7 @@ }, "node_modules/jaeger-client": { "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0", "opentracing": "^0.14.4", @@ -19877,25 +17905,22 @@ }, "node_modules/jaeger-client/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==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/jiti": { "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/joi": { "version": "17.12.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz", - "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", @@ -19906,18 +17931,16 @@ }, "node_modules/jose": { "version": "4.15.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", - "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" } }, "node_modules/js-beautify": { "version": "1.15.1", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz", - "integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==", "dev": true, + "license": "MIT", "dependencies": { "config-chain": "^1.1.13", "editorconfig": "^1.0.4", @@ -19936,18 +17959,16 @@ }, "node_modules/js-beautify/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/js-beautify/node_modules/glob": { "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -19967,9 +17988,8 @@ }, "node_modules/js-beautify/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -19982,18 +18002,16 @@ }, "node_modules/js-cookie": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "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==", "dev": true, + "license": "MIT", "dependencies": { "bodec": "^0.1.0", "culvert": "^0.1.2", @@ -20003,24 +18021,20 @@ }, "node_modules/js-git/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-sha3": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -20030,15 +18044,13 @@ }, "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==", - "dev": true + "devOptional": true, + "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -20048,39 +18060,33 @@ }, "node_modules/json-bigint": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0" } }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "license": "MIT" }, "node_modules/json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "license": "MIT" }, "node_modules/json-stable-stringify": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", - "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "isarray": "^2.0.5", @@ -20096,34 +18102,29 @@ }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stream-stringify": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-2.0.4.tgz", - "integrity": "sha512-gIPoa6K5w6j/RnQ3fOtmvICKNJGViI83A7dnTIL+0QJ/1GKuNvCPFvbFWxt0agruF4iGgDFJvge4Gua4ZoiggQ==" + "license": "MIT" }, "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==" + "license": "ISC" }, "node_modules/json-text-sequence": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==", "dev": true, + "license": "MIT", "dependencies": { "delimit-stream": "0.1.0" } }, "node_modules/json-to-pretty-yaml": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", - "integrity": "sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "remedial": "^1.0.7", "remove-trailing-spaces": "^1.0.6" @@ -20134,9 +18135,8 @@ }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -20146,40 +18146,35 @@ }, "node_modules/jsonc-parser": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/jsonify": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", "dev": true, + "license": "Public Domain", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -20193,8 +18188,7 @@ }, "node_modules/jsonstream-next": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonstream-next/-/jsonstream-next-3.0.0.tgz", - "integrity": "sha512-aAi6oPhdt7BKyQn1SrIIGZBt0ukKuOUE1qV6kJ3GgioSOYzsRc8z9Hfr1BVmacA/jLe9nARfmgMGgn68BqIAgg==", + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through2": "^4.0.2" @@ -20208,8 +18202,7 @@ }, "node_modules/jsonstream-next/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -20221,17 +18214,24 @@ }, "node_modules/jsonstream-next/node_modules/through2": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "license": "MIT", "dependencies": { "readable-stream": "3" } }, + "node_modules/jssha": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jssha/-/jssha-2.4.2.tgz", + "integrity": "sha512-/jsi/9C0S70zfkT/4UlKQa5E1xKurDnXcQizcww9JSR/Fv+uIbWM2btG+bFcL3iNoK9jIGS0ls9HWLr1iw0kFg==", + "deprecated": "jsSHA versions < 3.0.0 will no longer receive feature updates", + "engines": { + "node": "*" + } + }, "node_modules/juice": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/juice/-/juice-10.0.0.tgz", - "integrity": "sha512-9f68xmhGrnIi6DBkiiP3rUrQN33SEuaKu1+njX6VgMP+jwZAsnT33WIzlrWICL9matkhYu3OyrqSUP55YTIdGg==", "dev": true, + "license": "MIT", "dependencies": { "cheerio": "^1.0.0-rc.12", "commander": "^6.1.0", @@ -20248,56 +18248,56 @@ }, "node_modules/juice/node_modules/commander": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/just-safe-set": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-2.2.3.tgz", - "integrity": "sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/kareem": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", + "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", + "engines": { + "node": ">=12.0.0" + } }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/klaw-sync": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.11" } }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.2.0" } }, "node_modules/left-pad": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", - "deprecated": "use String.prototype.padStart()", - "dev": true + "dev": true, + "license": "WTFPL" }, "node_modules/level-codec": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0" }, @@ -20307,8 +18307,6 @@ }, "node_modules/level-codec/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -20324,6 +18322,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -20331,18 +18330,16 @@ }, "node_modules/level-concat-iterator": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/level-errors": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", "dev": true, + "license": "MIT", "dependencies": { "errno": "~0.1.1" }, @@ -20352,9 +18349,8 @@ }, "node_modules/level-iterator-stream": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.4.0", @@ -20366,9 +18362,8 @@ }, "node_modules/level-iterator-stream/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -20392,18 +18387,16 @@ }, "node_modules/level-js/node_modules/abstract-leveldown": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz", - "integrity": "sha512-sW2ic/lpOHcEhqCrUNgjN0EMhzsqNF8WO8YE5q3n/v3eVUBX24O/gAUMwwFj2BtC/DibKFXn/vA4WYhYt+NNnw==", "dev": true, + "license": "MIT", "dependencies": { "xtend": "~4.0.0" } }, "node_modules/level-supports": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", "dev": true, + "license": "MIT", "dependencies": { "xtend": "^4.0.2" }, @@ -20413,10 +18406,9 @@ }, "node_modules/leveldown": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { "abstract-leveldown": "~6.2.1", "napi-macros": "~2.0.0", @@ -20428,9 +18420,8 @@ }, "node_modules/leveldown/node_modules/abstract-leveldown": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "immediate": "^3.2.3", @@ -20444,8 +18435,6 @@ }, "node_modules/leveldown/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -20461,6 +18450,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -20468,9 +18458,8 @@ }, "node_modules/levelup": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", "dev": true, + "license": "MIT", "dependencies": { "deferred-leveldown": "~5.3.0", "level-errors": "~2.0.0", @@ -20484,9 +18473,8 @@ }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -20497,21 +18485,18 @@ }, "node_modules/libphonenumber-js": { "version": "1.10.58", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.58.tgz", - "integrity": "sha512-53A0IpJFL9LdHbpeatwizf8KSwPICrqn9H0g3Y7WQ+Jgeu9cQ4Ew3WrRtrLBu/CX2lXd5+rgT01/tGlkbkzOjw==", + "license": "MIT", "peer": true }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/listr2": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", - "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.16", @@ -20536,9 +18521,8 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -20551,57 +18535,47 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "license": "MIT" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + "license": "MIT" }, "node_modules/lodash.isarguments": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/lodash.sortby": { "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + "license": "MIT" }, "node_modules/log-driver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": true, + "license": "ISC", "engines": { "node": ">=0.8.6" } }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -20615,9 +18589,8 @@ }, "node_modules/log-update": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -20633,9 +18606,8 @@ }, "node_modules/log-update/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -20648,9 +18620,8 @@ }, "node_modules/log-update/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -20660,15 +18631,13 @@ }, "node_modules/log-update/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -20683,9 +18652,8 @@ }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -20697,8 +18665,7 @@ }, "node_modules/loglevel": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", + "license": "MIT", "engines": { "node": ">= 0.6.0" }, @@ -20709,24 +18676,20 @@ }, "node_modules/long": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "license": "Apache-2.0" }, "node_modules/long-timeout": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", - "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==" + "license": "MIT" }, "node_modules/looper": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-4.0.0.tgz", - "integrity": "sha512-NjGRcX4vCwyfbujv03omakGfAYh6St5kVsZFKfU23MFO1Z9/mZT8ypTZMEnvVC7nJeYtbqkRPFV4GoJBPdJgYw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -20736,85 +18699,82 @@ }, "node_modules/loupe": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.1" } }, "node_modules/lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/lower-case-first": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", - "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/lru-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", "dev": true, + "license": "MIT", "dependencies": { "es5-ext": "~0.10.2" } }, "node_modules/ltgt": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/luxon": { "version": "3.4.4", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", - "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/mafmt": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-7.1.0.tgz", - "integrity": "sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA==", "dev": true, + "license": "MIT", "dependencies": { "multiaddr": "^7.3.0" } }, "node_modules/mafmt/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/mafmt/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -20830,6 +18790,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -20837,10 +18798,8 @@ }, "node_modules/mafmt/node_modules/cids": { "version": "0.8.3", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz", - "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "class-is": "^1.1.0", @@ -20855,10 +18814,8 @@ }, "node_modules/mafmt/node_modules/cids/node_modules/multibase": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -20870,10 +18827,8 @@ }, "node_modules/mafmt/node_modules/multiaddr": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz", - "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==", - "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "cids": "~0.8.0", @@ -20885,10 +18840,8 @@ }, "node_modules/mafmt/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -20896,10 +18849,8 @@ }, "node_modules/mafmt/node_modules/multicodec": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "varint": "^5.0.0" @@ -20907,9 +18858,8 @@ }, "node_modules/mafmt/node_modules/multihashes": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz", - "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.6.0", "multibase": "^1.0.1", @@ -20922,10 +18872,8 @@ }, "node_modules/mafmt/node_modules/multihashes/node_modules/multibase": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -20937,32 +18885,28 @@ }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true + "devOptional": true, + "license": "ISC" }, "node_modules/map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/media-typer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/memoizee": { "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.53", @@ -20974,22 +18918,24 @@ "timers-ext": "^0.1.7" } }, + "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==" + }, "node_modules/mensch": { "version": "0.3.4", - "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", - "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==", - "dev": true + "dev": true, + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/merge-options": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz", - "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^2.0.0" }, @@ -20999,17 +18945,15 @@ }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/merkletreejs": { "version": "0.3.11", - "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz", - "integrity": "sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==", + "license": "MIT", "dependencies": { "bignumber.js": "^9.0.1", "buffer-reverse": "^1.0.1", @@ -21023,9 +18967,8 @@ }, "node_modules/meros": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/meros/-/meros-1.3.0.tgz", - "integrity": "sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=13" }, @@ -21040,21 +18983,18 @@ }, "node_modules/methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micro-ftch": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", - "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==" + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -21063,10 +19003,37 @@ "node": ">=8.6" } }, + "node_modules/microtime": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/microtime/-/microtime-3.1.1.tgz", + "integrity": "sha512-to1r7o24cDsud9IhN6/8wGmMx5R2kT0w2Xwm5okbYI3d1dk6Xv0m+Z+jg2vS9pt+ocgQHTCtgs/YuyJhySzxNg==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.4.0" + }, + "engines": { + "node": ">= 14.13.0" + } + }, + "node_modules/microtime/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/microtime/node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, "node_modules/mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -21076,16 +19043,14 @@ }, "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==", + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -21095,8 +19060,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=6" } @@ -21105,16 +19069,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true, "engines": { "node": ">=4" } }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -21124,25 +19085,22 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/mjml": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml/-/mjml-4.15.3.tgz", - "integrity": "sha512-bW2WpJxm6HS+S3Yu6tq1DUPFoTxU9sPviUSmnL7Ua+oVO3WA5ILFWqvujUlz+oeuM+HCwEyMiP5xvKNPENVjYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "mjml-cli": "4.15.3", @@ -21157,9 +19115,8 @@ }, "node_modules/mjml-accordion": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-accordion/-/mjml-accordion-4.15.3.tgz", - "integrity": "sha512-LPNVSj1LyUVYT9G1gWwSw3GSuDzDsQCu0tPB2uDsq4VesYNnU6v3iLCQidMiR6azmIt13OEozG700ygAUuA6Ng==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21168,9 +19125,8 @@ }, "node_modules/mjml-body": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-body/-/mjml-body-4.15.3.tgz", - "integrity": "sha512-7pfUOVPtmb0wC+oUOn4xBsAw4eT5DyD6xqaxj/kssu6RrFXOXgJaVnDPAI9AzIvXJ/5as9QrqRGYAddehwWpHQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21179,9 +19135,8 @@ }, "node_modules/mjml-button": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-button/-/mjml-button-4.15.3.tgz", - "integrity": "sha512-79qwn9AgdGjJR1vLnrcm2rq2AsAZkKC5JPwffTMG+Nja6zGYpTDZFZ56ekHWr/r1b5WxkukcPj2PdevUug8c+Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21190,9 +19145,8 @@ }, "node_modules/mjml-carousel": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-carousel/-/mjml-carousel-4.15.3.tgz", - "integrity": "sha512-3ju6I4l7uUhPRrJfN3yK9AMsfHvrYbRkcJ1GRphFHzUj37B2J6qJOQUpzA547Y4aeh69TSb7HFVf1t12ejQxVw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21201,9 +19155,8 @@ }, "node_modules/mjml-cli": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-cli/-/mjml-cli-4.15.3.tgz", - "integrity": "sha512-+V2TDw3tXUVEptFvLSerz125C2ogYl8klIBRY1m5BHd4JvGVf3yhx8N3PngByCzA6PGcv/eydGQN+wy34SHf0Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "chokidar": "^3.0.0", @@ -21224,18 +19177,16 @@ }, "node_modules/mjml-cli/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/mjml-cli/node_modules/glob": { "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -21255,9 +19206,8 @@ }, "node_modules/mjml-cli/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -21270,9 +19220,8 @@ }, "node_modules/mjml-column": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-column/-/mjml-column-4.15.3.tgz", - "integrity": "sha512-hYdEFdJGHPbZJSEysykrevEbB07yhJGSwfDZEYDSbhQQFjV2tXrEgYcFD5EneMaowjb55e3divSJxU4c5q4Qgw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21281,9 +19230,8 @@ }, "node_modules/mjml-core": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-core/-/mjml-core-4.15.3.tgz", - "integrity": "sha512-Dmwk+2cgSD9L9GmTbEUNd8QxkTZtW9P7FN/ROZW/fGZD6Hq6/4TB0zEspg2Ow9eYjZXO2ofOJ3PaQEEShKV0kQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "cheerio": "1.0.0-rc.12", @@ -21299,9 +19247,8 @@ }, "node_modules/mjml-divider": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-divider/-/mjml-divider-4.15.3.tgz", - "integrity": "sha512-vh27LQ9FG/01y0b9ntfqm+GT5AjJnDSDY9hilss2ixIUh0FemvfGRfsGVeV5UBVPBKK7Ffhvfqc7Rciob9Spzw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21310,9 +19257,8 @@ }, "node_modules/mjml-group": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-group/-/mjml-group-4.15.3.tgz", - "integrity": "sha512-HSu/rKnGZVKFq3ciT46vi1EOy+9mkB0HewO4+P6dP/Y0UerWkN6S3UK11Cxsj0cAp0vFwkPDCdOeEzRdpFEkzA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21321,9 +19267,8 @@ }, "node_modules/mjml-head": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-head/-/mjml-head-4.15.3.tgz", - "integrity": "sha512-o3mRuuP/MB5fZycjD3KH/uXsnaPl7Oo8GtdbJTKtH1+O/3pz8GzGMkscTKa97l03DAG2EhGrzzLcU2A6eshwFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21332,9 +19277,8 @@ }, "node_modules/mjml-head-attributes": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-head-attributes/-/mjml-head-attributes-4.15.3.tgz", - "integrity": "sha512-2ISo0r5ZKwkrvJgDou9xVPxxtXMaETe2AsAA02L89LnbB2KC0N5myNsHV0sEysTw9+CfCmgjAb0GAI5QGpxKkQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21343,9 +19287,8 @@ }, "node_modules/mjml-head-breakpoint": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-head-breakpoint/-/mjml-head-breakpoint-4.15.3.tgz", - "integrity": "sha512-Eo56FA5C2v6ucmWQL/JBJ2z641pLOom4k0wP6CMZI2utfyiJ+e2Uuinj1KTrgDcEvW4EtU9HrfAqLK9UosLZlg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21354,9 +19297,8 @@ }, "node_modules/mjml-head-font": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-head-font/-/mjml-head-font-4.15.3.tgz", - "integrity": "sha512-CzV2aDPpiNIIgGPHNcBhgyedKY4SX3BJoTwOobSwZVIlEA6TAWB4Z9WwFUmQqZOgo1AkkiTHPZQvGcEhFFXH6g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21365,9 +19307,8 @@ }, "node_modules/mjml-head-html-attributes": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-head-html-attributes/-/mjml-head-html-attributes-4.15.3.tgz", - "integrity": "sha512-MDNDPMBOgXUZYdxhosyrA2kudiGO8aogT0/cODyi2Ed9o/1S7W+je11JUYskQbncqhWKGxNyaP4VWa+6+vUC/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21376,9 +19317,8 @@ }, "node_modules/mjml-head-preview": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-head-preview/-/mjml-head-preview-4.15.3.tgz", - "integrity": "sha512-J2PxCefUVeFwsAExhrKo4lwxDevc5aKj888HBl/wN4EuWOoOg06iOGCxz4Omd8dqyFsrqvbBuPqRzQ+VycGmaA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21387,9 +19327,8 @@ }, "node_modules/mjml-head-style": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-head-style/-/mjml-head-style-4.15.3.tgz", - "integrity": "sha512-9J+JuH+mKrQU65CaJ4KZegACUgNIlYmWQYx3VOBR/tyz+8kDYX7xBhKJCjQ1I4wj2Tvga3bykd89Oc2kFZ5WOw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21398,9 +19337,8 @@ }, "node_modules/mjml-head-title": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-head-title/-/mjml-head-title-4.15.3.tgz", - "integrity": "sha512-IM59xRtsxID4DubQ0iLmoCGXguEe+9BFG4z6y2xQDrscIa4QY3KlfqgKGT69ojW+AVbXXJPEVqrAi4/eCsLItQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21409,9 +19347,8 @@ }, "node_modules/mjml-hero": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-hero/-/mjml-hero-4.15.3.tgz", - "integrity": "sha512-9cLAPuc69yiuzNrMZIN58j+HMK1UWPaq2i3/Fg2ZpimfcGFKRcPGCbEVh0v+Pb6/J0+kf8yIO0leH20opu3AyQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21420,9 +19357,8 @@ }, "node_modules/mjml-image": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-image/-/mjml-image-4.15.3.tgz", - "integrity": "sha512-g1OhSdofIytE9qaOGdTPmRIp7JsCtgO0zbsn1Fk6wQh2gEL55Z40j/VoghslWAWTgT2OHFdBKnMvWtN6U5+d2Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21431,9 +19367,8 @@ }, "node_modules/mjml-migrate": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-migrate/-/mjml-migrate-4.15.3.tgz", - "integrity": "sha512-sr/+35RdxZroNQVegjpfRHJ5hda9XCgaS4mK2FGO+Mb1IUevKfeEPII3F/cHDpNwFeYH3kAgyqQ22ClhGLWNBA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "js-beautify": "^1.6.14", @@ -21448,9 +19383,8 @@ }, "node_modules/mjml-navbar": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-navbar/-/mjml-navbar-4.15.3.tgz", - "integrity": "sha512-VsKH/Jdlf8Yu3y7GpzQV5n7JMdpqvZvTSpF6UQXL0PWOm7k6+LX+sCZimOfpHJ+wCaaybpxokjWZ71mxOoCWoA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21459,9 +19393,8 @@ }, "node_modules/mjml-parser-xml": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-parser-xml/-/mjml-parser-xml-4.15.3.tgz", - "integrity": "sha512-Tz0UX8/JVYICLjT+U8J1f/TFxIYVYjzZHeh4/Oyta0pLpRLeZlxEd71f3u3kdnulCKMP4i37pFRDmyLXAlEuLw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "detect-node": "2.1.0", @@ -21471,8 +19404,6 @@ }, "node_modules/mjml-parser-xml/node_modules/htmlparser2": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -21481,6 +19412,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -21490,9 +19422,8 @@ }, "node_modules/mjml-preset-core": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-preset-core/-/mjml-preset-core-4.15.3.tgz", - "integrity": "sha512-1zZS8P4O0KweWUqNS655+oNnVMPQ1Rq1GaZq5S9JfwT1Vh/m516lSmiTW9oko6gGHytt5s6Yj6oOeu5Zm8FoLw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "mjml-accordion": "4.15.3", @@ -21524,9 +19455,8 @@ }, "node_modules/mjml-raw": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-raw/-/mjml-raw-4.15.3.tgz", - "integrity": "sha512-IGyHheOYyRchBLiAEgw3UM11kFNmBSMupu2BDdejC6ZiDhEAdG+tyERlsCwDPYtXanvFpGWULIu3XlsUPc+RZw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21535,9 +19465,8 @@ }, "node_modules/mjml-section": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-section/-/mjml-section-4.15.3.tgz", - "integrity": "sha512-JfVPRXH++Hd933gmQfG8JXXCBCR6fIzC3DwiYycvanL/aW1cEQ2EnebUfQkt5QzlYjOkJEH+JpccAsq3ln6FZQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21546,9 +19475,8 @@ }, "node_modules/mjml-social": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-social/-/mjml-social-4.15.3.tgz", - "integrity": "sha512-7sD5FXrESOxpT9Z4Oh36bS6u/geuUrMP1aCg2sjyAwbPcF1aWa2k9OcatQfpRf6pJEhUZ18y6/WBBXmMVmSzXg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21557,9 +19485,8 @@ }, "node_modules/mjml-spacer": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-spacer/-/mjml-spacer-4.15.3.tgz", - "integrity": "sha512-3B7Qj+17EgDdAtZ3NAdMyOwLTX1jfmJuY7gjyhS2HtcZAmppW+cxqHUBwCKfvSRgTQiccmEvtNxaQK+tfyrZqA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21568,9 +19495,8 @@ }, "node_modules/mjml-table": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-table/-/mjml-table-4.15.3.tgz", - "integrity": "sha512-FLx7DcRKTdKdcOCbMyBaeudeHaHpwPveRrBm6WyQe3LXx6FfdmOh59i71/16LFQMgBOD3N4/UJkzxLzlTJzMqQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21579,9 +19505,8 @@ }, "node_modules/mjml-text": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-text/-/mjml-text-4.15.3.tgz", - "integrity": "sha512-+C0hxCmw9kg0XzT6vhE5mFkK6y225nC8UEQcN94K0fBCjPKkM+HqZMwGX205fzdGRi+Bxa55b/VhrIVwdv+8vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21590,18 +19515,16 @@ }, "node_modules/mjml-validator": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-validator/-/mjml-validator-4.15.3.tgz", - "integrity": "sha512-Xb72KdqRwjv/qM2rJpV22syyP2N3cRQ9VVDrN6u2FSzLq02buFNxmSPJ7CKhat3PrUNdVHU75KZwOf/tz4UEhA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9" } }, "node_modules/mjml-wrapper": { "version": "4.15.3", - "resolved": "https://registry.npmjs.org/mjml-wrapper/-/mjml-wrapper-4.15.3.tgz", - "integrity": "sha512-ditsCijeHJrmBmObtJmQ18ddLxv5oPyMTdPU8Di8APOnD2zPk7Z4UAuJSl7HXB45oFiivr3MJf4koFzMUSZ6Gg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "lodash": "^4.17.21", @@ -21611,8 +19534,7 @@ }, "node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -21622,9 +19544,8 @@ }, "node_modules/mocha": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", - "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -21657,17 +19578,14 @@ }, "node_modules/mocha/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/mocha/node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -21675,6 +19593,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -21693,9 +19612,8 @@ }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -21704,9 +19622,8 @@ }, "node_modules/mocha/node_modules/glob": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -21723,9 +19640,8 @@ }, "node_modules/mocha/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -21735,18 +19651,16 @@ }, "node_modules/mocha/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/minimatch": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -21756,15 +19670,13 @@ }, "node_modules/mocha/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -21777,9 +19689,8 @@ }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -21795,135 +19706,373 @@ }, "node_modules/mock-socket": { "version": "9.3.1", - "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz", - "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==", + "license": "MIT", "engines": { "node": ">= 8" } }, "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==" + "license": "MIT" }, "node_modules/moment": { "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", "engines": { "node": "*" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "node_modules/mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "optional": true, + "peer": true, "dependencies": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" }, "engines": { - "node": ">= 6.0.0" + "node": ">=14.20.1" + }, + "optionalDependencies": { + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } } }, - "node_modules/multiaddr": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz", - "integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==", - "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr", - "dev": true, + "node_modules/mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "optional": true, + "peer": true, "dependencies": { - "cids": "^1.0.0", - "class-is": "^1.1.0", - "dns-over-http-resolver": "^1.0.0", - "err-code": "^2.0.3", - "is-ip": "^3.1.0", - "multibase": "^3.0.0", - "uint8arrays": "^1.1.0", - "varint": "^5.0.0" + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" } }, - "node_modules/multiaddr-to-uri": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz", - "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==", - "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr-to-uri", - "dev": true, - "dependencies": { - "multiaddr": "^8.0.0" + "node_modules/mongodb-connection-string-url/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=6" } }, - "node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dev": true, + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "optional": true, + "peer": true, "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" + "punycode": "^2.1.1" }, "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" + "node": ">=12" } }, - "node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "deprecated": "This module has been superseded by the multiformats module", - "dev": true, - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" + "node_modules/mongodb-connection-string-url/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==", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" } }, - "node_modules/multicodec/node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true - }, - "node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "dev": true - }, - "node_modules/multihashes": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", - "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", - "dev": true, + "node_modules/mongodb-connection-string-url/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==", + "optional": true, + "peer": true, "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^3.0.0", - "varint": "^5.0.2" + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" + "node": ">=12" } }, - "node_modules/multihashes/node_modules/multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "deprecated": "This module has been superseded by the multiformats module", - "dev": true, - "dependencies": { - "@multiformats/base-x": "^4.0.1" + "node_modules/mongodb/node_modules/bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "optional": true, + "peer": true, + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/mongoose": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.3.1.tgz", + "integrity": "sha512-D78C+s7QI4+pJQhs3XbOxzrHFEti4x+BDhaH94QrdV1/cmMA7fHc50LgLSXjzA/5q89TBK8DAXyf3VwDZbQJlA==", + "dependencies": { + "bson": "^6.5.0", + "kareem": "2.6.3", + "mongodb": "6.5.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "engines": { + "node": ">=16.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/mongoose/node_modules/mongodb": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.5.0.tgz", + "integrity": "sha512-Fozq68InT+JKABGLqctgtb8P56pRrJFkbhW0ux+x1mdHeyinor8oNzJqwLjV/t5X5nJGfTlluxfyMnOXNggIUA==", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.5", + "bson": "^6.4.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongoose/node_modules/mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "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==" + }, + "node_modules/mongoose/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mongoose/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/mongoose/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==", + "engines": { + "node": ">=12" + } + }, + "node_modules/mongoose/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/multiaddr": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cids": "^1.0.0", + "class-is": "^1.1.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^2.0.3", + "is-ip": "^3.1.0", + "multibase": "^3.0.0", + "uint8arrays": "^1.1.0", + "varint": "^5.0.0" + } + }, + "node_modules/multiaddr-to-uri": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "multiaddr": "^8.0.0" + } + }, + "node_modules/multibase": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multicodec": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "node_modules/multicodec/node_modules/varint": { + "version": "6.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/multiformats": { + "version": "9.9.0", + "dev": true, + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/multihashes": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multihashes/node_modules/multibase": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@multiformats/base-x": "^4.0.1" }, "engines": { "node": ">=12.0.0", @@ -21932,19 +20081,16 @@ }, "node_modules/multihashes/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/multihashing-async": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.5.2.tgz", - "integrity": "sha512-mmyG6M/FKxrpBh9xQDUvuJ7BbqT93ZeEeH5X6LeMYKoYshYLr9BDdCsvDtZvn+Egf+/Xi+aOznrWL4vp3s+p0Q==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "blakejs": "^1.1.0", "js-sha3": "~0.8.0", @@ -21959,17 +20105,14 @@ }, "node_modules/multihashing-async/node_modules/base-x": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/multihashing-async/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -21985,6 +20128,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -21992,10 +20136,8 @@ }, "node_modules/multihashing-async/node_modules/multibase": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "base-x": "^3.0.8", "buffer": "^5.5.0" @@ -22003,9 +20145,8 @@ }, "node_modules/multihashing-async/node_modules/multihashes": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "multibase": "^0.7.0", @@ -22014,53 +20155,39 @@ }, "node_modules/murmurhash3js": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/murmurhash3js/-/murmurhash3js-3.0.1.tgz", - "integrity": "sha512-KL8QYUaxq7kUbcl0Yto51rMcYt7E/4N4BG3/c96Iqw1PQrTRspu8Cpx4TZ4Nunib1d4bEkIH3gjCYlP2RLBdow==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/murmurhash3js-revisited": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "license": "ISC" }, "node_modules/mz": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, - "node_modules/nan": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", - "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", - "dev": true, - "optional": true - }, "node_modules/nanoassert": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", - "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" + "license": "ISC" }, "node_modules/nanoid": { "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -22068,6 +20195,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -22077,45 +20205,39 @@ }, "node_modules/napi-macros": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "peerDependencies": { "node-fetch": "*" } }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/natural-orderby": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz", - "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/needle": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -22130,31 +20252,27 @@ }, "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==", "dev": true, + "license": "MIT", "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==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "license": "MIT" }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -22165,19 +20283,16 @@ }, "node_modules/next-tick": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + "license": "ISC" }, "node_modules/nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "license": "MIT" }, "node_modules/no-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -22185,8 +20300,7 @@ }, "node_modules/nock": { "version": "13.5.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", - "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -22196,44 +20310,21 @@ "node": ">= 10.13" } }, - "node_modules/node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "dev": true, - "optional": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/node-abort-controller": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" + "license": "MIT" }, "node_modules/node-addon-api": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", "dev": true, + "license": "MIT", "engines": { "node": "^16 || ^18 || >= 20" } }, "node_modules/node-cache": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", - "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "license": "MIT", "dependencies": { "clone": "2.x" }, @@ -22243,13 +20334,10 @@ }, "node_modules/node-cleanup": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", - "integrity": "sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==" + "license": "MIT" }, "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", @@ -22260,14 +20348,14 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } }, "node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -22285,9 +20373,8 @@ }, "node_modules/node-gyp-build": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", "dev": true, + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -22296,19 +20383,16 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-schedule": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.1.tgz", - "integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==", + "license": "MIT", "dependencies": { "cron-parser": "^4.2.0", "long-timeout": "0.1.1", @@ -22320,9 +20404,8 @@ }, "node_modules/nodeify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz", - "integrity": "sha512-n7C2NyEze8GCo/z73KdbjRsBiLbv6eBn1FxwYKQ23IqGo7pQY3mhQan61Sv7eEDJCiyUjTVrVkXTzJCo1dW7Aw==", "dev": true, + "license": "MIT", "dependencies": { "is-promise": "~1.0.0", "promise": "~1.3.0" @@ -22330,31 +20413,21 @@ }, "node_modules/nodeify/node_modules/is-promise": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", - "integrity": "sha512-mjWH5XxnhMA8cFnDchr6qRP9S/kLntKuEfIYku+PaN1CnS8v+OG9O/BKpRCVRJvpIkgAZm0Pf5Is3iSSOILlcg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nodeify/node_modules/promise": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz", - "integrity": "sha512-R9WrbTF3EPkVtWjp7B7umQGVndpsi+rsDAfrR4xAALQpFLa/+2OriecLhawxzvii2gd9+DZFwROWDuUUaqS5yA==", "dev": true, + "license": "MIT", "dependencies": { "is-promise": "~1" } }, - "node_modules/noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==", - "dev": true, - "optional": true - }, "node_modules/nopt": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", "dev": true, + "license": "ISC", "dependencies": { "abbrev": "^2.0.0" }, @@ -22367,31 +20440,27 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/nssocket": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", - "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter2": "~0.4.14", "lazy": "~1.0.11" @@ -22402,15 +20471,13 @@ }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nth-check": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -22420,24 +20487,12 @@ }, "node_modules/nullthrows": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", - "dev": true - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/number-to-bn": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "license": "MIT", "dependencies": { "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" @@ -22449,29 +20504,25 @@ }, "node_modules/number-to-bn/node_modules/bn.js": { "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + "license": "MIT" }, "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-is": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1" @@ -22485,25 +20536,22 @@ }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object-treeify": { "version": "1.1.33", - "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", - "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/object.assign": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -22519,9 +20567,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -22536,9 +20583,8 @@ }, "node_modules/object.groupby": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", "dev": true, + "license": "MIT", "dependencies": { "array.prototype.filter": "^1.0.3", "call-bind": "^1.0.5", @@ -22549,9 +20595,8 @@ }, "node_modules/object.values": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -22566,8 +20611,7 @@ }, "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==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -22577,16 +20621,14 @@ }, "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==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -22599,16 +20641,14 @@ }, "node_modules/ono": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-9jnfVriq7uJM4o5ganUY54ntUm+5EK21EGaQ5NWnkWg3zz5ywbbonlBguRcnmF1/HDiIe3zxNxXcO1YPBmPcQQ==", + "license": "MIT", "dependencies": { "@jsdevtools/ono": "7.1.3" } }, "node_modules/open": { "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -22622,9 +20662,8 @@ }, "node_modules/openapi-typescript": { "version": "6.7.5", - "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-6.7.5.tgz", - "integrity": "sha512-ZD6dgSZi0u1QCP55g8/2yS5hNJfIpgqsSGHLxxdOjvY7eIrXzj271FJEQw33VwsZ6RCtO/NOuhxa7GBWmEudyA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.3", "fast-glob": "^3.3.2", @@ -22639,18 +20678,16 @@ }, "node_modules/openapi-typescript/node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/openapi-typescript/node_modules/supports-color": { "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -22660,25 +20697,22 @@ }, "node_modules/openapi-typescript/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/opentracing": { "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", + "license": "Apache-2.0", "engines": { "node": ">=0.10" } }, "node_modules/optimism": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.0.tgz", - "integrity": "sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==", + "license": "MIT", "dependencies": { "@wry/caches": "^1.0.0", "@wry/context": "^0.7.0", @@ -22688,8 +20722,7 @@ }, "node_modules/optimism/node_modules/@wry/trie": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz", - "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -22699,9 +20732,8 @@ }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -22716,14 +20748,12 @@ }, "node_modules/optionator/node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -22744,8 +20774,7 @@ }, "node_modules/ora/node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -22754,8 +20783,6 @@ }, "node_modules/ora/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", @@ -22770,6 +20797,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -22777,8 +20805,7 @@ }, "node_modules/ora/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -22788,38 +20815,33 @@ "node": ">= 6" } }, - "node_modules/os-homedir": { + "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true, - "optional": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "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==", "dev": true, + "license": "MIT", "dependencies": { "fast-fifo": "^1.0.0", "p-defer": "^3.0.0" @@ -22827,16 +20849,14 @@ }, "node_modules/p-is-promise": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -22849,9 +20869,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -22864,9 +20883,8 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -22879,18 +20897,16 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pac-proxy-agent": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dev": true, + "license": "MIT", "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.0.2", @@ -22907,9 +20923,8 @@ }, "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -22920,9 +20935,8 @@ }, "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -22933,9 +20947,8 @@ }, "node_modules/pac-resolver": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", "dev": true, + "license": "MIT", "dependencies": { "degenerator": "^5.0.0", "netmask": "^2.0.2" @@ -22946,19 +20959,16 @@ }, "node_modules/packet-reader": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" + "license": "MIT" }, "node_modules/pako": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "license": "(MIT AND Zlib)" }, "node_modules/param-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -22966,9 +20976,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -22978,15 +20987,13 @@ }, "node_modules/parse-duration": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.4.4.tgz", - "integrity": "sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse-filepath": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-absolute": "^1.0.0", "map-cache": "^0.2.0", @@ -22998,9 +21005,8 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -23016,9 +21022,8 @@ }, "node_modules/parse5": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.4.0" }, @@ -23028,9 +21033,8 @@ }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "dev": true, + "license": "MIT", "dependencies": { "domhandler": "^5.0.2", "parse5": "^7.0.0" @@ -23041,17 +21045,15 @@ }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/pascal-case": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -23059,9 +21061,8 @@ }, "node_modules/password-prompt": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", - "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", "dev": true, + "license": "0BSD", "dependencies": { "ansi-escapes": "^4.3.2", "cross-spawn": "^7.0.3" @@ -23069,8 +21070,7 @@ }, "node_modules/patch-package": { "version": "6.5.1", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz", - "integrity": "sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==", + "license": "MIT", "dependencies": { "@yarnpkg/lockfile": "^1.1.0", "chalk": "^4.1.2", @@ -23097,8 +21097,7 @@ }, "node_modules/patch-package/node_modules/cross-spawn": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -23112,8 +21111,7 @@ }, "node_modules/patch-package/node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -23126,8 +21124,7 @@ }, "node_modules/patch-package/node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -23137,16 +21134,14 @@ }, "node_modules/patch-package/node_modules/path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/patch-package/node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -23156,16 +21151,14 @@ }, "node_modules/patch-package/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/patch-package/node_modules/shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "license": "MIT", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -23175,32 +21168,28 @@ }, "node_modules/patch-package/node_modules/shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/patch-package/node_modules/slash": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/patch-package/node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/patch-package/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -23210,9 +21199,8 @@ }, "node_modules/path-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -23220,39 +21208,34 @@ }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "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==", + "license": "MIT", "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==" + "license": "MIT" }, "node_modules/path-root": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, + "license": "MIT", "dependencies": { "path-root-regex": "^0.1.0" }, @@ -23262,17 +21245,15 @@ }, "node_modules/path-root-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-scurry": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -23286,39 +21267,34 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-to-regexp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", - "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/pg": { "version": "8.8.0", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", - "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", + "license": "MIT", "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", @@ -23342,40 +21318,34 @@ }, "node_modules/pg-cloudflare": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "license": "MIT", "optional": true }, "node_modules/pg-connection-string": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + "license": "MIT" }, "node_modules/pg-int8": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", "engines": { "node": ">=4.0.0" } }, "node_modules/pg-pool": { "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "license": "MIT", "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + "license": "MIT" }, "node_modules/pg-types": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -23389,30 +21359,26 @@ }, "node_modules/pgpass": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", "dependencies": { "split2": "^4.1.0" } }, "node_modules/pgpass/node_modules/split2": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", "engines": { "node": ">= 10.x" } }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -23422,9 +21388,8 @@ }, "node_modules/pidusage": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz", - "integrity": "sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.2.1" }, @@ -23434,9 +21399,8 @@ }, "node_modules/pm2": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/pm2/-/pm2-5.3.1.tgz", - "integrity": "sha512-DLVQHpSR1EegaTaRH3KbRXxpPVaqYwAp3uHSCtCsS++LSErvk07WSxuUnntFblBRqNU/w2KQyqs12mSq5wurkg==", "dev": true, + "license": "AGPL-3.0", "dependencies": { "@pm2/agent": "~2.0.0", "@pm2/io": "~5.0.0", @@ -23483,9 +21447,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==", "dev": true, + "license": "MIT", "dependencies": { "amp": "~0.3.1", "amp-message": "~0.1.1", @@ -23498,9 +21461,8 @@ }, "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==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.1" }, @@ -23510,9 +21472,8 @@ }, "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==", "dev": true, + "license": "MIT", "dependencies": { "run-series": "^1.1.8", "tv4": "^1.3.0" @@ -23523,18 +21484,16 @@ }, "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==", "dev": true, + "license": "MIT/X11", "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==", "dev": true, + "license": "Apache", "optional": true, "dependencies": { "async": "^3.2.0", @@ -23546,9 +21505,8 @@ }, "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==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safe-buffer": "^5.2.1" @@ -23559,9 +21517,8 @@ }, "node_modules/pm2/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -23574,9 +21531,8 @@ }, "node_modules/pm2/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -23587,9 +21543,8 @@ }, "node_modules/pm2/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -23599,30 +21554,26 @@ }, "node_modules/pm2/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pm2/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pm2/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pm2/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -23632,9 +21583,8 @@ }, "node_modules/pm2/node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -23644,9 +21594,8 @@ }, "node_modules/pm2/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -23659,9 +21608,8 @@ }, "node_modules/pm2/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==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -23671,46 +21619,40 @@ }, "node_modules/pm2/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/possible-typed-array-names": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/postgres-array": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/postgres-bytea": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/postgres-date": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/postgres-interval": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", "dependencies": { "xtend": "^4.0.0" }, @@ -23718,47 +21660,18 @@ "node": ">=0.10.0" } }, - "node_modules/prebuild-install": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.3.tgz", - "integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==", - "dev": true, - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^1.0.2", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "node-abi": "^2.2.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", - "rc": "^1.1.6", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "prebuild-install": "bin.js" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -23771,9 +21684,8 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -23783,21 +21695,17 @@ }, "node_modules/process": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "license": "MIT" }, "node_modules/prom-client": { "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", + "license": "Apache-2.0", "dependencies": { "tdigest": "^0.1.1" }, @@ -23807,26 +21715,23 @@ }, "node_modules/promise": { "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "dev": true, + "license": "MIT", "dependencies": { "asap": "~2.0.3" } }, "node_modules/promptly": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", - "integrity": "sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==", "dev": true, + "license": "MIT", "dependencies": { "read": "^1.0.4" } }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -23835,17 +21740,15 @@ }, "node_modules/propagate": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/proper-lockfile": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", @@ -23854,24 +21757,21 @@ }, "node_modules/proper-lockfile/node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/proto-list": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/protobufjs": { "version": "6.11.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", - "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -23894,16 +21794,13 @@ }, "node_modules/protocol-buffers-schema": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/protons": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/protons/-/protons-1.2.1.tgz", - "integrity": "sha512-2oqDyc/SN+tNcJf8XxrXhYL7sQn2/OMl8mSdD7NVGsWjMEmAbks4eDVnCyf0vAoRbBWyWTEXWk4D8XfuKVl3zg==", - "deprecated": "This module is no longer maintained", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "protocol-buffers-schema": "^3.3.1", @@ -23913,8 +21810,6 @@ }, "node_modules/protons/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -23930,6 +21825,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -23937,8 +21833,7 @@ }, "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==", + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -23949,9 +21844,8 @@ }, "node_modules/proxy-agent": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", - "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -23968,9 +21862,8 @@ }, "node_modules/proxy-agent/node_modules/http-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -23981,9 +21874,8 @@ }, "node_modules/proxy-agent/node_modules/https-proxy-agent": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -23994,122 +21886,105 @@ }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "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==" + "license": "MIT" }, "node_modules/prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-batch": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pull-batch/-/pull-batch-1.0.0.tgz", - "integrity": "sha512-bC12t4zakv5dATb146W42wBM9GYOPXuDD+HQTHpbGCeIDkNogrSbg+iJmGzNghb+yCuSD2C24YSO8liW8aYkpw==", "dev": true, + "license": "ISC", "dependencies": { "pull-through": "^1.0.18" } }, "node_modules/pull-cat": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz", - "integrity": "sha512-i3w+xZ3DCtTVz8S62hBOuNLRHqVDsHMNZmgrZsjPnsxXUgbWtXEee84lo1XswE7W2a3WHyqsNuDJTjVLAQR8xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-defer": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz", - "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-many": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/pull-many/-/pull-many-1.0.9.tgz", - "integrity": "sha512-+jUydDVlj/HsvtDqxWMSsiRq3B0HVo7RhBV4C0p2nZRS3mFTUEu9SPEBN+B5PMaW8KTnblYhTIaKg7oXgGnj4Q==", "dev": true, + "license": "MIT", "dependencies": { "pull-stream": "^3.4.5" } }, "node_modules/pull-pair": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pull-pair/-/pull-pair-1.1.0.tgz", - "integrity": "sha512-7VEFLxWnj2AKaN3AvtyaM508d1+56/ulSjDLu4j6kcd9DnEM6LfG8b1R9gCLqzIjJo5stFrWynVc6e451OW4LQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-paramap": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/pull-paramap/-/pull-paramap-1.2.2.tgz", - "integrity": "sha512-0ALwLcASif3KmKCXO4liySCKsTfC/mGYhRFch+xLvfJJrYOIfXPthrykDUZpeZtbjEXglPySzfUmYcnBqzTj5w==", "dev": true, + "license": "MIT", "dependencies": { "looper": "^4.0.0" } }, "node_modules/pull-pause": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/pull-pause/-/pull-pause-0.0.2.tgz", - "integrity": "sha512-yQs63NDgD/FeAsdF7INpy4uDolkstkS4Gx1Z3BvMR2gQS8RREJd2tsy6d/K6T+/CDStGnCQI7JLrkjz10YNiSA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-pushable": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.2.0.tgz", - "integrity": "sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-stream": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.7.0.tgz", - "integrity": "sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-stream-to-async-iterator": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz", - "integrity": "sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA==", "dev": true, + "license": "MIT", "dependencies": { "pull-stream": "^3.6.9" } }, "node_modules/pull-through": { "version": "1.0.18", - "resolved": "https://registry.npmjs.org/pull-through/-/pull-through-1.0.18.tgz", - "integrity": "sha512-t8BBRdKstI/JoWS3FAXRnBvo1ahoLcKo8nm8ZUzr4OUgIf47RodD6HjnPIpw/d6HQZaMu+TotLAYCNwLTnvcNw==", "dev": true, + "license": "MIT", "dependencies": { "looper": "~3.0.0" } }, "node_modules/pull-through/node_modules/looper": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", - "integrity": "sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-traverse": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pull-traverse/-/pull-traverse-1.0.3.tgz", - "integrity": "sha512-tdvTsDPh7PwuBEJ3o7DI6h/bQ5ocm9W0TYWNWEQ37ZS9Mt9aRfJqfvmAIdrpg3DgahU9PSITX0fYg8xTbqEdjQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pull-write": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/pull-write/-/pull-write-1.1.4.tgz", - "integrity": "sha512-EkkwRg2EDfPQI1mzUxtSdx5kJAKpbSSoAwwP4+K3ENWUmWqehDQoSx/bM5VeYkl3Hrfkr3nsLyLL2TbfVO9HGw==", "dev": true, + "license": "MIT", "dependencies": { "looper": "^4.0.0", "pull-cat": "^1.1.11", @@ -24117,11 +21992,9 @@ } }, "node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "optional": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -24129,32 +22002,28 @@ }, "node_modules/punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pvtsutils": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.6.1" } }, "node_modules/pvutils": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -24167,8 +22036,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -24183,77 +22050,37 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, - "node_modules/rabin": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/rabin/-/rabin-1.6.0.tgz", - "integrity": "sha512-9xqtv20OwSyOdikIHK28U03Y0061gK0BCT8635YTvlcOplO+dK9UZsLTE4y93Ykx8br4lfezdh8XLq1u9NoGmQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bindings": "^1.2.1", - "bl": "^1.0.0", - "debug": "^2.2.0", - "minimist": "^1.2.0", - "nan": "^2.1.0", - "prebuild-install": "^2.1.0", - "readable-stream": "^2.0.4" + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" }, - "bin": { - "rabin": "cli.js" - } - }, - "node_modules/rabin/node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/rabin/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rabin/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true - }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "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==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -24264,36 +22091,9 @@ "node": ">= 0.8" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -24303,14 +22103,12 @@ }, "node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "license": "MIT" }, "node_modules/read": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", "dev": true, + "license": "ISC", "dependencies": { "mute-stream": "~0.0.4" }, @@ -24320,8 +22118,7 @@ }, "node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -24334,19 +22131,16 @@ }, "node_modules/readable-stream/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "license": "MIT" }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "license": "MIT" }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -24356,34 +22150,39 @@ }, "node_modules/receptacle": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, + "node_modules/recombee-api-client": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/recombee-api-client/-/recombee-api-client-4.1.5.tgz", + "integrity": "sha512-VTN7vYonV+Ajdb/hMluEGzftKJMQt+FOEwE2AiXMAINLSsB+NarDTu18ehG1UhBbJEZWiGvRwP0Mc4FYyEnTuQ==", + "dependencies": { + "got": "^11.8.2", + "jssha": "^2.3.0" + } + }, "node_modules/redeyed": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", "dev": true, + "license": "MIT", "dependencies": { "esprima": "~4.0.0" } }, "node_modules/redis-errors": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/redis-parser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "license": "MIT", "dependencies": { "redis-errors": "^1.0.0" }, @@ -24393,18 +22192,15 @@ }, "node_modules/reflect-metadata": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + "license": "Apache-2.0" }, "node_modules/regenerator-runtime": { "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", @@ -24420,9 +22216,8 @@ }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -24432,8 +22227,7 @@ }, "node_modules/rehackt": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.6.tgz", - "integrity": "sha512-l3WEzkt4ntlEc/IB3/mF6SRgNHA6zfQR7BlGOgBTOmx7IJJXojDASav+NsgXHFjHn+6RmwqsGPFgZpabWpeOdw==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "*" @@ -24449,18 +22243,16 @@ }, "node_modules/relateurl": { "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/relay-runtime": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", - "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "fbjs": "^3.0.0", @@ -24469,45 +22261,39 @@ }, "node_modules/remedial": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", - "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", "dev": true, + "license": "(MIT OR Apache-2.0)", "engines": { "node": "*" } }, "node_modules/remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/remove-trailing-spaces": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", - "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-in-the-middle": { "version": "7.2.1", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.1.tgz", - "integrity": "sha512-u5XngygsJ+XV2dBV/Pl4SrcNpUXQfmYmXtuFeHDXfzk4i4NnGnret6xKWkkJHjMHS/16yMV9pEAlAunqmjllkA==", + "license": "MIT", "dependencies": { "debug": "^4.1.1", "module-details-from-path": "^1.0.3", @@ -24519,14 +22305,11 @@ }, "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/reset": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/reset/-/reset-0.1.0.tgz", - "integrity": "sha512-RF7bp2P2ODreUPA71FZ4DSK52gNLJJ8dSwA1nhOCoC0mI4KZ4D/W6zhd2nfBqX/JlR+QZ/iUqAYPjq1UQU8l0Q==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -24534,8 +22317,7 @@ }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -24548,27 +22330,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/response-iterator": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", - "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", + "license": "MIT", "engines": { "node": ">=0.8" } }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -24579,17 +22374,15 @@ }, "node_modules/retry": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -24597,15 +22390,13 @@ }, "node_modules/rfdc": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -24616,10 +22407,32 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rolling-rate-limiter": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/rolling-rate-limiter/-/rolling-rate-limiter-0.4.2.tgz", + "integrity": "sha512-4lKCwwuINmfPvyfLtvAHn+SiwXisH8fmmEvTSHYAenAfKF0p6IErkUEIS+9dvWAslU+97WtX000ne26RAToo2w==", + "dependencies": { + "microtime": "^3.0.0", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/rolling-rate-limiter/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/run": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/run/-/run-1.5.0.tgz", - "integrity": "sha512-CBPzeX6JQZUdhZpSFyNt2vUk44ivKMWZYCNBYoZYEE46mL9nf6WyMP3320WnzIrJuo89+njiUvlo83jUEXjXLg==", "dev": true, "dependencies": { "minimatch": "*" @@ -24633,16 +22446,13 @@ }, "node_modules/run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -24658,14 +22468,13 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "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==", "dev": true, "funding": [ { @@ -24680,18 +22489,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/rx-lite": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", "dev": true }, "node_modules/rx-lite-aggregates": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", "dev": true, "dependencies": { "rx-lite": "*" @@ -24699,17 +22505,15 @@ }, "node_modules/rxjs": { "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-array-concat": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", @@ -24725,8 +22529,6 @@ }, "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", @@ -24740,13 +22542,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-regex-test": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -24761,34 +22563,29 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "license": "MIT" }, "node_modules/sax": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/scuid": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz", - "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/send": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -24810,27 +22607,23 @@ }, "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==", + "license": "MIT", "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==" + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/sentence-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -24839,17 +22632,15 @@ }, "node_modules/serialize-javascript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/serve-static": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -24862,14 +22653,12 @@ }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/set-function-length": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -24884,8 +22673,7 @@ }, "node_modules/set-function-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -24898,19 +22686,16 @@ }, "node_modules/setimmediate": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "license": "ISC" }, "node_modules/sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -24921,8 +22706,7 @@ }, "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==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -24932,30 +22716,26 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/shimmer": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + "license": "BSD-2-Clause" }, "node_modules/side-channel": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -24969,73 +22749,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, "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==" + "license": "ISC" }, "node_modules/signed-varint": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", - "integrity": "sha512-abgDPg1106vuZZOvw7cFwdCABddfJRz5akcCcchzTbhyhYnsG31y4AlZEgp315T7W3nQq5P4xeOm186ZiPVFzw==", "dev": true, + "license": "MIT", "dependencies": { "varint": "~5.0.0" } }, "node_modules/signedsource": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", - "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==", - "dev": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", "dev": true, - "optional": true, - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } + "license": "BSD-3-Clause" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -25047,9 +22794,8 @@ }, "node_modules/slice-ansi/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==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -25062,9 +22808,8 @@ }, "node_modules/slice-ansi/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==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -25074,23 +22819,19 @@ }, "node_modules/slice-ansi/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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slick": { "version": "1.12.2", - "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", - "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==", "dev": true, + "license": "MIT (http://mootools.net/license.txt)", "engines": { "node": "*" } }, "node_modules/slug": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/slug/-/slug-2.1.1.tgz", - "integrity": "sha512-yNGhDdS0DR0JyxnPC84qIx/Vd01RHVY4guJeBqBNdBoOLNWnzw5zkWJvxVSmsuUb92bikdnQFnw3PfGY8uZ82g==", "dev": true, "dependencies": { "unicode": ">= 0.3.1" @@ -25101,9 +22842,8 @@ }, "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==", - "dev": true, + "devOptional": true, + "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -25111,9 +22851,8 @@ }, "node_modules/snake-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -25121,9 +22860,8 @@ }, "node_modules/socks": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", - "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", - "dev": true, + "devOptional": true, + "license": "MIT", "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" @@ -25135,9 +22873,8 @@ }, "node_modules/socks-proxy-agent": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -25149,9 +22886,8 @@ }, "node_modules/sort-keys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^1.0.0" }, @@ -25161,31 +22897,27 @@ }, "node_modules/sort-keys/node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/sorted-array-functions": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", - "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==" + "license": "MIT" }, "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==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -25193,27 +22925,31 @@ }, "node_modules/sparse-array": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", - "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==", - "dev": true + "dev": true, + "license": "ISC" + }, + "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==", + "dependencies": { + "memory-pager": "^1.0.2" + } }, "node_modules/spawn-command": { "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==" + "license": "MIT" }, "node_modules/split2": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "license": "ISC", "dependencies": { "readable-stream": "^3.0.0" } }, "node_modules/split2/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -25225,43 +22961,36 @@ }, "node_modules/sponge-case": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", - "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "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==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stable": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/standard-as-callback": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + "license": "MIT" }, "node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "license": "MIT", "dependencies": { "internal-slot": "^1.0.4" }, @@ -25271,8 +23000,7 @@ }, "node_modules/stoppable": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "license": "MIT", "engines": { "node": ">=4", "npm": ">=6" @@ -25280,18 +23008,16 @@ }, "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==", "dev": true, + "license": "MIT", "dependencies": { "get-iterator": "^1.0.2" } }, "node_modules/stream-to-pull-stream": { "version": "1.7.3", - "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz", - "integrity": "sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==", "dev": true, + "license": "MIT", "dependencies": { "looper": "^3.0.0", "pull-stream": "^3.2.3" @@ -25299,46 +23025,37 @@ }, "node_modules/stream-to-pull-stream/node_modules/looper": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", - "integrity": "sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/streamsearch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", "engines": { "node": ">=10.0.0" } }, "node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "license": "MIT" }, "node_modules/string-env-interpolation": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", - "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" + "version": "0.2.1" }, "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==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -25351,8 +23068,7 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -25364,9 +23080,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -25381,9 +23096,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -25395,9 +23109,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -25409,8 +23122,7 @@ }, "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==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -25421,8 +23133,7 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -25432,17 +23143,15 @@ }, "node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/strip-hex-prefix": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "license": "MIT", "dependencies": { "is-hex-prefixed": "1.0.0" }, @@ -25453,9 +23162,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -25465,9 +23173,8 @@ }, "node_modules/superagent": { "version": "8.1.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", - "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", "dev": true, + "license": "MIT", "dependencies": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.4", @@ -25486,9 +23193,8 @@ }, "node_modules/superagent/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -25498,9 +23204,8 @@ }, "node_modules/superagent/node_modules/mime": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -25510,9 +23215,8 @@ }, "node_modules/superagent/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -25525,15 +23229,13 @@ }, "node_modules/superagent/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/supertest": { "version": "6.3.4", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", - "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", "dev": true, + "license": "MIT", "dependencies": { "methods": "^1.1.2", "superagent": "^8.1.2" @@ -25544,8 +23246,7 @@ }, "node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -25555,9 +23256,8 @@ }, "node_modules/supports-hyperlinks": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -25568,18 +23268,16 @@ }, "node_modules/supports-hyperlinks/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/supports-hyperlinks/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==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -25589,8 +23287,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -25600,13 +23297,11 @@ }, "node_modules/swagger-ui-dist": { "version": "5.12.0", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.12.0.tgz", - "integrity": "sha512-Rt1xUpbHulJVGbiQjq9yy9/r/0Pg6TmpcG+fXTaMePDc8z5WUw4LfaWts5qcNv/8ewPvBIbY7DKq7qReIKNCCQ==" + "license": "Apache-2.0" }, "node_modules/swagger-ui-express": { "version": "4.6.3", - "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.3.tgz", - "integrity": "sha512-CDje4PndhTD2HkgyKH3pab+LKspDeB/NhPN2OF1j+piYIamQqBYwAXWESOT1Yju2xFg51bRW9sUng2WxDjzArw==", + "license": "MIT", "dependencies": { "swagger-ui-dist": ">=4.11.0" }, @@ -25619,26 +23314,23 @@ }, "node_modules/swap-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", - "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/symbol-observable": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/systeminformation": { "version": "5.22.2", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.22.2.tgz", - "integrity": "sha512-VsXY7i1UFZZhbNRv8QN6yTIqNL66/rXpMGb5xYzXx8jDYyEM0+tQpehpPdaxxvym+oYIHs9usUxDzRDNkabpVQ==", "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin", @@ -25661,86 +23353,28 @@ "url": "https://www.buymeacoffee.com/systeminfo" } }, - "node_modules/tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", - "dev": true, - "optional": true, - "dependencies": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - } - }, - "node_modules/tar-fs/node_modules/pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "optional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "optional": true, - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/tar-stream/node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, "node_modules/tdigest": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "license": "MIT", "dependencies": { "bintrees": "1.0.2" } }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } }, "node_modules/thenify-all": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -25750,8 +23384,6 @@ }, "node_modules/thriftrw": { "version": "3.11.4", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.11.4.tgz", - "integrity": "sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==", "dependencies": { "bufrw": "^1.2.1", "error": "7.0.2", @@ -25766,21 +23398,18 @@ }, "node_modules/thriftrw/node_modules/long": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", + "license": "Apache-2.0", "engines": { "node": ">=0.6" } }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "license": "MIT" }, "node_modules/through2": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "2 || 3" @@ -25788,9 +23417,8 @@ }, "node_modules/timers-ext": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", "dev": true, + "license": "ISC", "dependencies": { "es5-ext": "~0.10.46", "next-tick": "1" @@ -25798,8 +23426,7 @@ }, "node_modules/tinyld": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/tinyld/-/tinyld-1.3.4.tgz", - "integrity": "sha512-u26CNoaInA4XpDU+8s/6Cq8xHc2T5M4fXB3ICfXPokUQoLzmPgSZU02TAkFwFMJCWTjk53gtkS8pETTreZwCqw==", + "license": "MIT", "bin": { "tinyld": "bin/tinyld.js", "tinyld-heavy": "bin/tinyld-heavy.js", @@ -25813,17 +23440,15 @@ }, "node_modules/title-case": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -25831,26 +23456,17 @@ "node": ">=0.6.0" } }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true, - "optional": true - }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -25860,22 +23476,19 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/traverse": { "version": "0.6.8", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", - "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -25885,24 +23498,21 @@ }, "node_modules/tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "license": "MIT", "bin": { "tree-kill": "cli.js" } }, "node_modules/treeify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/ts-invariant": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "license": "MIT", "dependencies": { "tslib": "^2.1.0" }, @@ -25912,15 +23522,13 @@ }, "node_modules/ts-log": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", - "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ts-mocha": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", - "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", "dev": true, + "license": "MIT", "dependencies": { "ts-node": "7.0.1" }, @@ -25939,18 +23547,16 @@ }, "node_modules/ts-mocha/node_modules/diff": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/ts-mocha/node_modules/ts-node": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.0", "buffer-from": "^1.1.0", @@ -25970,18 +23576,16 @@ }, "node_modules/ts-mocha/node_modules/yn": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/ts-node": { "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "devOptional": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -26022,18 +23626,16 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "devOptional": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/tsconfig-paths": { "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -26043,9 +23645,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -26055,14 +23656,12 @@ }, "node_modules/tslib": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -26075,15 +23674,13 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -26093,23 +23690,29 @@ }, "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==", "dev": true, + "license": [ + { + "type": "Public Domain", + "url": "http://geraintluff.github.io/tv4/LICENSE.txt" + }, + { + "type": "MIT", + "url": "http://jsonary.com/LICENSE.txt" + } + ], "engines": { "node": ">= 0.8.0" } }, "node_modules/tweetnacl": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "license": "Unlicense" }, "node_modules/tx2": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz", - "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "json-stringify-safe": "^5.0.1" @@ -26117,14 +23720,12 @@ }, "node_modules/type": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -26134,17 +23735,15 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -26154,9 +23753,8 @@ }, "node_modules/type-graphql": { "version": "1.2.0-rc.1", - "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-1.2.0-rc.1.tgz", - "integrity": "sha512-W1p51DN+n/zX4ilunMC6/FcyGlx/ND3hreQ0ARDhfhyR9oGtfKzQNnkHhk8uXlYm2zzyTEd1LkRHJr8bbnRlIA==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "@types/glob": "^7.1.3", "@types/node": "*", @@ -26181,8 +23779,7 @@ }, "node_modules/type-graphql/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -26192,8 +23789,7 @@ }, "node_modules/type-graphql/node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -26206,13 +23802,11 @@ }, "node_modules/type-graphql/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "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==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -26223,17 +23817,15 @@ }, "node_modules/type-is/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==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/typed-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -26245,9 +23837,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -26264,9 +23855,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -26284,9 +23874,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -26304,21 +23893,18 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + "license": "MIT" }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typeorm": { "version": "0.3.20", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", - "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", + "license": "MIT", "dependencies": { "@sqltools/formatter": "^1.2.5", "app-root-path": "^3.1.0", @@ -26422,16 +24008,14 @@ }, "node_modules/typeorm/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/typeorm/node_modules/glob": { "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -26451,8 +24035,7 @@ }, "node_modules/typeorm/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -26465,8 +24048,7 @@ }, "node_modules/typeorm/node_modules/mkdirp": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "license": "MIT", "bin": { "mkdirp": "dist/cjs/src/bin.js" }, @@ -26479,26 +24061,23 @@ }, "node_modules/typeorm/node_modules/reflect-metadata": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" + "license": "Apache-2.0" }, "node_modules/typeorm/node_modules/uuid": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/typescript": { "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "devOptional": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -26509,8 +24088,6 @@ }, "node_modules/ua-parser-js": { "version": "1.0.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", - "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", "funding": [ { "type": "opencollective", @@ -26525,15 +24102,15 @@ "url": "https://github.com/sponsors/faisalman" } ], + "license": "MIT", "engines": { "node": "*" } }, "node_modules/uglify-js": { "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "devOptional": true, + "license": "BSD-2-Clause", "bin": { "uglifyjs": "bin/uglifyjs" }, @@ -26543,8 +24120,7 @@ }, "node_modules/uid": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", - "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "license": "MIT", "dependencies": { "@lukeed/csprng": "^1.0.0" }, @@ -26554,9 +24130,8 @@ }, "node_modules/uint8arrays": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^3.0.0", "web-encoding": "^1.0.2" @@ -26564,9 +24139,8 @@ }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -26579,18 +24153,16 @@ }, "node_modules/unc-path-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/undici": { "version": "5.28.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", - "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", "dev": true, + "license": "MIT", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -26600,17 +24172,15 @@ }, "node_modules/unicode": { "version": "14.0.0", - "resolved": "https://registry.npmjs.org/unicode/-/unicode-14.0.0.tgz", - "integrity": "sha512-BjinxTXkbm9Jomp/YBTMGusr4fxIG67fNGShHIRAL16Ur2GJTq2xvLi+sxuiJmInCmwqqev2BCFKyvbfp/yAkg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.x" } }, "node_modules/unist-util-stringify-position": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -26621,18 +24191,16 @@ }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/unixify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", - "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", "dev": true, + "license": "MIT", "dependencies": { "normalize-path": "^2.1.1" }, @@ -26642,9 +24210,8 @@ }, "node_modules/unixify/node_modules/normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -26654,16 +24221,13 @@ }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -26679,6 +24243,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -26692,54 +24257,47 @@ }, "node_modules/upper-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/uri-js/node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/url-join": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + "license": "MIT" }, "node_modules/urlpattern-polyfill": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", - "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/utf-8-validate": { "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -26749,8 +24307,7 @@ }, "node_modules/utf-8-validate/node_modules/node-gyp-build": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -26759,64 +24316,55 @@ }, "node_modules/utf8": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + "license": "MIT" }, "node_modules/util": { "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "2.0.3" } }, "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==" + "license": "MIT" }, "node_modules/util/node_modules/inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "dev": true, + "license": "ISC" }, "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==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/valid-data-url": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz", - "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/validator": { "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "license": "MIT", "peer": true, "engines": { "node": ">= 0.10" @@ -26824,30 +24372,26 @@ }, "node_modules/value-or-promise": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/varint": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vfile": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0", @@ -26860,8 +24404,7 @@ }, "node_modules/vfile-message": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" @@ -26873,9 +24416,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==", "dev": true, + "license": "Apache-2.0", "dependencies": { "async": "^2.6.3", "git-node-fs": "^1.0.0", @@ -26888,26 +24430,23 @@ }, "node_modules/vizion/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/web-encoding": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", "dev": true, + "license": "MIT", "dependencies": { "util": "^0.12.3" }, @@ -26917,9 +24456,8 @@ }, "node_modules/web-encoding/node_modules/util": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -26930,9 +24468,8 @@ }, "node_modules/web-resource-inliner": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz", - "integrity": "sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1", "escape-goat": "^3.0.0", @@ -26947,9 +24484,8 @@ }, "node_modules/web-resource-inliner/node_modules/dom-serializer": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -26961,9 +24497,8 @@ }, "node_modules/web-resource-inliner/node_modules/dom-serializer/node_modules/domhandler": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -26976,9 +24511,8 @@ }, "node_modules/web-resource-inliner/node_modules/domhandler": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.0.1" }, @@ -26991,9 +24525,8 @@ }, "node_modules/web-resource-inliner/node_modules/domutils": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -27005,9 +24538,8 @@ }, "node_modules/web-resource-inliner/node_modules/domutils/node_modules/domhandler": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -27020,18 +24552,16 @@ }, "node_modules/web-resource-inliner/node_modules/entities": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/web-resource-inliner/node_modules/htmlparser2": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", - "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^3.3.0", @@ -27044,9 +24574,8 @@ }, "node_modules/web-resource-inliner/node_modules/mime": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -27056,16 +24585,14 @@ }, "node_modules/web-streams-polyfill": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/web3-utils": { "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", - "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", + "license": "LGPL-3.0", "dependencies": { "@ethereumjs/util": "^8.1.0", "bn.js": "^5.2.1", @@ -27082,9 +24609,8 @@ }, "node_modules/webcrypto-core": { "version": "1.7.8", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.8.tgz", - "integrity": "sha512-eBR98r9nQXTqXt/yDRtInszPMjTaSAMJAFDg2AHsgrnczawT1asx9YNBX6k5p+MekbPF4+s/UJJrr88zsTqkSg==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.8", "@peculiar/json-schema": "^1.1.12", @@ -27095,13 +24621,11 @@ }, "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==" + "license": "BSD-2-Clause" }, "node_modules/websocket": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "license": "Apache-2.0", "dependencies": { "bufferutil": "^4.0.1", "debug": "^2.2.0", @@ -27116,29 +24640,25 @@ }, "node_modules/websocket/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/websocket/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "license": "MIT" }, "node_modules/whatwg-mimetype": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "license": "MIT", "engines": { "node": ">=12" } }, "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==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -27146,8 +24666,7 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -27160,8 +24679,7 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -27175,8 +24693,7 @@ }, "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -27192,24 +24709,12 @@ }, "node_modules/which-module": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "node_modules/which-pm-runs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", - "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } + "license": "ISC" }, "node_modules/which-typed-array": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -27224,21 +24729,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/widest-line": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.0.0" }, @@ -27248,19 +24742,16 @@ }, "node_modules/wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + "license": "MIT" }, "node_modules/workerpool": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "dev": true, + "license": "Apache-2.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==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -27276,8 +24767,7 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -27292,8 +24782,7 @@ }, "node_modules/wrap-ansi-cjs/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==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -27306,8 +24795,7 @@ }, "node_modules/wrap-ansi-cjs/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==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -27317,13 +24805,11 @@ }, "node_modules/wrap-ansi-cjs/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==" + "license": "MIT" }, "node_modules/wrap-ansi/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==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -27336,8 +24822,7 @@ }, "node_modules/wrap-ansi/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==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -27347,18 +24832,15 @@ }, "node_modules/wrap-ansi/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==" + "license": "MIT" }, "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==" + "license": "ISC" }, "node_modules/ws": { "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -27377,13 +24859,11 @@ }, "node_modules/xorshift": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" + "license": "MIT" }, "node_modules/xss": { "version": "1.0.15", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz", - "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", + "license": "MIT", "dependencies": { "commander": "^2.20.3", "cssfilter": "0.0.10" @@ -27397,71 +24877,61 @@ }, "node_modules/xss/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "license": "MIT" }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { "node": ">=0.4" } }, "node_modules/xxhash-wasm": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==" + "license": "MIT" }, "node_modules/xxhashjs": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "license": "MIT", "dependencies": { "cuint": "^0.2.2" } }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yaeti": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "license": "MIT", "engines": { "node": ">=0.10.32" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", "engines": { "node": ">= 6" } }, "node_modules/yaml-ast-parser": { "version": "0.0.43", - "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", - "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/yamljs": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "glob": "^7.0.5" @@ -27473,23 +24943,20 @@ }, "node_modules/yamljs/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/yamljs/node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -27505,17 +24972,15 @@ }, "node_modules/yargs-parser": { "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -27528,25 +24993,22 @@ }, "node_modules/yargs/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==", + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -27556,13 +25018,11 @@ }, "node_modules/zen-observable": { "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + "license": "MIT" }, "node_modules/zen-observable-ts": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "license": "MIT", "dependencies": { "zen-observable": "0.8.15" } diff --git a/src/interactions-server/openapi.yml b/src/interactions-server/openapi.yml index 3eadc8b45..6dc20b760 100644 --- a/src/interactions-server/openapi.yml +++ b/src/interactions-server/openapi.yml @@ -1,7 +1,7 @@ openapi: 3.0.2 info: - title: Orion authentication API - description: Orion API for handling authentication, account creation and related activites + title: Orion interactions API + description: Orion API for handling user interactions such as clicking, watching videos contact: email: info@joystream.org license: diff --git a/src/server-extension/resolvers/ChannelsResolver/index.ts b/src/server-extension/resolvers/ChannelsResolver/index.ts index a0f8f6120..1d5914e87 100644 --- a/src/server-extension/resolvers/ChannelsResolver/index.ts +++ b/src/server-extension/resolvers/ChannelsResolver/index.ts @@ -62,13 +62,6 @@ export class ChannelsResolver { // Set by depenency injection constructor(private em: () => Promise) {} - // @Query() - // async searchChannels( - // @Args() args: ExtendedChannelsArgs, - // @Info() info: GraphQLResolveInfo, - // @Ctx() ctx: Context - // ) {} - @Query(() => [ExtendedChannel]) async extendedChannels( @Args() args: ExtendedChannelsArgs, diff --git a/src/server-extension/resolvers/VideosResolver/index.ts b/src/server-extension/resolvers/VideosResolver/index.ts index d5e4aeffe..1f1ec1208 100644 --- a/src/server-extension/resolvers/VideosResolver/index.ts +++ b/src/server-extension/resolvers/VideosResolver/index.ts @@ -1,21 +1,6 @@ -import { - RelayConnectionRequest, - decodeRelayConnectionCursor, -} from '@subsquid/openreader/lib/ir/connection' -import { AnyFields } from '@subsquid/openreader/lib/ir/fields' -import { getConnectionSize } from '@subsquid/openreader/lib/limit.size' -import { parseOrderBy } from '@subsquid/openreader/lib/opencrud/orderBy' import { parseAnyTree, parseSqlArguments } from '@subsquid/openreader/lib/opencrud/tree' -import { parseWhere } from '@subsquid/openreader/lib/opencrud/where' -import { ConnectionQuery, CountQuery, ListQuery } from '@subsquid/openreader/lib/sql/query' -import { - getResolveTree, - getTreeRequest, - hasTreeRequest, - simplifyResolveTree, -} from '@subsquid/openreader/lib/util/resolve-tree' -import { ensureArray } from '@subsquid/openreader/lib/util/util' -import { UserInputError } from 'apollo-server-core' +import { CountQuery, ListQuery } from '@subsquid/openreader/lib/sql/query' +import { getResolveTree } from '@subsquid/openreader/lib/util/resolve-tree' import { GraphQLResolveInfo } from 'graphql' import { isObject } from 'lodash' import 'reflect-metadata' @@ -39,22 +24,26 @@ import { has } from '../../../utils/misc' import { addNotification } from '../../../utils/notification' import { extendClause, overrideClause, withHiddenEntities } from '../../../utils/sql' import { Context } from '../../check' -import {RecommendedVideosQuery, Video as VideoReturnType, VideosConnection} from '../baseTypes' +import { RecommendedVideosQuery, Video as VideoReturnType, VideosConnection } from '../baseTypes' import { OperatorOnly, UserOnly } from '../middleware' import { model } from '../model' import { - AddVideoViewResult, - DumbPublicFeedArgs, - ExcludeVideoInfo, HomepageVideoQueryArgs, - MostViewedVideosConnectionArgs, NextVideoQueryArgs, - PublicFeedOperationType, - ReportVideoArgs, - SetOrUnsetPublicFeedArgs, - SetOrUnsetPublicFeedResult, SimiliarVideosQueryArgs, - VideoReportInfo, + AddVideoViewResult, + DumbPublicFeedArgs, + ExcludeVideoInfo, + HomepageVideoQueryArgs, + MostViewedVideosConnectionArgs, + NextVideoQueryArgs, + PublicFeedOperationType, + ReportVideoArgs, + SetOrUnsetPublicFeedArgs, + SetOrUnsetPublicFeedResult, + SimiliarVideosQueryArgs, + VideoReportInfo, } from './types' -import {buildRecommendationsVideoQuery, convertVideoWhereIntoReQlQuery} from "./utils"; -import {recommendationServiceManager} from "../../../utils/RecommendationServiceManager"; +import { buildRecommendationsVideoQuery, convertVideoWhereIntoReQlQuery } from './utils' +import { recommendationServiceManager } from '../../../utils/RecommendationServiceManager' +import { createConnectionQueryFromParams } from '../../../utils/subsquid' @Resolver() export class VideosResolver { @@ -118,7 +107,7 @@ export class VideosResolver { } @Query(() => RecommendedVideosQuery) - async similiarVideos( + async similarVideos( @Args() args: SimiliarVideosQueryArgs, @Info() info: GraphQLResolveInfo, diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 18dd08fa4..ce0f10f01 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -8,7 +8,8 @@ import { import { createLogger } from '@subsquid/logger' import { randomUUID } from 'crypto' import { stringToHex } from '@polkadot/util' -import { predictLanguage } from './language' + +export type RecommendationItemId = `${string}-${'video' | 'channel'}` export type RSVideo = { comments_count: number @@ -68,13 +69,12 @@ export class RecommendationServiceManager { return } - const languageText = (video.title ?? '') + (video.description ?? '') const actionObject: RSVideo = { category_id: video.categoryId ?? undefined, channel_id: video.channelId ?? undefined, comments_count: video.commentsCount, duration: video.duration, - language: predictLanguage(languageText) ?? video.language, + language: video.orionLanguage ?? video.language, reactions_count: video.reactionsCount, timestamp: new Date(video.createdAt), title: video.title, @@ -116,7 +116,7 @@ export class RecommendationServiceManager { // this interaction has big model value and should we used for // reliable interactions like video viewed in 90% or nft of given video bought - scheduleItemConsumed(itemId: string, userId: string, recommId?: string) { + scheduleItemConsumed(itemId: RecommendationItemId, userId: string, recommId?: string) { if (!this._enabled) { return } @@ -130,7 +130,12 @@ export class RecommendationServiceManager { } // this interaction should be dispatched when user clicks a video to see it - scheduleClickEvent(itemId: string, userId: string, duration?: number, recommId?: string) { + scheduleClickEvent( + itemId: RecommendationItemId, + userId: string, + duration?: number, + recommId?: string + ) { if (!this._enabled) { return } @@ -146,7 +151,12 @@ export class RecommendationServiceManager { // this interaction is for user engagement level // in Orion it would state how long user has watched the video - scheduleViewPortion(itemId: string, userId: string, portion: number, recommId?: string) { + scheduleViewPortion( + itemId: RecommendationItemId, + userId: string, + portion: number, + recommId?: string + ) { if (!this._enabled) { return } @@ -164,7 +174,7 @@ export class RecommendationServiceManager { this._queue.push(actionObject) } - scheduleItemBookmark(itemId: string, userId: string, recommId?: string) { + scheduleItemBookmark(itemId: RecommendationItemId, userId: string, recommId?: string) { if (!this._enabled) { return } @@ -177,7 +187,7 @@ export class RecommendationServiceManager { this._queue.push(actionObject) } - deleteItemBookmark(itemId: string, userId: string) { + deleteItemBookmark(itemId: RecommendationItemId, userId: string) { if (!this._enabled) { return } @@ -186,7 +196,12 @@ export class RecommendationServiceManager { this._queue.push(actionObject) } - scheduleItemRating(itemId: string, userId: string, rating: number, recommId?: string) { + scheduleItemRating( + itemId: RecommendationItemId, + userId: string, + rating: number, + recommId?: string + ) { if (!this._enabled) { return } @@ -202,7 +217,7 @@ export class RecommendationServiceManager { this._queue.push(actionObject) } - deleteItemRating(itemId: string, userId: string) { + deleteItemRating(itemId: RecommendationItemId, userId: string) { if (!this._enabled) { return } @@ -286,7 +301,7 @@ export class RecommendationServiceManager { return this.mapRecommendationResponse(res) } - async recommendItemsToItem(itemId: string, userId?: string, opts?: CommonOptions) { + async recommendItemsToItem(itemId: RecommendationItemId, userId?: string, opts?: CommonOptions) { const request = new ClientRequests.RecommendItemsToItem( itemId, userId ? this.mapUserId(userId) : randomUUID(), @@ -308,7 +323,7 @@ export class RecommendationServiceManager { return this.mapRecommendationResponse(res) } - async recommendNextVideo(itemId: string, userId?: string, opts?: CommonOptions) { + async recommendNextVideo(itemId: RecommendationItemId, userId?: string, opts?: CommonOptions) { const request = new ClientRequests.RecommendItemsToItem( itemId, userId ? this.mapUserId(userId) : randomUUID(), From c1ec1d5c6fda15772d6c2150cfb8f42ce557dc0e Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 8 Apr 2024 21:22:03 +0200 Subject: [PATCH 46/49] CI fixes --- db/migrations/1704717446430-Data.js | 0 src/scripts/setupRecombee.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 db/migrations/1704717446430-Data.js diff --git a/db/migrations/1704717446430-Data.js b/db/migrations/1704717446430-Data.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/scripts/setupRecombee.ts b/src/scripts/setupRecombee.ts index 64dff5c48..2eb5a7c0c 100644 --- a/src/scripts/setupRecombee.ts +++ b/src/scripts/setupRecombee.ts @@ -36,7 +36,7 @@ async function main() { !process.env.RECOMMENDATION_SERVICE_DATABASE ) { console.error('Missing required variables for setting up Recombee. Skipping...') - process.exit(1) + return } const client = new ApiClient( From e285b348833ec10fa5814272df35cda8c0aa08b2 Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 8 Apr 2024 21:37:29 +0200 Subject: [PATCH 47/49] Fix checks --- src/interactions-server/index.ts | 6 +++--- src/interactions-server/interactionsEm.ts | 26 +++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/interactions-server/index.ts b/src/interactions-server/index.ts index 6d38dd760..220eae83a 100644 --- a/src/interactions-server/index.ts +++ b/src/interactions-server/index.ts @@ -14,11 +14,11 @@ import fs from 'fs' import { recommendationServiceManager } from '../utils/RecommendationServiceManager' import { initInteractionsDb } from './interactionsEm' +export const logger = createLogger('interactions-api') + recommendationServiceManager.enableSync() recommendationServiceManager.initBatchLoop() -initInteractionsDb().then(() => undefined) - -export const logger = createLogger('interactions-api') +initInteractionsDb() export const app = express() diff --git a/src/interactions-server/interactionsEm.ts b/src/interactions-server/interactionsEm.ts index aad13f2a6..0daed559f 100644 --- a/src/interactions-server/interactionsEm.ts +++ b/src/interactions-server/interactionsEm.ts @@ -3,24 +3,24 @@ import { createLogger } from '@subsquid/logger' const interactionsEmLogger = createLogger('interactionsEm') -export async function initInteractionsDb() { - let instance: typeof mongoose | null = null - try { - interactionsEmLogger.info(`Initializing interactions database connection...`) - instance = await mongoose.connect( +export function initInteractionsDb() { + interactionsEmLogger.info(`Initializing interactions database connection...`) + mongoose + .connect( `mongodb://${process.env.DB_NAME}:${process.env.DB_PASS}@interactions_db:${process.env.INTERACTIONS_DB_PORT}/interactions?authSource=admin`, { family: 4, } ) - interactionsEmLogger.info(`Connected to interactions database`) - } catch (e) { - interactionsEmLogger.error( - `Error during interactions database connection initialization: ${String(e)}` - ) - process.exit(-1) // Exit to trigger docker service restart an re-attempt to connect - } - return instance + .then(() => { + interactionsEmLogger.info(`Connected to interactions database`) + }) + .catch((e) => { + interactionsEmLogger.error( + `Error during interactions database connection initialization: ${String(e)}` + ) + process.exit(-1) // Exit to trigger docker service restart an re-attempt to connect + }) } const PurchaseModel = mongoose.model( From 4a666fc88c9c04a8aba3b72a91a9aa4017b51c5d Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Wed, 17 Apr 2024 13:25:48 +0200 Subject: [PATCH 48/49] Initial PR fixes --- .env | 1 + docker-compose.yml | 2 +- src/auth-server/index.ts | 2 +- src/interactions-server/index.ts | 2 +- src/mappings/content/channel.ts | 4 +++ src/processor.ts | 2 +- src/scripts/setupRecombee.ts | 9 +++--- src/utils/RecommendationServiceManager.ts | 36 +++++++++++++++++++++-- 8 files changed, 47 insertions(+), 11 deletions(-) diff --git a/.env b/.env index b14e7a650..d45dbe862 100644 --- a/.env +++ b/.env @@ -26,6 +26,7 @@ INTERACTIONS_API_PORT=4075 RECOMMENDATION_SERVICE_PRIVATE_KEY=save-interactions-locally # jsgenesis-dev RECOMMENDATION_SERVICE_DATABASE= +RECOMMENDATION_SERVICE_DATABASE_REGION=eu-west # this will disable export block check for recommendation system - sync all data from the beginning FORCE_RECOMMENDATION_DATA_SYNC=false diff --git a/docker-compose.yml b/docker-compose.yml index 9e36c0749..d53984a58 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,7 +19,7 @@ services: - ./db/postgres.conf:/etc/postgresql/postgresql.conf interactions_db: - image: mongo:latest + image: mongo:7.0.0 container_name: interactions_db hostname: interactions_db profiles: ['interactions'] diff --git a/src/auth-server/index.ts b/src/auth-server/index.ts index 1327208fa..3ee7040b0 100644 --- a/src/auth-server/index.ts +++ b/src/auth-server/index.ts @@ -15,7 +15,7 @@ import { recommendationServiceManager } from '../utils/RecommendationServiceMana export const logger = createLogger('auth-api') -recommendationServiceManager.enableSync() +recommendationServiceManager.enableExport() recommendationServiceManager.initBatchLoop() export const app = express() diff --git a/src/interactions-server/index.ts b/src/interactions-server/index.ts index 220eae83a..11488a867 100644 --- a/src/interactions-server/index.ts +++ b/src/interactions-server/index.ts @@ -16,7 +16,7 @@ import { initInteractionsDb } from './interactionsEm' export const logger = createLogger('interactions-api') -recommendationServiceManager.enableSync() +recommendationServiceManager.enableExport() recommendationServiceManager.initBatchLoop() initInteractionsDb() diff --git a/src/mappings/content/channel.ts b/src/mappings/content/channel.ts index f356b8b8c..8bee6adb9 100644 --- a/src/mappings/content/channel.ts +++ b/src/mappings/content/channel.ts @@ -122,6 +122,8 @@ export async function processChannelCreatedEvent({ } } + recommendationServiceManager.scheduleChannelUpsert(channel as Channel) + if (ownerMember) { ownerMember.totalChannelsCreated += 1 const event = overlay.getRepository(Event).new({ @@ -176,6 +178,8 @@ export async function processChannelUpdatedEvent({ newDataObjects ) } + + recommendationServiceManager.scheduleChannelUpsert(channel as Channel) } export async function processChannelDeletedEvent({ diff --git a/src/processor.ts b/src/processor.ts index 96caff129..acec75256 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -411,7 +411,7 @@ processor.run(new TypeormDatabase({ isolationLevel: 'READ COMMITTED' }), async ( !recommendationServiceManager.isEnabled && (process.env.FORCE_RECOMMENDATION_DATA_SYNC || block.header.height >= exportBlockNumber) ) { - recommendationServiceManager.enableSync() + recommendationServiceManager.enableExport() recommendationServiceManager.initBatchLoop() ctx.log.info(`Recommendations service enabled!`) } diff --git a/src/scripts/setupRecombee.ts b/src/scripts/setupRecombee.ts index 2eb5a7c0c..304a3c135 100644 --- a/src/scripts/setupRecombee.ts +++ b/src/scripts/setupRecombee.ts @@ -33,7 +33,8 @@ async function main() { if ( !process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY || - !process.env.RECOMMENDATION_SERVICE_DATABASE + !process.env.RECOMMENDATION_SERVICE_DATABASE || + !process.env.RECOMMENDATION_SERVICE_DATABASE_REGION ) { console.error('Missing required variables for setting up Recombee. Skipping...') return @@ -43,7 +44,7 @@ async function main() { process.env.RECOMMENDATION_SERVICE_DATABASE, process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY, { - region: 'eu-west', + region: process.env.RECOMMENDATION_SERVICE_DATABASE_REGION, } ) // setup item properties @@ -62,11 +63,11 @@ async function main() { const failedRequests = res.filter((req) => req.code === 400) if (failedRequests.length) { - console.error('Some of the requests failed! Recommbee is not ready to be used.', failedRequests) + console.error('Some of the requests failed! Recombee is not ready to be used.', failedRequests) throw new Error() } console.log( - 'Recombee setup is completed! Rember to add following scenarios to the admin UI: watch-next, similar-videos, homepage' + 'Recombee setup is completed! Remember to add following scenarios to the admin UI: watch-next, similar-videos, homepage' ) } diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index ce0f10f01..4de43c37b 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -22,6 +22,13 @@ export type RSVideo = { channel_description?: string } & Required> +export type RSChannel = { + follows_num: number + timestamp: Date + video_views_num: number + entry_app_id?: string +} & Required> + type RSUser = Pick type CommonOptions = { @@ -44,7 +51,8 @@ export class RecommendationServiceManager { constructor() { if ( !process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY || - !process.env.RECOMMENDATION_SERVICE_DATABASE + !process.env.RECOMMENDATION_SERVICE_DATABASE || + !process.env.RECOMMENDATION_SERVICE_DATABASE_REGION ) { recommendationServiceLogger.error( 'RecommendationServiceManager initialized without required variables' @@ -55,7 +63,7 @@ export class RecommendationServiceManager { process.env.RECOMMENDATION_SERVICE_DATABASE, process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY, { - region: 'eu-west', + region: process.env.RECOMMENDATION_SERVICE_DATABASE_REGION, } ) recommendationServiceLogger.info( @@ -94,6 +102,28 @@ export class RecommendationServiceManager { this._queue.push(actionObject) } + scheduleChannelUpsert(channel: Channel) { + // for dev env sync only up to 20k channels + if (!this._enabled || (isDevEnv && Number(channel.id) > 20_000)) { + return + } + + const actionObject: RSChannel = { + title: channel.title, + description: channel.description, + follows_num: channel.followsNum, + entry_app_id: channel.entryAppId ?? undefined, + timestamp: new Date(channel.createdAt), + video_views_num: channel.videoViewsNum, + language: channel.language, + } + + const request = new ClientRequests.SetItemValues(`${channel.id}-channel`, actionObject, { + cascadeCreate: true, + }) + this._queue.push(request) + } + scheduleChannelDeletion(channelId: string) { const actionObject = new ClientRequests.DeleteItem(`${channelId}-channel`) this._queue.push(actionObject) @@ -226,7 +256,7 @@ export class RecommendationServiceManager { this._queue.push(actionObject) } - enableSync() { + enableExport() { this._enabled = !!this.client } From edba6ece4827e7552fb0fb2b91f965aa6f6e989b Mon Sep 17 00:00:00 2001 From: WRadoslaw Date: Mon, 22 Apr 2024 13:30:41 +0200 Subject: [PATCH 49/49] Persisted queue idea --- docker-compose.yml | 8 ++ .../handlers/videoConsumed.ts | 2 +- src/utils/RecommendationServiceManager.ts | 70 +++++++++++---- src/utils/persistingQueue.ts | 88 +++++++++++++++++++ 4 files changed, 148 insertions(+), 20 deletions(-) create mode 100644 src/utils/persistingQueue.ts diff --git a/docker-compose.yml b/docker-compose.yml index d53984a58..7a086e2b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -48,6 +48,7 @@ services: depends_on: - orion_db volumes: + - processor_queue:/app/persistedQueue - type: bind source: . target: /orion @@ -68,6 +69,7 @@ services: depends_on: - orion_db volumes: + - graphql_queue:/app/persistedQueue - type: bind source: . target: /orion @@ -90,6 +92,7 @@ services: depends_on: - orion_db volumes: + - auth_api_queue:/app/persistedQueue - type: bind source: . target: /orion @@ -112,6 +115,7 @@ services: depends_on: - orion_db volumes: + - interactions_api_queue:/app/persistedQueue - type: bind source: . target: /orion @@ -123,6 +127,10 @@ services: volumes: orion_db_data: interactions_db_data: + interactions_api_queue: + auth_api_queue: + graphql_queue: + processor_queue: networks: default: diff --git a/src/interactions-server/handlers/videoConsumed.ts b/src/interactions-server/handlers/videoConsumed.ts index e69384f7d..b4cfb1407 100644 --- a/src/interactions-server/handlers/videoConsumed.ts +++ b/src/interactions-server/handlers/videoConsumed.ts @@ -4,7 +4,7 @@ import { components } from '../generated/api-types' import { AuthContext } from '../../utils/auth' import { recommendationServiceManager } from '../../utils/RecommendationServiceManager' import { singlePurchaseLimiter } from '../interactionsLimiter' -import { PurchaseModel, RatingModel } from '../interactionsEm' +import { PurchaseModel } from '../interactionsEm' type ReqParams = Record type ResBody = diff --git a/src/utils/RecommendationServiceManager.ts b/src/utils/RecommendationServiceManager.ts index 4de43c37b..0b8a1323b 100644 --- a/src/utils/RecommendationServiceManager.ts +++ b/src/utils/RecommendationServiceManager.ts @@ -8,6 +8,8 @@ import { import { createLogger } from '@subsquid/logger' import { randomUUID } from 'crypto' import { stringToHex } from '@polkadot/util' +import { PersistentQueue } from './persistingQueue' +import path from 'path' export type RecommendationItemId = `${string}-${'video' | 'channel'}` @@ -41,14 +43,14 @@ const recommendationServiceLogger = createLogger('recommendationsService') const isDevEnv = process.env.ORION_ENV === 'development' export class RecommendationServiceManager { - private _queue: ClientRequests.Request[] = [] + private _queue: PersistentQueue private client: ApiClient | null = null // if orion is launched in dev mode, always sync videos private _enabled = false private _loopInitialized = false - constructor() { + constructor(queueFilePath: string) { if ( !process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY || !process.env.RECOMMENDATION_SERVICE_DATABASE || @@ -59,6 +61,7 @@ export class RecommendationServiceManager { ) return } + this._queue = new PersistentQueue(queueFilePath) this.client = new ApiClient( process.env.RECOMMENDATION_SERVICE_DATABASE, process.env.RECOMMENDATION_SERVICE_PRIVATE_KEY, @@ -94,12 +97,15 @@ export class RecommendationServiceManager { const request = new ClientRequests.SetItemValues(`${video.id}-video`, actionObject, { cascadeCreate: true, }) - this._queue.push(request) + this._queue.addToQueue(request).catch(() => undefined) } scheduleVideoDeletion(videoId: string) { + if (!this._enabled) { + return + } const actionObject = new ClientRequests.DeleteItem(`${videoId}-video`) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } scheduleChannelUpsert(channel: Channel) { @@ -121,12 +127,16 @@ export class RecommendationServiceManager { const request = new ClientRequests.SetItemValues(`${channel.id}-channel`, actionObject, { cascadeCreate: true, }) - this._queue.push(request) + this._queue.addToQueue(request).catch(() => undefined) } scheduleChannelDeletion(channelId: string) { + if (!this._enabled) { + return + } + const actionObject = new ClientRequests.DeleteItem(`${channelId}-channel`) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } scheduleUserUpsert(user: RSUser) { @@ -141,7 +151,7 @@ export class RecommendationServiceManager { cascadeCreate: true, } ) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } // this interaction has big model value and should we used for @@ -156,7 +166,7 @@ export class RecommendationServiceManager { cascadeCreate: true, recommId, }) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } // this interaction should be dispatched when user clicks a video to see it @@ -176,7 +186,7 @@ export class RecommendationServiceManager { recommId, duration, }) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } // this interaction is for user engagement level @@ -201,7 +211,7 @@ export class RecommendationServiceManager { recommId, } ) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } scheduleItemBookmark(itemId: RecommendationItemId, userId: string, recommId?: string) { @@ -214,7 +224,7 @@ export class RecommendationServiceManager { cascadeCreate: !isDevEnv, recommId, }) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } deleteItemBookmark(itemId: RecommendationItemId, userId: string) { @@ -223,7 +233,7 @@ export class RecommendationServiceManager { } const actionObject = new ClientRequests.DeleteBookmark(this.mapUserId(userId), itemId) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } scheduleItemRating( @@ -244,7 +254,7 @@ export class RecommendationServiceManager { cascadeCreate: !isDevEnv, recommId, }) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } deleteItemRating(itemId: RecommendationItemId, userId: string) { @@ -253,7 +263,7 @@ export class RecommendationServiceManager { } const actionObject = new ClientRequests.DeleteRating(userId, itemId) - this._queue.push(actionObject) + this._queue.addToQueue(actionObject).catch(() => undefined) } enableExport() { @@ -298,6 +308,10 @@ export class RecommendationServiceManager { } async recommendItemsToUser(userId?: string, opts?: CommonOptions) { + if (!this._enabled) { + return + } + recommendationServiceLogger.info( `Getting items recommendations to ${userId || 'empty user'}(${this.mapUserId(userId ?? '')})` ) @@ -322,6 +336,10 @@ export class RecommendationServiceManager { } async recommendNextItems(recommId: string, opts?: CommonOptions) { + if (!this._enabled) { + return + } + const request = new ClientRequests.RecommendNextItems(recommId, opts?.limit ?? 10) const res = await this.client?.send(request) if (!res) { @@ -332,6 +350,10 @@ export class RecommendationServiceManager { } async recommendItemsToItem(itemId: RecommendationItemId, userId?: string, opts?: CommonOptions) { + if (!this._enabled) { + return + } + const request = new ClientRequests.RecommendItemsToItem( itemId, userId ? this.mapUserId(userId) : randomUUID(), @@ -354,6 +376,10 @@ export class RecommendationServiceManager { } async recommendNextVideo(itemId: RecommendationItemId, userId?: string, opts?: CommonOptions) { + if (!this._enabled) { + return + } + const request = new ClientRequests.RecommendItemsToItem( itemId, userId ? this.mapUserId(userId) : randomUUID(), @@ -414,14 +440,20 @@ export class RecommendationServiceManager { private async _batchUpdateLoop(intervalMs: number): Promise { while (true) { - if (this._queue.length) { - const batchArray = [...this._queue] - this._queue.length = 0 - await this.sendBatchRequest(batchArray) + const queue = this._queue.getQueue() + if (queue.length) { + await this._queue.lockQueue(async () => { + await this.sendBatchRequest(queue) + }) + await this._queue.flushQueue() } await new Promise((resolve) => setTimeout(resolve, intervalMs)) } } } -export const recommendationServiceManager = new RecommendationServiceManager() +const dirPath = path.resolve('../app/persistedQueue') + +export const recommendationServiceManager = new RecommendationServiceManager( + `${dirPath}/interactions` +) diff --git a/src/utils/persistingQueue.ts b/src/utils/persistingQueue.ts new file mode 100644 index 000000000..75672c68f --- /dev/null +++ b/src/utils/persistingQueue.ts @@ -0,0 +1,88 @@ +import fs from 'fs' +import AsyncLock from 'async-lock' + +export class PersistentQueue { + private queue: T[] = [] + private writeStream: fs.WriteStream | null = null + private initialized = false + private asyncLock = new AsyncLock({ maxPending: Number.MAX_SAFE_INTEGER }) + filepath = '' + + constructor(filepath: string) { + this.filepath = filepath + this.queue = [] + this.loadQueue() + this.writeStream = fs.createWriteStream(this.filepath, { flags: 'a' }) + this.initialized = true + } + + loadQueue() { + try { + if (!fs.existsSync(this.filepath)) { + return + } + const data = fs.readFileSync(this.filepath, { encoding: 'utf-8' }) + this.queue = JSON.parse(`[${data.split('\n').slice(0, -1).join(',')}]`) + } catch (error) { + if ((error as NodeJS.ErrnoException).code !== 'ENOENT') { + console.error('Failed to load queue:', error) + } + } + } + + lockQueue(cb: () => Promise) { + return this.asyncLock.acquire( + this.filepath, + async (done) => { + await cb() + done() + }, + { skipQueue: true } + ) + } + + flushQueue() { + return this.asyncLock.acquire( + this.filepath, + async (done) => { + this.writeStream?.end() + fs.truncate(this.filepath, 0, (err) => { + if (err) { + done() + throw err + } + this.queue = [] + this.writeStream = fs.createWriteStream(this.filepath, { flags: 'a' }) + done() + }) + }, + { skipQueue: true } + ) + } + + async addToQueue(item: T) { + if (!this.initialized) { + return + } + await this.writeItemToFile(item) + this.queue.push(item) + } + + writeItemToFile(item: T) { + return this.asyncLock.acquire(this.filepath, async (done) => { + const dataToWrite = JSON.stringify(item).trim().replace('\n', '') + '\n' + this.writeStream?.write(dataToWrite, 'utf8', (err) => { + if (err) { + done() + throw err + } else { + done() + } + }) + }) + } + + getQueue() { + return this.queue + } +}