From 49f6551ce71580c4e5701a811bec88de4db8b87e Mon Sep 17 00:00:00 2001 From: Martijn Date: Mon, 9 Dec 2024 13:17:28 +0100 Subject: [PATCH 01/11] feat(frequently-bought-together): implemented preview mode --- .../README.md | 6 + .../codegen.yml | 10 + .../package.json | 4 +- .../src/api/api-extensions.ts | 19 +- ...equently-bought-together-admin.resolver.ts | 22 +- .../src/fpgrowth.ts | 50 - .../src/frequently-bought-together.plugin.ts | 19 +- .../src/generated-graphql-types.ts | 42 + .../frequently-bought-together.service.ts | 105 +- .../src/types.ts | 12 + .../src/ui/providers.ts | 16 + .../test/dev-server.ts | 28 +- yarn.lock | 3685 ++++++++--------- 13 files changed, 1983 insertions(+), 2035 deletions(-) create mode 100644 packages/vendure-plugin-frequently-bought-together/codegen.yml delete mode 100644 packages/vendure-plugin-frequently-bought-together/src/fpgrowth.ts create mode 100644 packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts create mode 100644 packages/vendure-plugin-frequently-bought-together/src/ui/providers.ts diff --git a/packages/vendure-plugin-frequently-bought-together/README.md b/packages/vendure-plugin-frequently-bought-together/README.md index 754dd3b0..14814fa6 100644 --- a/packages/vendure-plugin-frequently-bought-together/README.md +++ b/packages/vendure-plugin-frequently-bought-together/README.md @@ -1,3 +1,9 @@ # Frequently Bought Together Plugin ### [Official documentation here](https://pinelab-plugins.com/plugin/vendure-plugin-frequently-bought-together) + +// TODO installation + +// TODO preview mode + support + +// TODO channel specific support diff --git a/packages/vendure-plugin-frequently-bought-together/codegen.yml b/packages/vendure-plugin-frequently-bought-together/codegen.yml new file mode 100644 index 00000000..7a949bfd --- /dev/null +++ b/packages/vendure-plugin-frequently-bought-together/codegen.yml @@ -0,0 +1,10 @@ +schema: 'src/**/*.ts' +generates: + ./src/generated-graphql-types.ts: + plugins: + - typescript + - typescript-operations + config: + avoidOptionals: false + scalars: + DateTime: Date diff --git a/packages/vendure-plugin-frequently-bought-together/package.json b/packages/vendure-plugin-frequently-bought-together/package.json index eb1f67d2..b17c392c 100644 --- a/packages/vendure-plugin-frequently-bought-together/package.json +++ b/packages/vendure-plugin-frequently-bought-together/package.json @@ -26,10 +26,12 @@ "scripts": { "build": "rimraf dist && tsc", "start": "yarn ts-node test/dev-server.ts", + "generate": "graphql-codegen --config codegen.yml", "test": "vitest run --bail 1", "lint": "eslint ." }, "dependencies": { - "catch-unknown": "^2.0.0" + "catch-unknown": "^2.0.0", + "node-fpgrowth": "^1.2.1" } } diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts index 99442598..533c767b 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts @@ -1,6 +1,21 @@ import gql from 'graphql-tag'; -const frequentlyBoughtTogetherAdminApiExtensions = gql``; export const adminApiExtensions = gql` - ${frequentlyBoughtTogetherAdminApiExtensions} + type FrequentlyBoughtTogetherPreview { + memoryUsed: String! + totalItemSets: Int! + bestItemSets: [FrequentlyBoughtTogetherItemSet!]! + worstItemSets: [FrequentlyBoughtTogetherItemSet!]! + } + + type FrequentlyBoughtTogetherItemSet { + items: [String!] + support: Float! + } + + extend type Query { + previewFrequentlyBoughtTogether( + support: Float! + ): FrequentlyBoughtTogetherPreview! + } `; diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts index ae1e5d4e..0f6ade25 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts @@ -1,9 +1,29 @@ -import { Resolver } from '@nestjs/graphql'; +import { Args, Query, Resolver } from '@nestjs/graphql'; +import { Inject } from '@nestjs/common'; import { FrequentlyBoughtTogetherService } from '../services/frequently-bought-together.service'; +import { QueryPreviewFrequentlyBoughtTogetherArgs } from '../generated-graphql-types'; +import { Ctx, RequestContext, UserInputError } from '@vendure/core'; +import { PluginInitOptions } from '../types'; +import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS } from '../constants'; @Resolver() export class FrequentlyBoughtTogetherAdminResolver { constructor( + @Inject(FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS) + private options: PluginInitOptions, private frequentlyBoughtTogetherService: FrequentlyBoughtTogetherService ) {} + + @Query() + async previewFrequentlyBoughtTogether( + @Ctx() ctx: RequestContext, + @Args() { support }: QueryPreviewFrequentlyBoughtTogetherArgs + ) { + if (!this.options.experimentMode) { + throw new UserInputError( + `This query is only available in experiment mode. Set 'expirementMode: true' in plugin's init()` + ); + } + return this.frequentlyBoughtTogetherService.previewItemSets(ctx, support); + } } diff --git a/packages/vendure-plugin-frequently-bought-together/src/fpgrowth.ts b/packages/vendure-plugin-frequently-bought-together/src/fpgrowth.ts deleted file mode 100644 index d19134cc..00000000 --- a/packages/vendure-plugin-frequently-bought-together/src/fpgrowth.ts +++ /dev/null @@ -1,50 +0,0 @@ -// import { INestApplication } from '@nestjs/common'; -// import { DataSource } from 'typeorm'; -// import { ID, OrderLine } from '@vendure/core'; -// import { FPGrowth, Itemset } from 'node-fpgrowth'; - -// export async function getFrequentlyBoughtTogetherItemSets( -// app: INestApplication -// ): Promise { -// const dataSource = app.get(DataSource); -// const repository = await dataSource.getRepository(OrderLine); - -// const ordersSince = new Date(); -// ordersSince.setFullYear(ordersSince.getFullYear() - 5); -// const channelId = 1; -// const languageCode = 'nl'; - -// const result = await repository -// .createQueryBuilder('orderLine') -// .innerJoinAndSelect('orderLine.productVariant', 'productVariant') -// .innerJoinAndSelect('productVariant.translations', 'pvTranslations') -// .innerJoin('orderLine.order', 'order') -// .innerJoin('order.channels', 'channel') -// .where('order.orderPlacedAt >= :ordersSince', { ordersSince }) -// .andWhere('channel.id = :channelId', { channelId }) -// .andWhere('productVariant.deletedAt IS NULL') -// .andWhere('pvTranslations.languageCode = :languageCode', { languageCode }) -// .select(['orderLine.*', 'productVariant.id', 'pvTranslations.name']) -// .getRawMany(); - -// const identifyingField = 'pvTranslations_name'; // Use productVariant_id for production - -// const transactions = new Map(); -// result.forEach((orderLine) => { -// const transactionsForOrder = transactions.get(orderLine.orderId) || []; -// transactionsForOrder.push(orderLine[identifyingField]); -// transactions.set(orderLine.orderId, transactionsForOrder); -// }); -// const matrix = Array.from(transactions.values()); -// console.log('calculating frequent itemsets'); -// const fpgrowth = new FPGrowth(0.001); -// const itemSets = (await fpgrowth.exec(matrix)) -// // Only combinations allowed -// .filter((is) => is.items.length > 1) -// // Lowest support first, because if they make sense, the higher ones will too -// .sort((a, b) => a.support - b.support) -// .reverse(); - -// console.log('frequent itemsets:', itemSets); -// console.log('Total item sets', itemSets.length); -// } diff --git a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts index f84f7763..4acda1b9 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts @@ -5,10 +5,14 @@ import { Type, VendurePlugin, } from '@vendure/core'; +import { AdminUiExtension } from '@vendure/ui-devkit/compiler'; import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS } from './constants'; import { FrequentlyBoughtTogetherService } from './services/frequently-bought-together.service'; import { PluginInitOptions } from './types'; +import path from 'path'; +import { adminApiExtensions } from './api/api-extensions'; +import { FrequentlyBoughtTogetherAdminResolver } from './api/frequently-bought-together-admin.resolver'; @VendurePlugin({ imports: [PluginCommonModule], @@ -44,15 +48,17 @@ import { PluginInitOptions } from './types'; return config; }, compatibility: '>=2.2.0', - // adminApiExtensions: { - // schema: adminApiExtensions, - // resolvers: [FrequentlyBoughtTogetherAdminResolver], - // }, + adminApiExtensions: { + schema: adminApiExtensions, + resolvers: [FrequentlyBoughtTogetherAdminResolver], + }, }) export class FrequentlyBoughtTogetherPlugin { static options: PluginInitOptions = { maxRelatedProducts: 5, customFieldUiTab: 'Related products', + experimentMode: false, + supportLevel: 0.01, }; static init( @@ -64,4 +70,9 @@ export class FrequentlyBoughtTogetherPlugin { }; return FrequentlyBoughtTogetherPlugin; } + + static ui: AdminUiExtension = { + extensionPath: path.join(__dirname, 'ui'), + providers: ['providers.ts'], + }; } diff --git a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts new file mode 100644 index 00000000..e676f93d --- /dev/null +++ b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts @@ -0,0 +1,42 @@ +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { + [K in keyof T]: T[K]; +}; +export type MakeOptional = Omit & { + [SubKey in K]?: Maybe; +}; +export type MakeMaybe = Omit & { + [SubKey in K]: Maybe; +}; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; +}; + +export type FrequentlyBoughtTogetherItemSet = { + __typename?: 'FrequentlyBoughtTogetherItemSet'; + items?: Maybe>; + support: Scalars['Float']; +}; + +export type FrequentlyBoughtTogetherPreview = { + __typename?: 'FrequentlyBoughtTogetherPreview'; + bestItemSets: Array; + memoryUsed: Scalars['String']; + totalItemSets: Scalars['Int']; + worstItemSets: Array; +}; + +export type Query = { + __typename?: 'Query'; + previewFrequentlyBoughtTogether: FrequentlyBoughtTogetherPreview; +}; + +export type QueryPreviewFrequentlyBoughtTogetherArgs = { + support: Scalars['Float']; +}; diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts index f3e9336a..8b7e02e2 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts @@ -1,18 +1,25 @@ -import { Inject, Injectable, OnModuleInit } from '@nestjs/common'; +import { Inject, Injectable, OnApplicationBootstrap } from '@nestjs/common'; import { ID, JobQueue, JobQueueService, - Product, + Logger, + OrderLine, + ProductVariantService, RequestContext, SerializedRequestContext, TransactionalConnection, } from '@vendure/core'; -import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS } from '../constants'; +import { FPGrowth, Itemset } from 'node-fpgrowth'; +import { + FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS, + loggerCtx, +} from '../constants'; import { PluginInitOptions } from '../types'; +import { FrequentlyBoughtTogetherPreview } from '../generated-graphql-types'; @Injectable() -export class FrequentlyBoughtTogetherService implements OnModuleInit { +export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { private jobQueue!: JobQueue<{ ctx: SerializedRequestContext; someArg: string; @@ -22,10 +29,11 @@ export class FrequentlyBoughtTogetherService implements OnModuleInit { private connection: TransactionalConnection, @Inject(FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS) private options: PluginInitOptions, - private jobQueueService: JobQueueService + private jobQueueService: JobQueueService, + private variantService: ProductVariantService ) {} - public async onModuleInit(): Promise { + public async onApplicationBootstrap(): Promise { this.jobQueue = await this.jobQueueService.createQueue({ name: 'frequently-bought-together-calculation', process: async () => { @@ -34,12 +42,85 @@ export class FrequentlyBoughtTogetherService implements OnModuleInit { }); } - async exampleMethod(ctx: RequestContext, id: ID) { - // Add your method logic here - const result = await this.connection - .getRepository(ctx, Product) - .findOne({ where: { id } }); - return result; + async previewItemSets( + ctx: RequestContext, + support: number + ): Promise { + const initialMemory = process.memoryUsage().heapUsed; + const itemSets = await this.getItemSets(ctx, support); + const best = itemSets.slice(-10); + const worst = itemSets.slice(0, 10); + const variantIds = [ + ...best.map((i) => i.items).flat(), + ...worst.map((i) => i.items).flat(), + ]; + const allVariants = await this.variantService.findByIds(ctx, variantIds); + // Replace ID's with variant names + const bestItemSets = best.map((is) => ({ + items: is.items.map( + (id) => allVariants.find((v) => v.id === id)?.name || String(id) + ), + support: is.support, + })); + const worstItemSets = worst.map((is) => ({ + items: is.items.map( + (id) => allVariants.find((v) => v.id === id)?.name || String(id) + ), + support: is.support, + })); + const finalMemory = process.memoryUsage().heapUsed; + const memoryUsed = finalMemory - initialMemory; + return { + memoryUsed: `${memoryUsed / 1024 / 1024} MB`, + totalItemSets: itemSets.length, + bestItemSets, + worstItemSets, + }; + } + + private async getItemSets( + ctx: RequestContext, + support: number + ): Promise[]> { + const result: Array<{ orderId: ID; productVariant_id: ID }> = + await this.connection + .getRepository(ctx, OrderLine) + .createQueryBuilder('orderLine') + .innerJoin('orderLine.order', 'order') + .innerJoin('orderLine.productVariant', 'productVariant') + .innerJoin('order.channels', 'channel') + .where('order.orderPlacedAt IS NOT NULL') + .andWhere('channel.id = :channelId', { channelId: ctx.channelId }) + .andWhere('productVariant.deletedAt IS NULL') + .select(['orderLine.orderId', 'productVariant.id']) + .orderBy('order.orderPlacedAt', 'DESC') + .limit(500000) + .getRawMany(); + // Construct items per order in a map + const transactions = new Map(); + result.forEach((row) => { + const transactionsForOrder = transactions.get(row.orderId) || []; + transactionsForOrder.push(row['productVariant_id']); + transactions.set(row.orderId, transactionsForOrder); + }); + const matrix = Array.from(transactions.values()); + const fpgrowth = new FPGrowth(support); + const itemSets = (await fpgrowth.exec(matrix)) + // Only combinations allowed + .filter((is) => is.items.length > 1) + // Lowest support first, because if they make sense, the higher ones will too + .sort((a, b) => a.support - b.support); + const totalUniqueVariants = new Set(); + itemSets.forEach((itemSet) => { + itemSet.items.forEach((item) => { + totalUniqueVariants.add(item); + }); + }); + Logger.info( + `Found ${itemSets.length} item sets for ${totalUniqueVariants.size} variants from ${matrix.length} orders and ${result.length} order lines`, + loggerCtx + ); + return itemSets; } /** diff --git a/packages/vendure-plugin-frequently-bought-together/src/types.ts b/packages/vendure-plugin-frequently-bought-together/src/types.ts index c954a21b..0e556697 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/types.ts @@ -1,3 +1,5 @@ +import { RequestContext } from '@vendure/core'; + /** * @description * The plugin can be configured using the following options: @@ -13,4 +15,14 @@ export interface PluginInitOptions { * Can be an existing tab. */ customFieldUiTab: string; + /** + * Enable experiment mode to test what support level to use for item set generation + */ + experimentMode: boolean; + /** + * The support level to use for item set generation. + * Example 0.01 means that the item set must be present in 1% of the orders + * Should be between 0 and 1 + */ + supportLevel: number | ((ctx: RequestContext) => number); } diff --git a/packages/vendure-plugin-frequently-bought-together/src/ui/providers.ts b/packages/vendure-plugin-frequently-bought-together/src/ui/providers.ts new file mode 100644 index 00000000..8ff06179 --- /dev/null +++ b/packages/vendure-plugin-frequently-bought-together/src/ui/providers.ts @@ -0,0 +1,16 @@ +import { + addActionBarDropdownMenuItem, + ModalService, +} from '@vendure/admin-ui/core'; + +export default [ + addActionBarDropdownMenuItem({ + id: 'generate-frequently-bought-together', + label: 'Calculate frequently-bought-together relations', + locationId: 'product-list', + icon: 'switch', + onClick: async (event, { dataService, notificationService, injector }) => { + console.log('Generate frequently-bought-together products'); + }, + }), +]; diff --git a/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts b/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts index 7fdc9f26..31f47520 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts @@ -14,6 +14,10 @@ import { } from '@vendure/testing'; import { initialData } from '../../test/src/initial-data'; import { FrequentlyBoughtTogetherPlugin } from '../src'; +import { compileUiExtensions } from '@vendure/ui-devkit/compiler'; +import path from 'path'; +import { createSettledOrder } from '../../test/src/shop-utils'; +import { testPaymentMethod } from '../../test/src/test-payment-method'; require('dotenv').config(); @@ -25,20 +29,40 @@ require('dotenv').config(); shopApiPlayground: true, adminApiPlayground: true, }, + paymentOptions: { + paymentMethodHandlers: [testPaymentMethod], + }, plugins: [ FrequentlyBoughtTogetherPlugin.init({ - maxRelatedProducts: 10, + experimentMode: true, }), DefaultSearchPlugin, AdminUiPlugin.init({ port: 3002, route: 'admin', + // app: compileUiExtensions({ + // outputPath: path.join(__dirname, '__admin-ui'), + // extensions: [FrequentlyBoughtTogetherPlugin.ui], + // devMode: true, + // }), }), ], }); const { server, shopClient, adminClient } = createTestEnvironment(config); await server.init({ - initialData: initialData as InitialData, + initialData: { + ...initialData, + paymentMethods: [ + { + name: testPaymentMethod.code, + handler: { code: testPaymentMethod.code, arguments: [] }, + }, + ], + }, productsCsvPath: '../test/src/products-import.csv', }); + + await createSettledOrder(shopClient, 1); + await createSettledOrder(shopClient, 1); + await createSettledOrder(shopClient, 1, true, [{ id: 'T_1', quantity: 10 }]); })(); diff --git a/yarn.lock b/yarn.lock index ae2dde66..b9168014 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.2.0", "@ampproject/remapping@2.3.0": +"@ampproject/remapping@2.3.0", "@ampproject/remapping@^2.2.0": version "2.3.0" resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== @@ -178,14 +178,14 @@ ora "5.4.1" rxjs "7.8.1" -"@angular/animations@^17.2.4", "@angular/animations@17.3.11": +"@angular/animations@^17.2.4": version "17.3.11" resolved "https://registry.npmjs.org/@angular/animations/-/animations-17.3.11.tgz" integrity sha512-1y1Egag5jbdUSUWVK+KA39N9VFDrzq9ObjbAhrXFlXKa0npBRw5bprEEeLFQMETMP9Mpjbmj2PoASfl4vqj/Iw== dependencies: tslib "^2.3.0" -"@angular/cdk@^17.2.2", "@angular/cdk@15 || 16 || 17": +"@angular/cdk@^17.2.2": version "17.3.10" resolved "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.10.tgz" integrity sha512-b1qktT2c1TTTe5nTji/kFAVW92fULK0YhYAvJ+BjZTPKu2FniZNe8o4qqQ0pUuvtMu+ZQxp/QqFYoidIVCjScg== @@ -218,14 +218,14 @@ symbol-observable "4.0.0" yargs "17.7.2" -"@angular/common@^17.0.0 || ^18.0.0", "@angular/common@^17.0.0-rc.0", "@angular/common@^17.2.4", "@angular/common@>=13.0.0", "@angular/common@>=16.0.0", "@angular/common@15 || 16 || 17", "@angular/common@17.3.11": +"@angular/common@^17.2.4": version "17.3.11" resolved "https://registry.npmjs.org/@angular/common/-/common-17.3.11.tgz" integrity sha512-WG+HQjUaQziYLGdbcv2aW+G73uroN5VF9yk4qWYcolW+VB8SV/DOAol8uFVgCF21cIOl5+wfJZvA4r5oG3dYaw== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@^17.0.0", "@angular/compiler-cli@^17.2.4": +"@angular/compiler-cli@^17.2.4": version "17.3.11" resolved "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.3.11.tgz" integrity sha512-O44H/BKGw0TYq0aNTOKYZfQiTrfjbmcTl8y4UX6C9Xey8hXvijzZOAsjA0TGvvDJxeLR+sxaRF4i9Ihoatnd8g== @@ -239,21 +239,21 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@^17.2.4", "@angular/compiler@17.3.11": +"@angular/compiler@^17.2.4": version "17.3.11" resolved "https://registry.npmjs.org/@angular/compiler/-/compiler-17.3.11.tgz" integrity sha512-ingRoREDPkeZGSa13DlztSjZgGArNcmsAWjj+f+vQgQekTjkfQD/N+Bix/LSt5ZdbSjHMtrkDMyRPwbNyk5Keg== dependencies: tslib "^2.3.0" -"@angular/core@^17.0.0", "@angular/core@^17.0.0 || ^18.0.0", "@angular/core@^17.0.0-rc.0", "@angular/core@^17.2.4", "@angular/core@>=13.0.0", "@angular/core@>=16.0.0", "@angular/core@15 || 16 || 17", "@angular/core@17.3.11": +"@angular/core@^17.2.4": version "17.3.11" resolved "https://registry.npmjs.org/@angular/core/-/core-17.3.11.tgz" integrity sha512-2wPZwXFei3kVxK2ylIH6CdGebrC4kvooFx7qoX+250OITAEFMODJGdh/e3x0DpFUjlRvQtIFQ+YpQlfC5JnL4g== dependencies: tslib "^2.3.0" -"@angular/forms@^17.0.0-rc.0", "@angular/forms@^17.2.4": +"@angular/forms@^17.2.4": version "17.3.11" resolved "https://registry.npmjs.org/@angular/forms/-/forms-17.3.11.tgz" integrity sha512-719flo/1L64YOAxL3pzszTK+7bczVVOQDXT1khnjb48GVZdBUBwW2D+cFbqSW1VMuWWr2Amwy1lL4YM5S7qPJQ== @@ -272,7 +272,7 @@ dependencies: tslib "^2.3.0" -"@angular/platform-browser@^17.2.4", "@angular/platform-browser@17.3.11": +"@angular/platform-browser@^17.2.4": version "17.3.11" resolved "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.11.tgz" integrity sha512-sWjMy8qKH6AOt5YV4OMoPhExCbGdRIPjNSwUrxCm8a8Zz5DamoX3Sib9yRk1etjBuRj+oJySSxISJim2OYXJQQ== @@ -291,7 +291,7 @@ resolved "https://registry.npmjs.org/@apollo/cache-control-types/-/cache-control-types-1.0.3.tgz" integrity sha512-F17/vCp7QVwom9eG7ToauIKdAxpSoadsJnqIfyryLFSkLSOEqu+eC5Z3N8OXcUVStuOMcNHlyraRsA6rRICu4g== -"@apollo/client@^3.0.0", "@apollo/client@^3.8.0", "@apollo/client@^3.9.6": +"@apollo/client@^3.9.6": version "3.10.5" resolved "https://registry.npmjs.org/@apollo/client/-/client-3.10.5.tgz" integrity sha512-bZh5wLAT8b4KdEmqnqiQeDUttnR+NJ+gDYSN8T+U0uFGN++5LO5PTwySih6kIU5ErGGGw4NHI94YdSET3uLuBA== @@ -346,7 +346,7 @@ dependencies: "@apollographql/graphql-playground-html" "1.6.29" -"@apollo/server@^4.0.0", "@apollo/server@^4.10.1", "@apollo/server@^4.3.2": +"@apollo/server@^4.10.1": version "4.10.4" resolved "https://registry.npmjs.org/@apollo/server/-/server-4.10.4.tgz" integrity sha512-HS12CUa1wq8f5zKXOKJRwRdESFp4por9AINecpcsEUV9jsCP/NqPILgx0hCOOFJuKxmnaL7070xO6l5xmOq4Fw== @@ -514,70 +514,49 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz" integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz" - integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== +"@babel/core@7.23.9": + version "7.23.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz" + integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.23.5" "@babel/generator" "^7.23.6" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.24.0" - "@babel/parser" "^7.24.0" - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" - "@babel/types" "^7.24.0" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/core@^7.12.3": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz" - integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helpers" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/helpers" "^7.23.9" + "@babel/parser" "^7.23.9" + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/core@^7.14.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz" - integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== +"@babel/core@7.24.0": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz" + integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helpers" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.0" + "@babel/parser" "^7.24.0" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/core@^7.22.9": +"@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.22.9": version "7.24.7" resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz" integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== @@ -598,37 +577,6 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/core@7.23.9": - version "7.23.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz" - integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.9" - "@babel/parser" "^7.23.9" - "@babel/template" "^7.23.9" - "@babel/traverse" "^7.23.9" - "@babel/types" "^7.23.9" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.23.6", "@babel/generator@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz" - integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== - dependencies: - "@babel/types" "^7.24.7" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - "@babel/generator@7.23.6": version "7.23.6" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz" @@ -639,12 +587,15 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.24.7": +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.23.6", "@babel/generator@^7.24.7": version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz" - integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz" + integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== dependencies: "@babel/types" "^7.24.7" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" "@babel/helper-annotate-as-pure@7.22.5": version "7.22.5" @@ -653,6 +604,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": version "7.24.7" resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz" @@ -672,22 +630,7 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz" - integrity sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-member-expression-to-functions" "^7.24.7" - "@babel/helper-optimise-call-expression" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.24.7": +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7": version "7.24.7" resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz" integrity sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg== @@ -828,13 +771,6 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-split-export-declaration@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz" - integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== - dependencies: - "@babel/types" "^7.24.7" - "@babel/helper-split-export-declaration@7.22.6": version "7.22.6" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" @@ -842,6 +778,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-split-export-declaration@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== + dependencies: + "@babel/types" "^7.24.7" + "@babel/helper-string-parser@^7.24.7": version "7.24.7" resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz" @@ -945,14 +888,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0": - 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== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-properties@^7.12.13": +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": 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== @@ -987,14 +923,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz" - integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-syntax-import-assertions@^7.23.3": +"@babel/plugin-syntax-import-assertions@^7.20.0", "@babel/plugin-syntax-import-assertions@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz" integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== @@ -1093,30 +1022,13 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz" - integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-arrow-functions@^7.23.3": +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz" integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-async-generator-functions@^7.23.9": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz" - integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== - dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-remap-async-to-generator" "^7.24.7" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-transform-async-generator-functions@7.23.9": version "7.23.9" resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz" @@ -1127,14 +1039,15 @@ "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.23.3": +"@babel/plugin-transform-async-generator-functions@^7.23.9": version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz" - integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz" + integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== dependencies: - "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" "@babel/helper-remap-async-to-generator" "^7.24.7" + "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@7.23.3": version "7.23.3" @@ -1145,28 +1058,23 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-block-scoped-functions@^7.0.0": +"@babel/plugin-transform-async-to-generator@^7.23.3": version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz" - integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== dependencies: + "@babel/helper-module-imports" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" -"@babel/plugin-transform-block-scoped-functions@^7.23.3": +"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz" integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-block-scoping@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz" - integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-block-scoping@^7.23.4": +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.23.4": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz" integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== @@ -1190,21 +1098,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz" - integrity sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - globals "^11.1.0" - -"@babel/plugin-transform-classes@^7.23.8": +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.23.8": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz" integrity sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw== @@ -1218,15 +1112,7 @@ "@babel/helper-split-export-declaration" "^7.24.7" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz" - integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/template" "^7.24.7" - -"@babel/plugin-transform-computed-properties@^7.23.3": +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz" integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== @@ -1234,14 +1120,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/template" "^7.24.7" -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz" - integrity sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-destructuring@^7.23.3": +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz" integrity sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw== @@ -1295,15 +1174,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-flow" "^7.24.7" -"@babel/plugin-transform-for-of@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz" - integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - -"@babel/plugin-transform-for-of@^7.23.6": +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.23.6": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz" integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== @@ -1311,16 +1182,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" -"@babel/plugin-transform-function-name@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz" - integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== - dependencies: - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-function-name@^7.23.3": +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz" integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== @@ -1337,14 +1199,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz" - integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-literals@^7.23.3": +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz" integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ== @@ -1359,14 +1214,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz" - integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-member-expression-literals@^7.23.3": +"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz" integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== @@ -1381,16 +1229,7 @@ "@babel/helper-module-transforms" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz" - integrity sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ== - dependencies: - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - -"@babel/plugin-transform-modules-commonjs@^7.23.3": +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz" integrity sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ== @@ -1458,15 +1297,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.24.7" -"@babel/plugin-transform-object-super@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz" - integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" - -"@babel/plugin-transform-object-super@^7.23.3": +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz" integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== @@ -1491,21 +1322,14 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7": +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.23.3", "@babel/plugin-transform-parameters@^7.24.7": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz" integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-parameters@^7.23.3", "@babel/plugin-transform-parameters@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz" - integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-private-methods@^7.23.3": +"@babel/plugin-transform-private-methods@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz" integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== @@ -1523,14 +1347,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz" - integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-property-literals@^7.23.3": +"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz" integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== @@ -1582,29 +1399,14 @@ babel-plugin-polyfill-regenerator "^0.5.5" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz" - integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-shorthand-properties@^7.23.3": +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz" integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-spread@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz" - integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - -"@babel/plugin-transform-spread@^7.23.3": +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz" integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== @@ -1619,14 +1421,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-template-literals@^7.0.0": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz" - integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - -"@babel/plugin-transform-template-literals@^7.23.3": +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.23.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz" integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== @@ -1771,13 +1566,6 @@ resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.0.0", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9", "@babel/runtime@^7.8.4": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz" - integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== - dependencies: - regenerator-runtime "^0.14.0" - "@babel/runtime@7.24.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz" @@ -1785,6 +1573,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.0.0", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9", "@babel/runtime@^7.8.4": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz" + integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.18.10", "@babel/template@^7.23.9", "@babel/template@^7.24.0", "@babel/template@^7.24.7": version "7.24.7" resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz" @@ -1831,7 +1626,7 @@ resolved "https://registry.npmjs.org/@cds/city/-/city-1.1.0.tgz" integrity sha512-S9K+Q39BGOghyLHmR0Wdcmu1i1noSUk8HcvMj+3IaohZw02WFd99aPTQDHJeseXrXZP3CNovaSlePI0R11NcFg== -"@cds/core@^6.9.2", "@cds/core@>= 6.9.2": +"@cds/core@^6.9.2": version "6.12.0" resolved "https://registry.npmjs.org/@cds/core/-/core-6.12.0.tgz" integrity sha512-eJpddpt4vx4s0EFi2kAvnRZz1h/JVZPqjkNXpDalBM61IqQp9g2ETGoa594t6BWe3cwGDrkiKuEB+FbAx+IEhw== @@ -1895,7 +1690,7 @@ resolved "https://registry.npmjs.org/@clr/icons/-/icons-13.0.2.tgz" integrity sha512-bdcSuFvQAbIIp8Q2Fm55BjHW5cawP4xEOkZf2IEIin0d9ViRcAJNjACBCOMDhx2up7nPZsXwN2gL8zJhL7TSZQ== -"@clr/ui@^17.0.1", "@clr/ui@17.2.0": +"@clr/ui@^17.0.1": version "17.2.0" resolved "https://registry.npmjs.org/@clr/ui/-/ui-17.2.0.tgz" integrity sha512-IztYQWF5Fsxg2dUtHUT0RbRUw38QD9YSTPb84Ne7BtrkkJzOUH4LRPg6foWrzXGtBvMD7FtH7qYmK2CsDU291w== @@ -2073,6 +1868,253 @@ resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@emnapi/runtime@^1.1.1", "@emnapi/runtime@^1.2.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.3.1.tgz#0fcaa575afc31f455fd33534c19381cfce6c6f60" + integrity sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw== + dependencies: + tslib "^2.4.0" + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/aix-ppc64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz#eafa8775019b3650a77e8310ba4dbd17ca7af6d5" + integrity sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA== + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz#68791afa389550736f682c15b963a4f37ec2f5f6" + integrity sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-arm@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.1.tgz#38c91d8ee8d5196f7fbbdf4f0061415dde3a473a" + integrity sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/android-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.1.tgz#93f6190ce997b313669c20edbf3645fc6c8d8f22" + integrity sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz#0d391f2e81fda833fe609182cc2fbb65e03a3c46" + integrity sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/darwin-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz#92504077424584684862f483a2242cfde4055ba2" + integrity sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz#a1646fa6ba87029c67ac8a102bb34384b9290774" + integrity sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/freebsd-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz#41c9243ab2b3254ea7fb512f71ffdb341562e951" + integrity sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz#f3c1e1269fbc9eedd9591a5bdd32bf707a883156" + integrity sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-arm@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz#4503ca7001a8ee99589c072801ce9d7540717a21" + integrity sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-ia32@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz#98c474e3e0cbb5bcbdd8561a6e65d18f5767ce48" + integrity sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-loong64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz#a8097d28d14b9165c725fe58fc438f80decd2f33" + integrity sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-mips64el@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz#c44f6f0d7d017c41ad3bb15bfdb69b690656b5ea" + integrity sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-ppc64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz#0765a55389a99237b3c84227948c6e47eba96f0d" + integrity sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-riscv64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz#e4153b032288e3095ddf4c8be07893781b309a7e" + integrity sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-s390x@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz#b9ab8af6e4b73b26d63c1c426d7669a5d53eb5a7" + integrity sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + "@esbuild/linux-x64@0.19.12": version "0.19.12" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz" @@ -2088,6 +2130,96 @@ resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz" integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/netbsd-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz#3148e48406cd0d4f7ba1e0bf3f4d77d548c98407" + integrity sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/openbsd-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz#7b73e852986a9750192626d377ac96ac2b749b76" + integrity sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/sunos-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz#402a441cdac2eee98d8be378c7bc23e00c1861c5" + integrity sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz#36c4e311085806a6a0c5fc54d1ac4d7b27e94d7b" + integrity sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-ia32@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz#0cf933be3fb9dc58b45d149559fe03e9e22b54fe" + integrity sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@esbuild/win32-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz#77583b6ea54cee7c1410ebbd54051b6a3fcbd8ba" + integrity sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" @@ -2197,61 +2329,61 @@ resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz" integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== -"@google-cloud/storage@^5.18.2": - version "5.20.5" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.20.5.tgz" - integrity sha512-lOs/dCyveVF8TkVFnFSF7IGd0CJrTm91qiK6JLu+Z8qiT+7Ag0RyVhxZIWkhiACqwABo7kSHDm8FdH8p2wxSSw== +"@google-cloud/storage@5.18.2": + version "5.18.2" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.18.2.tgz" + integrity sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg== dependencies: + "@google-cloud/common" "^3.8.1" "@google-cloud/paginator" "^3.0.7" - "@google-cloud/projectify" "^2.0.0" "@google-cloud/promisify" "^2.0.0" abort-controller "^3.0.0" arrify "^2.0.0" async-retry "^1.3.3" compressible "^2.0.12" configstore "^5.0.0" + date-and-time "^2.0.0" duplexify "^4.0.0" - ent "^2.2.0" extend "^3.0.2" gaxios "^4.0.0" - google-auth-library "^7.14.1" + get-stream "^6.0.0" + google-auth-library "^7.0.0" hash-stream-validation "^0.2.2" mime "^3.0.0" mime-types "^2.0.8" p-limit "^3.0.1" pumpify "^2.0.0" - retry-request "^4.2.2" + snakeize "^0.1.0" stream-events "^1.0.4" - teeny-request "^7.1.3" - uuid "^8.0.0" xdg-basedir "^4.0.0" -"@google-cloud/storage@5.18.2": - version "5.18.2" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.18.2.tgz" - integrity sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg== +"@google-cloud/storage@^5.18.2": + version "5.20.5" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.20.5.tgz" + integrity sha512-lOs/dCyveVF8TkVFnFSF7IGd0CJrTm91qiK6JLu+Z8qiT+7Ag0RyVhxZIWkhiACqwABo7kSHDm8FdH8p2wxSSw== dependencies: - "@google-cloud/common" "^3.8.1" "@google-cloud/paginator" "^3.0.7" + "@google-cloud/projectify" "^2.0.0" "@google-cloud/promisify" "^2.0.0" abort-controller "^3.0.0" arrify "^2.0.0" async-retry "^1.3.3" compressible "^2.0.12" configstore "^5.0.0" - date-and-time "^2.0.0" duplexify "^4.0.0" + ent "^2.2.0" extend "^3.0.2" gaxios "^4.0.0" - get-stream "^6.0.0" - google-auth-library "^7.0.0" + google-auth-library "^7.14.1" hash-stream-validation "^0.2.2" mime "^3.0.0" mime-types "^2.0.8" p-limit "^3.0.1" pumpify "^2.0.0" - snakeize "^0.1.0" + retry-request "^4.2.2" stream-events "^1.0.4" + teeny-request "^7.1.3" + uuid "^8.0.0" xdg-basedir "^4.0.0" "@google-cloud/tasks@^5.4.0": @@ -2335,31 +2467,7 @@ lodash "~4.17.0" tslib "~2.4.0" -"@graphql-codegen/plugin-helpers@^5.0.1": - version "5.0.4" - resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.4.tgz" - integrity sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw== - dependencies: - "@graphql-tools/utils" "^10.0.0" - change-case-all "1.0.15" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.6.0" - -"@graphql-codegen/plugin-helpers@^5.0.3": - version "5.0.4" - resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.4.tgz" - integrity sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw== - dependencies: - "@graphql-tools/utils" "^10.0.0" - change-case-all "1.0.15" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.6.0" - -"@graphql-codegen/plugin-helpers@^5.0.4": +"@graphql-codegen/plugin-helpers@^5.0.1", "@graphql-codegen/plugin-helpers@^5.0.3", "@graphql-codegen/plugin-helpers@^5.0.4": version "5.0.4" resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.4.tgz" integrity sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw== @@ -2412,17 +2520,6 @@ auto-bind "~4.0.0" tslib "~2.3.0" -"@graphql-codegen/typescript@^2.4.8": - version "2.8.8" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.8.tgz" - integrity sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw== - dependencies: - "@graphql-codegen/plugin-helpers" "^3.1.2" - "@graphql-codegen/schema-ast" "^2.6.1" - "@graphql-codegen/visitor-plugin-common" "2.13.8" - auto-bind "~4.0.0" - tslib "~2.4.0" - "@graphql-codegen/typescript@2.4.8": version "2.4.8" resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.8.tgz" @@ -2434,6 +2531,17 @@ auto-bind "~4.0.0" tslib "~2.3.0" +"@graphql-codegen/typescript@^2.4.8": + version "2.8.8" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.8.tgz" + integrity sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-codegen/schema-ast" "^2.6.1" + "@graphql-codegen/visitor-plugin-common" "2.13.8" + auto-bind "~4.0.0" + tslib "~2.4.0" + "@graphql-codegen/visitor-plugin-common@2.13.8": version "2.13.8" resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz" @@ -2619,7 +2727,7 @@ tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@^8.0.0", "@graphql-tools/graphql-tag-pluck@8.3.1": +"@graphql-tools/graphql-tag-pluck@8.3.1", "@graphql-tools/graphql-tag-pluck@^8.0.0": version "8.3.1" resolved "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.3.1.tgz" integrity sha512-ujits9tMqtWQQq4FI4+qnVPpJvSEn7ogKtyN/gfNT+ErIn6z1e4gyVGQpTK5sgAUXq1lW4gU/5fkFFC5/sL2rQ== @@ -2661,6 +2769,14 @@ p-limit "3.1.0" tslib "^2.4.0" +"@graphql-tools/merge@9.0.1": + version "9.0.1" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz" + integrity sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw== + dependencies: + "@graphql-tools/utils" "^10.0.10" + tslib "^2.4.0" + "@graphql-tools/merge@^8.4.1": version "8.4.2" resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz" @@ -2669,15 +2785,7 @@ "@graphql-tools/utils" "^9.2.1" tslib "^2.4.0" -"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.0.3", "@graphql-tools/merge@^9.0.4": - version "9.0.4" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.4.tgz" - integrity sha512-MivbDLUQ+4Q8G/Hp/9V72hbn810IJDEZQ57F01sHnlrrijyadibfVhaQfW/pNH+9T/l8ySZpaR/DpL5i+ruZ+g== - dependencies: - "@graphql-tools/utils" "^10.0.13" - tslib "^2.4.0" - -"@graphql-tools/merge@^9.0.1": +"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.0.1", "@graphql-tools/merge@^9.0.3", "@graphql-tools/merge@^9.0.4": version "9.0.4" resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.4.tgz" integrity sha512-MivbDLUQ+4Q8G/Hp/9V72hbn810IJDEZQ57F01sHnlrrijyadibfVhaQfW/pNH+9T/l8ySZpaR/DpL5i+ruZ+g== @@ -2685,14 +2793,6 @@ "@graphql-tools/utils" "^10.0.13" tslib "^2.4.0" -"@graphql-tools/merge@9.0.1": - version "9.0.1" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz" - integrity sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw== - dependencies: - "@graphql-tools/utils" "^10.0.10" - tslib "^2.4.0" - "@graphql-tools/optimize@^1.0.1", "@graphql-tools/optimize@^1.3.0": version "1.4.0" resolved "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.4.0.tgz" @@ -2747,6 +2847,16 @@ "@graphql-tools/utils" "^10.0.13" tslib "^2.4.0" +"@graphql-tools/schema@10.0.2": + version "10.0.2" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz" + integrity sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w== + dependencies: + "@graphql-tools/merge" "^9.0.1" + "@graphql-tools/utils" "^10.0.10" + tslib "^2.4.0" + value-or-promise "^1.0.12" + "@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.3", "@graphql-tools/schema@^10.0.4": version "10.0.4" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.4.tgz" @@ -2760,20 +2870,10 @@ "@graphql-tools/schema@^9.0.0": version "9.0.19" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz" - integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== - dependencies: - "@graphql-tools/merge" "^8.4.1" - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/schema@10.0.2": - version "10.0.2" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz" - integrity sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w== + integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== dependencies: - "@graphql-tools/merge" "^9.0.1" - "@graphql-tools/utils" "^10.0.10" + "@graphql-tools/merge" "^8.4.1" + "@graphql-tools/utils" "^9.2.1" tslib "^2.4.0" value-or-promise "^1.0.12" @@ -2811,17 +2911,17 @@ value-or-promise "^1.0.11" ws "^8.12.0" -"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.13", "@graphql-tools/utils@^10.1.1", "@graphql-tools/utils@^10.2.1": - version "10.2.2" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.2.tgz" - integrity sha512-ueoplzHIgFfxhFrF4Mf/niU/tYHuO6Uekm2nCYU72qpI+7Hn9dA2/o5XOBvFXDk27Lp5VSvQY5WfmRbqwVxaYQ== +"@graphql-tools/utils@10.0.13": + version "10.0.13" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz" + integrity sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg== dependencies: "@graphql-typed-document-node/core" "^3.1.1" cross-inspect "1.0.0" dset "^3.1.2" tslib "^2.4.0" -"@graphql-tools/utils@^10.0.10", "@graphql-tools/utils@^10.0.13": +"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.10", "@graphql-tools/utils@^10.0.13", "@graphql-tools/utils@^10.1.1", "@graphql-tools/utils@^10.2.1": version "10.2.2" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.2.tgz" integrity sha512-ueoplzHIgFfxhFrF4Mf/niU/tYHuO6Uekm2nCYU72qpI+7Hn9dA2/o5XOBvFXDk27Lp5VSvQY5WfmRbqwVxaYQ== @@ -2831,29 +2931,14 @@ dset "^3.1.2" tslib "^2.4.0" -"@graphql-tools/utils@^8.3.0": - version "8.13.1" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz" - integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== - dependencies: - tslib "^2.4.0" - -"@graphql-tools/utils@^8.8.0": +"@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.8.0": version "8.13.1" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz" integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== dependencies: tslib "^2.4.0" -"@graphql-tools/utils@^9.0.0": - version "9.2.1" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz" - integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - tslib "^2.4.0" - -"@graphql-tools/utils@^9.2.1": +"@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.2.1": version "9.2.1" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz" integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== @@ -2861,16 +2946,6 @@ "@graphql-typed-document-node/core" "^3.1.1" tslib "^2.4.0" -"@graphql-tools/utils@10.0.13": - version "10.0.13" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz" - integrity sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - cross-inspect "1.0.0" - dset "^3.1.2" - tslib "^2.4.0" - "@graphql-tools/wrap@^10.0.2": version "10.0.5" resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.5.tgz" @@ -2882,12 +2957,12 @@ tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0", "@graphql-typed-document-node/core@3.2.0": +"@graphql-typed-document-node/core@3.2.0", "@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0": 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== -"@grpc/grpc-js@*", "@grpc/grpc-js@^1.10.9": +"@grpc/grpc-js@^1.10.9": version "1.10.10" resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.10.tgz" integrity sha512-HPa/K5NX6ahMoeBv15njAc/sfF4/jmiXLar9UlC2UfHFKZzsCVLc3wbe7+7qua7w9VPh2/L6EBxyAV7/E8Wftg== @@ -2895,7 +2970,7 @@ "@grpc/proto-loader" "^0.7.13" "@js-sdsl/ordered-map" "^4.4.2" -"@grpc/proto-loader@*", "@grpc/proto-loader@^0.7.13": +"@grpc/proto-loader@^0.7.13": version "0.7.13" resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz" integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== @@ -2929,6 +3004,232 @@ resolved "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== +"@img/sharp-darwin-arm64@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz#a1cf4a7febece334f16e0328b9689f05797d7aec" + integrity sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.0.2" + +"@img/sharp-darwin-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz#ef5b5a07862805f1e8145a377c8ba6e98813ca08" + integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.0.4" + +"@img/sharp-darwin-x64@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz#f77be2d7c3609d3e77cd337b199a772e07b87bd2" + integrity sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.0.2" + +"@img/sharp-darwin-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61" + integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.0.4" + +"@img/sharp-libvips-darwin-arm64@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz#b69f49fecbe9572378675769b189410721b0fa53" + integrity sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA== + +"@img/sharp-libvips-darwin-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f" + integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== + +"@img/sharp-libvips-darwin-x64@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz#5665da7360d8e5ed7bee314491c8fe736b6a3c39" + integrity sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw== + +"@img/sharp-libvips-darwin-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062" + integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== + +"@img/sharp-libvips-linux-arm64@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz#8a05e5e9e9b760ff46561e32f19bd5e035fa881c" + integrity sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw== + +"@img/sharp-libvips-linux-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704" + integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== + +"@img/sharp-libvips-linux-arm@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz#0fd33b9bf3221948ce0ca7a5a725942626577a03" + integrity sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw== + +"@img/sharp-libvips-linux-arm@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197" + integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== + +"@img/sharp-libvips-linux-s390x@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz#4b89150ec91b256ee2cbb5bb125321bf029a4770" + integrity sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog== + +"@img/sharp-libvips-linux-s390x@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce" + integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== + +"@img/sharp-libvips-linux-x64@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz#947ccc22ca5bc8c8cfe921b39a5fdaebc5e39f3f" + integrity sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ== + +"@img/sharp-libvips-linux-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0" + integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== + +"@img/sharp-libvips-linuxmusl-arm64@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz#821d58ce774f0f8bed065b69913a62f65d512f2f" + integrity sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ== + +"@img/sharp-libvips-linuxmusl-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5" + integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== + +"@img/sharp-libvips-linuxmusl-x64@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz#4309474bd8b728a61af0b3b4fad0c476b5f3ccbe" + integrity sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw== + +"@img/sharp-libvips-linuxmusl-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff" + integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== + +"@img/sharp-linux-arm64@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz#bd390113e256487041411b988ded13a26cfc5f95" + integrity sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.0.2" + +"@img/sharp-linux-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22" + integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.0.4" + +"@img/sharp-linux-arm@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz#14ecc81f38f75fb4cd7571bc83311746d6745fca" + integrity sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.0.2" + +"@img/sharp-linux-arm@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff" + integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.0.5" + +"@img/sharp-linux-s390x@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz#119e8081e2c6741b5ac908fe02244e4c559e525f" + integrity sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.0.2" + +"@img/sharp-linux-s390x@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667" + integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.0.4" + +"@img/sharp-linux-x64@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.4.tgz#21d4c137b8da9a313b069ff5c920ded709f853d7" + integrity sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.0.2" + +"@img/sharp-linux-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb" + integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.0.4" + +"@img/sharp-linuxmusl-arm64@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz#f3fde68fd67b85a32da6f1155818c3b58b8e7ae0" + integrity sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.0.2" + +"@img/sharp-linuxmusl-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b" + integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + +"@img/sharp-linuxmusl-x64@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz#44373724aecd7b69900e0578228144e181db7892" + integrity sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.0.2" + +"@img/sharp-linuxmusl-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48" + integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + +"@img/sharp-wasm32@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz#88e3f18d7e7cd8cfe1af98e9963db4d7b6491435" + integrity sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ== + dependencies: + "@emnapi/runtime" "^1.1.1" + +"@img/sharp-wasm32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1" + integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg== + dependencies: + "@emnapi/runtime" "^1.2.0" + +"@img/sharp-win32-ia32@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz#b1c772dd2952e983980b1eb85808fa8129484d46" + integrity sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw== + +"@img/sharp-win32-ia32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9" + integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== + +"@img/sharp-win32-x64@0.33.4": + version "0.33.4" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz#106f911134035b4157ec92a0c154a6b6f88fa4c1" + integrity sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw== + +"@img/sharp-win32-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342" + integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" @@ -3006,14 +3307,6 @@ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" @@ -3022,6 +3315,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@js-sdsl/ordered-map@^4.4.2": version "4.4.2" resolved "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz" @@ -3806,7 +4107,7 @@ lodash.omit "4.5.0" tslib "2.6.2" -"@nestjs/axios@^1.0.0 || ^2.0.0 || ^3.0.0", "@nestjs/axios@^3.0.2": +"@nestjs/axios@^3.0.2": version "3.0.2" resolved "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.2.tgz" integrity sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ== @@ -3839,28 +4140,28 @@ webpack "5.70.0" webpack-node-externals "3.0.0" -"@nestjs/common@^10.0.0", "@nestjs/common@^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", "@nestjs/common@^8.0.0 || ^9.0.0 || ^10.0.0", "@nestjs/common@^9.0.0 || ^10.0.0", "@nestjs/common@^9.3.8 || ^10.0.0", "@nestjs/common@10.3.3": +"@nestjs/common@10.3.3": version "10.3.3" resolved "https://registry.npmjs.org/@nestjs/common/-/common-10.3.3.tgz" integrity sha512-LAkTe8/CF0uNWM0ecuDwUNTHCi1lVSITmmR4FQ6Ftz1E7ujQCnJ5pMRzd8JRN14vdBkxZZ8VbVF0BDUKoKNxMQ== dependencies: + uid "2.0.2" iterare "1.2.1" tslib "2.6.2" - uid "2.0.2" -"@nestjs/core@^10.0.0", "@nestjs/core@^8.0.0 || ^9.0.0 || ^10.0.0", "@nestjs/core@^9.0.0 || ^10.0.0", "@nestjs/core@^9.3.8 || ^10.0.0", "@nestjs/core@10.3.3": +"@nestjs/core@10.3.3": version "10.3.3" resolved "https://registry.npmjs.org/@nestjs/core/-/core-10.3.3.tgz" integrity sha512-kxJWggQAPX3RuZx9JVec69eSLaYLNIox2emkZJpfBJ5Qq7cAq7edQIt1r4LGjTKq6kFubNTPsqhWf5y7yFRBPw== dependencies: + uid "2.0.2" "@nuxtjs/opencollective" "0.3.2" fast-safe-stringify "2.1.1" iterare "1.2.1" path-to-regexp "3.2.0" tslib "2.6.2" - uid "2.0.2" -"@nestjs/graphql@^12.0.0", "@nestjs/graphql@12.1.1": +"@nestjs/graphql@12.1.1": version "12.1.1" resolved "https://registry.npmjs.org/@nestjs/graphql/-/graphql-12.1.1.tgz" integrity sha512-Y2fPrB1bCzkSFEhE5prAJM6dGUwJwBhKSH4rkg5LRSrQnb89kqmELRreaWtisECSnA25mb4MjaRKA3svX1toBg== @@ -3885,7 +4186,7 @@ resolved "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.5.tgz" integrity sha512-bSJv4pd6EY99NX9CjBIyn4TVDoSit82DUZlL4I3bqNfy5Gt+gXTa86i3I/i0iIV9P4hntcGM5GyO+FhZAhxtyg== -"@nestjs/platform-express@^10.0.0", "@nestjs/platform-express@10.3.3": +"@nestjs/platform-express@10.3.3": version "10.3.3" resolved "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.3.3.tgz" integrity sha512-GGKSEU48Os7nYFIsUM0nutuFUGn5AbeP8gzFBiBCAtiuJWrXZXpZ58pMBYxAbMf7IrcOZFInHEukjHGAQU0OZw== @@ -3922,7 +4223,7 @@ dependencies: tslib "2.6.2" -"@nestjs/typeorm@^9.0.0 || ^10.0.0", "@nestjs/typeorm@10.0.2": +"@nestjs/typeorm@10.0.2": version "10.0.2" resolved "https://registry.npmjs.org/@nestjs/typeorm/-/typeorm-10.0.2.tgz" integrity sha512-H738bJyydK4SQkRCTeh1aFBxoO1E9xdL/HaLGThwrqN95os5mEyAtK7BLADOS+vldP4jDZ2VQPLj4epWwRqCeQ== @@ -3941,7 +4242,7 @@ resolved "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.8.tgz" integrity sha512-CjSVVa/9fzMpEDQP01SC4colKCbZwj7vUq0H2bivp8jVsmd21x9Fu0gDBH0Y9NdfAIm4eGZvmiZKMII3vIOaYQ== -"@ngx-translate/core@^14.0.0 || ^15.0.0", "@ngx-translate/core@^15.0.0", "@ngx-translate/core@>=15.0.0": +"@ngx-translate/core@^15.0.0": version "15.0.0" resolved "https://registry.npmjs.org/@ngx-translate/core/-/core-15.0.0.tgz" integrity sha512-Am5uiuR0bOOxyoercDnAA3rJVizo4RRqJHo8N3RqJ+XfzVP/I845yEnMADykOHvM6HkVm4SZSnJBOiz0Anx5BA== @@ -3959,7 +4260,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -4205,6 +4506,31 @@ tmp "~0.2.1" tslib "^2.3.0" +"@nrwl/nx-darwin-arm64@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-arm64/-/nx-darwin-arm64-15.9.7.tgz#a2cb7390c782b8acf3bb8806a3002620226a933d" + integrity sha512-aBUgnhlkrgC0vu0fK6eb9Vob7eFnkuknrK+YzTjmLrrZwj7FGNAeyGXSlyo1dVokIzjVKjJg2saZZ0WQbfuCJw== + +"@nrwl/nx-darwin-x64@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-x64/-/nx-darwin-x64-15.9.7.tgz#af0437e726aeb97eb660646bfd9a7da5ba7a0a6f" + integrity sha512-L+elVa34jhGf1cmn38Z0sotQatmLovxoASCIw5r1CBZZeJ5Tg7Y9nOwjRiDixZxNN56hPKXm6xl9EKlVHVeKlg== + +"@nrwl/nx-linux-arm-gnueabihf@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-15.9.7.tgz#e29f4d31afa903bfb4d0fd7421e19be1086eae87" + integrity sha512-pqmfqqEUGFu6PmmHKyXyUw1Al0Ki8PSaR0+ndgCAb1qrekVDGDfznJfaqxN0JSLeolPD6+PFtLyXNr9ZyPFlFg== + +"@nrwl/nx-linux-arm64-gnu@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-15.9.7.tgz#eb2880a24d3268dd93583d21a6a0b9ff96bb23b4" + integrity sha512-NYOa/eRrqmM+In5g3M0rrPVIS9Z+q6fvwXJYf/KrjOHqqan/KL+2TOfroA30UhcBrwghZvib7O++7gZ2hzwOnA== + +"@nrwl/nx-linux-arm64-musl@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-musl/-/nx-linux-arm64-musl-15.9.7.tgz#5d04913c4672a96cefa78491824620d8a8bcfd7f" + integrity sha512-zyStqjEcmbvLbejdTOrLUSEdhnxNtdQXlmOuymznCzYUEGRv+4f7OAepD3yRoR0a/57SSORZmmGQB7XHZoYZJA== + "@nrwl/nx-linux-x64-gnu@15.9.7": version "15.9.7" resolved "https://registry.npmjs.org/@nrwl/nx-linux-x64-gnu/-/nx-linux-x64-gnu-15.9.7.tgz" @@ -4215,6 +4541,16 @@ resolved "https://registry.npmjs.org/@nrwl/nx-linux-x64-musl/-/nx-linux-x64-musl-15.9.7.tgz" integrity sha512-extIUThYN94m4Vj4iZggt6hhMZWQSukBCo8pp91JHnDcryBg7SnYmnikwtY1ZAFyyRiNFBLCKNIDFGkKkSrZ9Q== +"@nrwl/nx-win32-arm64-msvc@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-15.9.7.tgz#21b56ef3ab4190370effea71bd83fdc3e47ec69c" + integrity sha512-GSQ54hJ5AAnKZb4KP4cmBnJ1oC4ILxnrG1mekxeM65c1RtWg9NpBwZ8E0gU3xNrTv8ZNsBeKi/9UhXBxhsIh8A== + +"@nrwl/nx-win32-x64-msvc@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-x64-msvc/-/nx-win32-x64-msvc-15.9.7.tgz#1677ab1dcce921706b5677dc2844e3e0027f8bd5" + integrity sha512-x6URof79RPd8AlapVbPefUD3ynJZpmah3tYaYZ9xZRMXojVtEHV8Qh5vysKXQ1rNYJiiB8Ah6evSKWLbAH60tw== + "@nrwl/tao@15.9.7": version "15.9.7" resolved "https://registry.npmjs.org/@nrwl/tao/-/tao-15.9.7.tgz" @@ -4236,7 +4572,7 @@ resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz" integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== -"@octokit/core@^4.2.1", "@octokit/core@>=3", "@octokit/core@>=4": +"@octokit/core@^4.2.1": version "4.2.4" resolved "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz" integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== @@ -4352,7 +4688,7 @@ resolved "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz" integrity sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw== -"@parcel/watcher@^2.1.0", "@parcel/watcher@2.0.4": +"@parcel/watcher@2.0.4": version "2.0.4" resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz" integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg== @@ -4374,201 +4710,18 @@ resolved "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz" integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== dependencies: - tslib "^2.0.0" - -"@peculiar/webcrypto@^1.4.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz" - integrity sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg== - dependencies: - "@peculiar/asn1-schema" "^2.3.8" - "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.3.5" - tslib "^2.6.2" - webcrypto-core "^1.8.0" - -"@pinelab/vendure-plugin-accept-blue@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-accept-blue": - version "1.7.2" - resolved "file:packages/vendure-plugin-accept-blue" - dependencies: - axios "1.6.2" - catch-unknown "^2.0.0" - date-fns "2.29.3" - -"@pinelab/vendure-plugin-admin-social-auth@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-admin-social-auth": - version "1.1.2" - resolved "file:packages/vendure-plugin-admin-social-auth" - -"@pinelab/vendure-plugin-admin-ui-helpers@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-admin-ui-helpers": - version "1.2.0" - resolved "file:packages/vendure-plugin-admin-ui-helpers" - -"@pinelab/vendure-plugin-anonymized-order@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-anonymized-order": - version "1.2.1" - resolved "file:packages/vendure-plugin-anonymized-order" - -"@pinelab/vendure-plugin-campaign-tracker@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-campaign-tracker": - version "0.0.1" - resolved "file:packages/vendure-plugin-campaign-tracker" - dependencies: - catch-unknown "^2.0.0" - -"@pinelab/vendure-plugin-coinbase@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-coinbase": - version "1.2.1" - resolved "file:packages/vendure-plugin-coinbase" - dependencies: - axios "^0.26.1" - -"@pinelab/vendure-plugin-customer-managed-groups@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-customer-managed-groups": - version "1.4.1" - resolved "file:packages/vendure-plugin-customer-managed-groups" - -"@pinelab/vendure-plugin-dutch-postalcode@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-dutch-postalcode": - version "1.2.1" - resolved "file:packages/vendure-plugin-dutch-postalcode" - -"@pinelab/vendure-plugin-e-boekhouden@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-e-boekhouden": - version "1.2.1" - resolved "file:packages/vendure-plugin-e-boekhouden" - dependencies: - soap "^0.43.0" - -"@pinelab/vendure-plugin-facet-suggestions@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-facet-suggestions": - version "1.1.1" - resolved "file:packages/vendure-plugin-facet-suggestions" - -"@pinelab/vendure-plugin-goedgepickt@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-goedgepickt": - version "1.3.0" - resolved "file:packages/vendure-plugin-goedgepickt" - dependencies: - node-fetch "2" - -"@pinelab/vendure-plugin-google-cloud-tasks@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-google-cloud-tasks": - version "1.7.1" - resolved "file:packages/vendure-plugin-google-cloud-tasks" - dependencies: - "@google-cloud/tasks" "^5.4.0" - -"@pinelab/vendure-plugin-google-storage-assets@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-google-storage-assets": - version "1.2.2" - resolved "file:packages/vendure-plugin-google-storage-assets" - dependencies: - "@google-cloud/storage" "^5.18.2" - tmp "^0.2.1" - -"@pinelab/vendure-plugin-klaviyo@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-klaviyo": - version "1.2.0" - resolved "file:packages/vendure-plugin-klaviyo" - dependencies: - klaviyo-api "10.1.0" - lodash "4.17.21" - phone "3.1.45" - -"@pinelab/vendure-plugin-limited-products@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-limited-products": - version "3.0.1" - resolved "file:packages/vendure-plugin-limited-products" - -"@pinelab/vendure-plugin-metrics@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-metrics": - version "1.3.2" - resolved "file:packages/vendure-plugin-metrics" - dependencies: - chartist-plugin-tooltips-updated "^1.0.0" - date-fns "^2.29.3" - -"@pinelab/vendure-plugin-modify-customer-orders@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-modify-customer-orders": - version "1.3.1" - resolved "file:packages/vendure-plugin-modify-customer-orders" - -"@pinelab/vendure-plugin-multiserver-db-sessioncache@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-multiserver-db-sessioncache": - version "1.2.1" - resolved "file:packages/vendure-plugin-multiserver-db-sessioncache" - -"@pinelab/vendure-plugin-myparcel@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-myparcel": - version "1.3.1" - resolved "file:packages/vendure-plugin-myparcel" - dependencies: - axios "0.26.1" - -"@pinelab/vendure-plugin-order-export@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-order-export": - version "1.2.1" - resolved "file:packages/vendure-plugin-order-export" - dependencies: - csv-writer "^1.6.0" - -"@pinelab/vendure-plugin-payment-extensions@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-payment-extensions": - version "0.0.2" - resolved "file:packages/vendure-plugin-payment-extensions" - -"@pinelab/vendure-plugin-picklist@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-picklist": - version "1.2.1" - resolved "file:packages/vendure-plugin-picklist" - dependencies: - adm-zip "0.5.9" - pdf-creator-node "2.3.4" - tmp "0.2.1" - -"@pinelab/vendure-plugin-picqer@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-picqer": - version "3.4.1" - resolved "file:packages/vendure-plugin-picqer" - dependencies: - axios "1.3.4" - currency.js "2.0.4" - -"@pinelab/vendure-plugin-popularity-scores@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-popularity-scores": - version "1.7.3" - resolved "file:packages/vendure-plugin-popularity-scores" - -"@pinelab/vendure-plugin-primary-collection@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-primary-collection": - version "2.0.1" - resolved "file:packages/vendure-plugin-primary-collection" - -"@pinelab/vendure-plugin-public-customer-groups@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-public-customer-groups": - version "1.1.1" - resolved "file:packages/vendure-plugin-public-customer-groups" - -"@pinelab/vendure-plugin-selectable-gifts@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-selectable-gifts": - version "1.2.1" - resolved "file:packages/vendure-plugin-selectable-gifts" - -"@pinelab/vendure-plugin-sendcloud@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-sendcloud": - version "1.3.1" - resolved "file:packages/vendure-plugin-sendcloud" - -"@pinelab/vendure-plugin-shipmate@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-shipmate": - version "1.3.2" - resolved "file:packages/vendure-plugin-shipmate" - dependencies: - "@nestjs/axios" "^3.0.2" - catch-unknown "2.0.0" - -"@pinelab/vendure-plugin-shipping-extensions@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-shipping-extensions": - version "2.7.2" - resolved "file:packages/vendure-plugin-shipping-extensions" - -"@pinelab/vendure-plugin-stock-monitoring@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-stock-monitoring": - version "1.4.1" - resolved "file:packages/vendure-plugin-stock-monitoring" - -"@pinelab/vendure-plugin-stripe-subscription@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-stripe-subscription": - version "2.5.3" - resolved "file:packages/vendure-plugin-stripe-subscription" - dependencies: - date-fns "2.29.3" - stripe "11.1.0" - -"@pinelab/vendure-plugin-variant-bulk-update@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-variant-bulk-update": - version "1.3.4" - resolved "file:packages/vendure-plugin-variant-bulk-update" - -"@pinelab/vendure-plugin-webhook@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-webhook": - version "1.2.2" - resolved "file:packages/vendure-plugin-webhook" + tslib "^2.0.0" -"@pinelab/vendure-scripts@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-scripts": +"@peculiar/webcrypto@^1.4.0": version "1.5.0" - resolved "file:packages/vendure-scripts" + resolved "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz" + integrity sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg== dependencies: - prompt-confirm "^2.0.4" + "@peculiar/asn1-schema" "^2.3.8" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.5" + tslib "^2.6.2" + webcrypto-core "^1.8.0" "@pkgjs/parseargs@^0.11.0": version "0.11.0" @@ -4656,6 +4809,61 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rollup/rollup-android-arm-eabi@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz#bbd0e616b2078cd2d68afc9824d1fadb2f2ffd27" + integrity sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ== + +"@rollup/rollup-android-arm64@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz#97255ef6384c5f73f4800c0de91f5f6518e21203" + integrity sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA== + +"@rollup/rollup-darwin-arm64@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz#b6dd74e117510dfe94541646067b0545b42ff096" + integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w== + +"@rollup/rollup-darwin-x64@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz#e07d76de1cec987673e7f3d48ccb8e106d42c05c" + integrity sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA== + +"@rollup/rollup-linux-arm-gnueabihf@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz#9f1a6d218b560c9d75185af4b8bb42f9f24736b8" + integrity sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA== + +"@rollup/rollup-linux-arm-musleabihf@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz#53618b92e6ffb642c7b620e6e528446511330549" + integrity sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A== + +"@rollup/rollup-linux-arm64-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz#99a7ba5e719d4f053761a698f7b52291cefba577" + integrity sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw== + +"@rollup/rollup-linux-arm64-musl@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz#f53db99a45d9bc00ce94db8a35efa7c3c144a58c" + integrity sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ== + +"@rollup/rollup-linux-powerpc64le-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz#cbb0837408fe081ce3435cf3730e090febafc9bf" + integrity sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA== + +"@rollup/rollup-linux-riscv64-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz#8ed09c1d1262ada4c38d791a28ae0fea28b80cc9" + integrity sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg== + +"@rollup/rollup-linux-s390x-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz#938138d3c8e0c96f022252a28441dcfb17afd7ec" + integrity sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg== + "@rollup/rollup-linux-x64-gnu@4.18.0": version "4.18.0" resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz" @@ -4666,6 +4874,21 @@ resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz" integrity sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg== +"@rollup/rollup-win32-arm64-msvc@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz#ed6603e93636a96203c6915be4117245c1bd2daf" + integrity sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA== + +"@rollup/rollup-win32-ia32-msvc@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz#14e0b404b1c25ebe6157a15edb9c46959ba74c54" + integrity sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg== + +"@rollup/rollup-win32-x64-msvc@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4" + integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== + "@schematics/angular@17.3.8": version "17.3.8" resolved "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.8.tgz" @@ -4736,6 +4959,31 @@ resolved "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz" integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== +"@swc/core-darwin-arm64@1.4.6": + version "1.4.6" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.6.tgz#4465c6f1ae011d4829ba8923f6aac9aae7828416" + integrity sha512-bpggpx/BfLFyy48aUKq1PsNUxb7J6CINlpAUk0V4yXfmGnpZH80Gp1pM3GkFDQyCfq7L7IpjPrIjWQwCrL4hYw== + +"@swc/core-darwin-x64@1.4.6": + version "1.4.6" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.4.6.tgz#5ddda080ad9824b56d6470163c752e27e22d5a89" + integrity sha512-vJn+/ZuBTg+vtNkcmgZdH6FQpa0hFVdnB9bAeqYwKkyqP15zaPe6jfC+qL2y/cIeC7ASvHXEKrnCZgBLxfVQ9w== + +"@swc/core-linux-arm-gnueabihf@1.4.6": + version "1.4.6" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.6.tgz#eb6dbd10bd4b6ad36f85ef9c99c675f1aa4f598b" + integrity sha512-hEmYcB/9XBAl02MtuVHszhNjQpjBzhk/NFulnU33tBMbNZpy2TN5yTsitezMq090QXdDz8sKIALApDyg07ZR8g== + +"@swc/core-linux-arm64-gnu@1.4.6": + version "1.4.6" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.6.tgz#41ce65332b2e8d5bf69b0e95fd02a9134784d5de" + integrity sha512-/UCYIVoGpm2YVvGHZM2QOA3dexa28BjcpLAIYnoCbgH5f7ulDhE8FAIO/9pasj+kixDBsdqewHfsNXFYlgGJjQ== + +"@swc/core-linux-arm64-musl@1.4.6": + version "1.4.6" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.6.tgz#0d579abd7960db3f08915beac0f3bac3cd202425" + integrity sha512-LGQsKJ8MA9zZ8xHCkbGkcPSmpkZL2O7drvwsGKynyCttHhpwVjj9lguhD4DWU3+FWIsjvho5Vu0Ggei8OYi/Lw== + "@swc/core-linux-x64-gnu@1.4.6": version "1.4.6" resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.6.tgz" @@ -4746,7 +4994,22 @@ resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.6.tgz" integrity sha512-EGyjFVzVY6Do89x8sfah7I3cuP4MwtwzmA6OlfD/KASqfCFf5eIaEBMbajgR41bVfMV7lK72lwAIea5xEyq1AQ== -"@swc/core@^1.2.108", "@swc/core@^1.2.173", "@swc/core@>=1.2.50", "@swc/core@1.4.6": +"@swc/core-win32-arm64-msvc@1.4.6": + version "1.4.6" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.6.tgz#86066f9eee4e73b24826184f930eb3fb44e2b973" + integrity sha512-gfW9AuXvwSyK07Vb8Y8E9m2oJZk21WqcD+X4BZhkbKB0TCZK0zk1j/HpS2UFlr1JB2zPKPpSWLU3ll0GEHRG2A== + +"@swc/core-win32-ia32-msvc@1.4.6": + version "1.4.6" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.6.tgz#238b5143b9fec2048cf0a0e24763775561a472b1" + integrity sha512-ZuQm81FhhvNVYtVb9GfZ+Du6e7fZlkisWvuCeBeRiyseNt1tcrQ8J3V67jD2nxje8CVXrwG3oUIbPcybv2rxfQ== + +"@swc/core-win32-x64-msvc@1.4.6": + version "1.4.6" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.6.tgz#36f8fbe6ec04c5b39c34ad41bb6803ba9a306da7" + integrity sha512-UagPb7w5V0uzWSjrXwOavGa7s9iv3wrVdEgWy+/inm0OwY4lj3zpK9qDnMWAwYLuFwkI3UG4Q3dH8wD+CUUcjw== + +"@swc/core@1.4.6": version "1.4.6" resolved "https://registry.npmjs.org/@swc/core/-/core-1.4.6.tgz" integrity sha512-A7iK9+1qzTCIuc3IYcS8gPHCm9bZVKUJrfNnwveZYyo6OFp3jLno4WOM2yBy5uqedgYATEiWgBYHKq37KrU6IA== @@ -4917,7 +5180,7 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5", "@types/estree@1.0.5": +"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0", "@types/estree@^1.0.5": version "1.0.5" resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== @@ -4937,7 +5200,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@*", "@types/express@^4.0.29", "@types/express@^4.17.13": +"@types/express@*", "@types/express@^4.17.13": version "4.17.21" resolved "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -5028,23 +5291,23 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^18.0.0 || >=20.0.0", "@types/node@>=13", "@types/node@>=13.7.0", "@types/node@>=8.1.0": +"@types/node@*", "@types/node@>=13.7.0", "@types/node@>=8.1.0": version "20.14.7" resolved "https://registry.npmjs.org/@types/node/-/node-20.14.7.tgz" integrity sha512-uTr2m2IbJJucF3KUxgnGOZvYbN0QgkGyWxG6973HCpMYFy2KfcgYuIwkJQMQkt1VbBMlvWRbpshFTLxnxCZjKQ== dependencies: undici-types "~5.26.4" -"@types/node@^15.12.5": - version "15.14.9" - resolved "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz" - integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== - "@types/node@20.5.1": version "20.5.1" resolved "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz" integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg== +"@types/node@^15.12.5": + version "15.14.9" + resolved "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz" + integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== + "@types/nodemailer@^6.4.9": version "6.4.15" resolved "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.15.tgz" @@ -5204,7 +5467,7 @@ natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@7.13.1": +"@typescript-eslint/parser@7.13.1": version "7.13.1" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.1.tgz" integrity sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A== @@ -5275,15 +5538,6 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@vendure-hub/pinelab-invoice-plugin@file:/home/martijn/git/pinelab-vendure-plugins/packages/vendure-plugin-invoices": - version "4.1.0" - resolved "file:packages/vendure-plugin-invoices" - dependencies: - "@vendure-hub/vendure-hub-plugin" "^0.0.2" - adm-zip "0.5.9" - puppeteer "23.1.0" - tmp "0.2.1" - "@vendure-hub/vendure-hub-plugin@^0.0.2": version "0.0.2" resolved "https://registry.next.vendure.io/@vendure-hub/vendure-hub-plugin/-/vendure-hub-plugin-0.0.2.tgz" @@ -5533,14 +5787,6 @@ loupe "^2.3.7" pretty-format "^29.7.0" -"@webassemblyjs/ast@^1.11.5", "@webassemblyjs/ast@1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" - integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" @@ -5549,6 +5795,14 @@ "@webassemblyjs/helper-numbers" "1.11.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.1" +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.11.5": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/floating-point-hex-parser@1.11.1": version "1.11.1" resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" @@ -5665,20 +5919,6 @@ resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz" integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz" - integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-opt" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" - "@webassemblyjs/wast-printer" "1.12.1" - "@webassemblyjs/wasm-edit@1.11.1": version "1.11.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" @@ -5693,6 +5933,20 @@ "@webassemblyjs/wasm-parser" "1.11.1" "@webassemblyjs/wast-printer" "1.11.1" +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + "@webassemblyjs/wasm-gen@1.11.1": version "1.11.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" @@ -5735,18 +5989,6 @@ "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@^1.11.5": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" - integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - "@webassemblyjs/wasm-parser@1.11.1": version "1.11.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" @@ -5759,7 +6001,7 @@ "@webassemblyjs/leb128" "1.11.1" "@webassemblyjs/utf8" "1.11.1" -"@webassemblyjs/wasm-parser@1.12.1": +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.11.5": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== @@ -5787,7 +6029,7 @@ "@webassemblyjs/ast" "1.12.1" "@xtuc/long" "4.2.2" -"@webcomponents/custom-elements@^1.0.0", "@webcomponents/custom-elements@^1.4.2", "@webcomponents/custom-elements@^1.6.0": +"@webcomponents/custom-elements@^1.4.2", "@webcomponents/custom-elements@^1.6.0": version "1.6.0" resolved "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.6.0.tgz" integrity sha512-CqTpxOlUCPWRNUPZDxT5v2NnHXA4oox612iUGnmTUGQFhZ1Gkj8kirtl/2wcF6MqX7+PqqicZzOCBKKfIn0dww== @@ -5903,7 +6145,7 @@ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@yarnpkg/lockfile@^1.1.0", "@yarnpkg/lockfile@1.1.0": +"@yarnpkg/lockfile@1.1.0", "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== @@ -5923,7 +6165,15 @@ dependencies: argparse "^2.0.1" -abbrev@^1.0.0, abbrev@1: +JSONStream@^1.0.4, JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@1, abbrev@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -5965,7 +6215,7 @@ acorn-walk@^8.1.1, acorn-walk@^8.3.2: dependencies: acorn "^8.11.0" -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.11.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.11.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: version "8.12.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz" integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== @@ -5988,7 +6238,7 @@ adm-zip@0.5.9: resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz" integrity sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg== -agent-base@^6.0.2, agent-base@6: +agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -6017,7 +6267,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv-formats@^2.1.1, ajv-formats@2.1.1: +ajv-formats@2.1.1, ajv-formats@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== @@ -6036,54 +6286,6 @@ ajv-keywords@^5.0.0, ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@^8.9.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz" - integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== - dependencies: - fast-deep-equal "^3.1.3" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.4.1" - -ajv@^8.11.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz" - integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== - dependencies: - fast-deep-equal "^3.1.3" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.4.1" - -ajv@^8.8.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz" - integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== - dependencies: - fast-deep-equal "^3.1.3" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.4.1" - -ajv@^8.8.2: - version "8.16.0" - dependencies: - fast-deep-equal "^3.1.3" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.4.1" - ajv@8.12.0: version "8.12.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" @@ -6104,6 +6306,26 @@ ajv@8.9.0: require-from-string "^2.0.2" uri-js "^4.2.2" +ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.11.0, ajv@^8.8.0, ajv@^8.9.0: + version "8.16.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz" + integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== + dependencies: + fast-deep-equal "^3.1.3" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.4.1" + ansi-align@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" @@ -6188,6 +6410,16 @@ ansi-bold@^0.1.1: dependencies: ansi-wrap "0.1.0" +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@4.1.3, ansi-colors@^4.1.1: + 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== + ansi-colors@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-0.2.0.tgz" @@ -6221,16 +6453,6 @@ ansi-colors@^0.2.0: ansi-yellow "^0.1.1" lazy-cache "^2.0.1" -ansi-colors@^4.1.1, ansi-colors@4.1.3: - 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== - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-cyan@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz" @@ -6366,12 +6588,7 @@ ansi-styles@^5.0.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.0.0, ansi-styles@^6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -ansi-styles@^6.1.0: +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== @@ -6540,7 +6757,7 @@ asn1js@^3.0.1, asn1js@^3.0.5: pvutils "^1.1.3" tslib "^2.4.0" -assert-plus@^1.0.0, assert-plus@1.0.0: +assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== @@ -6636,37 +6853,14 @@ axios-ntlm@^1.2.0: dev-null "^0.1.1" js-md4 "^0.3.2" -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -axios@^0.26.1: - version "0.26.1" - resolved "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - -axios@^1.0.0, axios@^1.3.1, axios@^1.4.0, axios@^1.6.1, axios@^1.6.5: - version "1.7.2" - resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz" - integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -axios@0.21.4: +axios@0.21.4, axios@^0.21.1: version "0.21.4" resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: follow-redirects "^1.14.0" -axios@0.26.1: +axios@0.26.1, axios@^0.26.1: version "0.26.1" resolved "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz" integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== @@ -6691,6 +6885,15 @@ axios@1.6.2: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@^1.0.0, axios@^1.4.0, axios@^1.6.1, axios@^1.6.5: + version "1.7.2" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + b4a@^1.6.4: version "1.6.6" resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz" @@ -6891,13 +7094,13 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -body-parser@^1.20.2, body-parser@1.20.2: - version "1.20.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" - content-type "~1.0.5" + content-type "~1.0.4" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -6905,17 +7108,17 @@ body-parser@^1.20.2, body-parser@1.20.2: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@1.20.2, body-parser@^1.20.2: + version "1.20.2" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -6923,7 +7126,7 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -6940,7 +7143,7 @@ boolbase@^1.0.0: resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== -boxen@^5.0.0, boxen@5.1.2: +boxen@5.1.2, boxen@^5.0.0: version "5.1.2" resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== @@ -6976,7 +7179,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.5, browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": +browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.5, browserslist@^4.22.2, browserslist@^4.23.0: version "4.23.1" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz" integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== @@ -7008,6 +7211,15 @@ buffer-from@^1.0.0: resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" @@ -7024,15 +7236,6 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - builtins@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz" @@ -7197,7 +7400,7 @@ caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -catch-unknown@^2.0.0, catch-unknown@2.0.0: +catch-unknown@2.0.0, catch-unknown@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/catch-unknown/-/catch-unknown-2.0.0.tgz" integrity sha512-4ELowf+Fp6Qwv77ZvRDto9oJMsOalEk8IYvS5KsmIhRZQWbfArlIhIOONJtmCzOeeqpip6JzYqAYaNR9sIyLVQ== @@ -7215,6 +7418,14 @@ chai@^4.3.10: pathval "^1.1.1" type-detect "^4.0.8" +chalk@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -7232,24 +7443,11 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - -chalk@~5.3.0: +chalk@^5.3.0, chalk@~5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -chalk@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - change-case-all@1.0.14: version "1.0.14" resolved "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz" @@ -7341,7 +7539,7 @@ cheerio-select@^2.1.0: domhandler "^5.0.3" domutils "^3.0.1" -cheerio@^1.0.0-rc.12, cheerio@1.0.0-rc.12: +cheerio@1.0.0-rc.12, cheerio@^1.0.0-rc.12: version "1.0.0-rc.12" resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== @@ -7363,10 +7561,10 @@ choices-separator@^2.0.0: debug "^2.6.6" strip-color "^0.1.0" -chokidar@^3.0.0, chokidar@^3.5.2, chokidar@^3.5.3, chokidar@^3.6.0, "chokidar@>=3.0.0 <4.0.0", chokidar@3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== +chokidar@3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -7378,10 +7576,10 @@ chokidar@^3.0.0, chokidar@^3.5.2, chokidar@^3.5.3, chokidar@^3.6.0, "chokidar@>= optionalDependencies: fsevents "~2.3.2" -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@3.6.0, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.2, chokidar@^3.5.3, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -7434,7 +7632,7 @@ cli-boxes@^2.2.1: resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cli-cursor@^3.1.0, cli-cursor@3.1.0: +cli-cursor@3.1.0, cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== @@ -7460,16 +7658,16 @@ cli-highlight@^2.1.11: parse5-htmlparser2-tree-adapter "^6.0.0" yargs "^16.0.0" -cli-spinners@^2.5.0: - version "2.9.2" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" - integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - cli-spinners@2.6.1: version "2.6.1" resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + cli-table3@0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz" @@ -7607,16 +7805,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + color-string@^1.9.0: version "1.9.1" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" @@ -7663,6 +7861,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + commander@^10.0.0: version "10.0.1" resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" @@ -7688,11 +7891,6 @@ commander@~12.1.0: resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== -commander@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz" @@ -7909,8 +8107,8 @@ conventional-commits-parser@^3.2.0: resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz" integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== dependencies: - is-text-path "^1.0.1" JSONStream "^1.0.4" + is-text-path "^1.0.1" lodash "^4.17.15" meow "^8.0.0" split2 "^3.0.0" @@ -7921,8 +8119,8 @@ conventional-commits-parser@^4.0.0: resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz" integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== dependencies: - is-text-path "^1.0.1" JSONStream "^1.3.5" + is-text-path "^1.0.1" meow "^8.1.2" split2 "^3.2.2" @@ -7940,12 +8138,7 @@ conventional-recommended-bump@^6.1.0: meow "^8.0.0" q "^1.5.1" -convert-source-map@^1.5.1: - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^1.7.0: +convert-source-map@^1.5.1, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -8032,17 +8225,17 @@ core-js-compat@^3.31.0, core-js-compat@^3.34.0: dependencies: browserslist "^4.23.0" -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - core-util-is@1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== -cors@^2.8.5, cors@2.8.5: +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@2.8.5, cors@^2.8.5: version "2.8.5" resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -8055,18 +8248,7 @@ cosmiconfig-typescript-loader@^4.0.0: resolved "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz" integrity sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw== -cosmiconfig@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cosmiconfig@^7.0.1: +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: version "7.1.0" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz" integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== @@ -8077,7 +8259,7 @@ cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.0.0, cosmiconfig@^8.1.0, cosmiconfig@^8.1.3, cosmiconfig@>=7: +cosmiconfig@^8.0.0, cosmiconfig@^8.1.0, cosmiconfig@^8.1.3: version "8.3.6" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -8228,7 +8410,7 @@ data-uri-to-buffer@^6.0.2: resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz" integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== -dataloader@^2.2.2, dataloader@2.2.2: +dataloader@2.2.2, dataloader@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz" integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== @@ -8238,25 +8420,18 @@ date-and-time@^2.0.0: resolved "https://registry.npmjs.org/date-and-time/-/date-and-time-2.4.3.tgz" integrity sha512-xkS/imTmsyEdpp9ie5oV5UWolg3XkYWNySbT2W4ESWr6v4V8YrsHbhpk9fIeQcr0NFTnYbQJLXlgU1zrLItysA== -date-fns@^2.29.3: - 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== - dependencies: - "@babel/runtime" "^7.21.0" +date-fns@2.29.3: + version "2.29.3" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz" + integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== -date-fns@^2.30.0: +date-fns@^2.29.3, date-fns@^2.30.0: 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== dependencies: "@babel/runtime" "^7.21.0" -date-fns@2.29.3: - version "2.29.3" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== - dateformat@^3.0.0, dateformat@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" @@ -8272,69 +8447,27 @@ debounce@^1.2.0: resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@^2.6.6: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^2.6.8: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^2.6.9: +debug@2.6.9, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.0.1: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^3.2.7: +debug@3.2.7, debug@^3.0.1, debug@^3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.4, debug@4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.4: version "4.3.5" resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" -debug@^4.3.6: - version "4.3.6" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== - dependencies: - ms "2.1.2" - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - debug@4.3.2: version "4.3.2" resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" @@ -8342,6 +8475,13 @@ debug@4.3.2: dependencies: ms "2.1.2" +debug@^4.3.6: + version "4.3.6" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" @@ -8468,16 +8608,16 @@ delegates@^1.0.0: resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -depd@~2.0.0, depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - dependency-graph@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz" @@ -8516,7 +8656,7 @@ detect-libc@^2.0.0, detect-libc@^2.0.3: resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== -detect-node@^2.0.4, detect-node@2.1.0: +detect-node@2.1.0, detect-node@^2.0.4: version "2.1.0" resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== @@ -8526,7 +8666,7 @@ dev-null@^0.1.1: resolved "https://registry.npmjs.org/dev-null/-/dev-null-0.1.1.tgz" integrity sha512-nMNZG0zfMgmdv8S5O0TM5cpwNbGKRGPCxVsr0SmA3NZZy9CYBbuNLL0PD3Acx9e5LIUgwONXtM9kM6RlawPxEQ== -devtools-protocol@*, devtools-protocol@0.0.1312386: +devtools-protocol@0.0.1312386: version "0.0.1312386" resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz" integrity sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA== @@ -8669,16 +8809,16 @@ dset@^3.1.2: resolved "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz" integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== -duplexer@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - duplexer3@^0.1.4: version "0.1.5" resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz" integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + duplexify@^4.0.0, duplexify@^4.1.1: version "4.1.3" resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz" @@ -8702,7 +8842,7 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -ecdsa-sig-formatter@^1.0.11, ecdsa-sig-formatter@1.0.11: +ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: version "1.0.11" resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== @@ -8761,7 +8901,7 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.0, encoding@^0.1.13: +encoding@^0.1.13: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -8783,7 +8923,7 @@ enhanced-resolve@^5.15.0, enhanced-resolve@^5.7.0, enhanced-resolve@^5.9.2: graceful-fs "^4.2.4" tapable "^2.2.0" -"enquirer@>= 2.3.0 < 3", enquirer@~2.3.6: +enquirer@~2.3.6: version "2.3.6" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -8873,6 +9013,35 @@ esbuild-wasm@0.20.1: resolved "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz" integrity sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A== +esbuild@0.20.1: + version "0.20.1" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz" + integrity sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.20.1" + "@esbuild/android-arm" "0.20.1" + "@esbuild/android-arm64" "0.20.1" + "@esbuild/android-x64" "0.20.1" + "@esbuild/darwin-arm64" "0.20.1" + "@esbuild/darwin-x64" "0.20.1" + "@esbuild/freebsd-arm64" "0.20.1" + "@esbuild/freebsd-x64" "0.20.1" + "@esbuild/linux-arm" "0.20.1" + "@esbuild/linux-arm64" "0.20.1" + "@esbuild/linux-ia32" "0.20.1" + "@esbuild/linux-loong64" "0.20.1" + "@esbuild/linux-mips64el" "0.20.1" + "@esbuild/linux-ppc64" "0.20.1" + "@esbuild/linux-riscv64" "0.20.1" + "@esbuild/linux-s390x" "0.20.1" + "@esbuild/linux-x64" "0.20.1" + "@esbuild/netbsd-x64" "0.20.1" + "@esbuild/openbsd-x64" "0.20.1" + "@esbuild/sunos-x64" "0.20.1" + "@esbuild/win32-arm64" "0.20.1" + "@esbuild/win32-ia32" "0.20.1" + "@esbuild/win32-x64" "0.20.1" + esbuild@^0.19.3: version "0.19.12" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz" @@ -8928,37 +9097,8 @@ esbuild@^0.21.3: "@esbuild/openbsd-x64" "0.21.5" "@esbuild/sunos-x64" "0.21.5" "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" - -esbuild@0.20.1: - version "0.20.1" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz" - integrity sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA== - optionalDependencies: - "@esbuild/aix-ppc64" "0.20.1" - "@esbuild/android-arm" "0.20.1" - "@esbuild/android-arm64" "0.20.1" - "@esbuild/android-x64" "0.20.1" - "@esbuild/darwin-arm64" "0.20.1" - "@esbuild/darwin-x64" "0.20.1" - "@esbuild/freebsd-arm64" "0.20.1" - "@esbuild/freebsd-x64" "0.20.1" - "@esbuild/linux-arm" "0.20.1" - "@esbuild/linux-arm64" "0.20.1" - "@esbuild/linux-ia32" "0.20.1" - "@esbuild/linux-loong64" "0.20.1" - "@esbuild/linux-mips64el" "0.20.1" - "@esbuild/linux-ppc64" "0.20.1" - "@esbuild/linux-riscv64" "0.20.1" - "@esbuild/linux-s390x" "0.20.1" - "@esbuild/linux-x64" "0.20.1" - "@esbuild/netbsd-x64" "0.20.1" - "@esbuild/openbsd-x64" "0.20.1" - "@esbuild/sunos-x64" "0.20.1" - "@esbuild/win32-arm64" "0.20.1" - "@esbuild/win32-ia32" "0.20.1" - "@esbuild/win32-x64" "0.20.1" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" @@ -9006,14 +9146,6 @@ eslint-config-prettier@^9.1.0: resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" @@ -9022,12 +9154,20 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: 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== -"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.56.0, eslint@^8.57.0, eslint@>=7.0.0: +eslint@^8.57.0: version "8.57.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== @@ -9151,16 +9291,16 @@ eventemitter3@^5.0.1: resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== +events@1.1.1, events@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz" + integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== + events@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -events@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz" - integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== - execa@^4.0.2: version "4.1.0" resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz" @@ -9191,22 +9331,7 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -execa@~8.0.1: +execa@^8.0.1, execa@~8.0.1: version "8.0.1" resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz" integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== @@ -9226,17 +9351,17 @@ exponential-backoff@^3.1.1: resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== -express@^4.17.1, express@^4.17.3, express@^4.18.2, express@^4.18.3: - version "4.19.2" - resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== +express@4.18.2: + version "4.18.2" + resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.2" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.6.0" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -9263,17 +9388,17 @@ express@^4.17.1, express@^4.17.3, express@^4.18.2, express@^4.18.3: utils-merge "1.0.1" vary "~1.1.2" -express@4.18.2: - version "4.18.2" - resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.17.1, express@^4.17.3, express@^4.18.2, express@^4.18.3: + version "4.19.2" + resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -9354,16 +9479,16 @@ extract-zip@^2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + faker@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/faker/-/faker-4.1.0.tgz" @@ -9384,10 +9509,10 @@ fast-fifo@^1.2.0, fast-fifo@^1.3.2: resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2, fast-glob@3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -9395,10 +9520,10 @@ fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-gl merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== +fast-glob@3.3.2, fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -9406,7 +9531,7 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@2.1.0: +fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@^2.0.0: 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== @@ -9486,7 +9611,7 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -figures@^3.0.0, figures@^3.2.0, figures@3.2.0: +figures@3.2.0, figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -9703,16 +9828,7 @@ fs-constants@^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== -fs-extra@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz" - integrity sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - -fs-extra@^10.0.0, fs-extra@10.1.0: +fs-extra@10.1.0, fs-extra@^10.0.0: 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== @@ -9721,25 +9837,16 @@ fs-extra@^10.0.0, fs-extra@10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.0.0: - version "11.2.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^11.1.0: - version "11.2.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== +fs-extra@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz" + integrity sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ== dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" -fs-extra@^11.2.0: +fs-extra@^11.0.0, fs-extra@^11.1.0, fs-extra@^11.2.0: version "11.2.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== @@ -9782,6 +9889,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -9917,14 +10029,7 @@ get-stream@^4.1.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0: - 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" - -get-stream@^5.1.0: +get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -10014,14 +10119,7 @@ glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-parent@^6.0.2: +glob-parent@^6.0.1, glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -10033,6 +10131,18 @@ glob-to-regexp@^0.4.1: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@7.1.4: + version "7.1.4" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^10.2.2, glob@^10.3.10, glob@^10.3.3: version "10.4.2" resolved "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz" @@ -10045,55 +10155,7 @@ glob@^10.2.2, glob@^10.3.10, glob@^10.3.3: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^7.0.0: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.5: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.1: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.4: +glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -10126,18 +10188,6 @@ glob@^9.2.1: minipass "^4.2.4" path-scurry "^1.6.1" -glob@7.1.4: - version "7.1.4" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" @@ -10202,19 +10252,7 @@ google-auth-library@^7.0.0, google-auth-library@^7.14.0, google-auth-library@^7. jws "^4.0.0" lru-cache "^6.0.0" -google-auth-library@^9.3.0: - version "9.11.0" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.11.0.tgz" - integrity sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw== - dependencies: - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - gaxios "^6.1.1" - gcp-metadata "^6.1.0" - gtoken "^7.0.0" - jws "^4.0.0" - -google-auth-library@^9.4.1: +google-auth-library@^9.3.0, google-auth-library@^9.4.1: version "9.11.0" resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.11.0.tgz" integrity sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw== @@ -10322,7 +10360,7 @@ graphql-scalars@^1.22.5: dependencies: tslib "^2.5.0" -graphql-tag@^2.11.0, graphql-tag@^2.12.6, graphql-tag@2.12.6: +graphql-tag@2.12.6, graphql-tag@^2.11.0, graphql-tag@^2.12.6: version "2.12.6" resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== @@ -10342,17 +10380,17 @@ graphql-upload@^16.0.2: http-errors "^2.0.0" object-path "^0.11.8" +graphql-ws@5.14.3: + version "5.14.3" + resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.14.3.tgz" + integrity sha512-F/i2xNIVbaEF2xWggID0X/UZQa2V8kqKDPO8hwmu53bVOcTL7uNkxnexeEgSCVxYBQUTUNEI8+e4LO1FOhKPKQ== + graphql-ws@^5.14.0: version "5.16.0" resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.16.0.tgz" integrity sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A== -graphql-ws@^5.5.5, graphql-ws@5.14.3: - version "5.14.3" - resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.14.3.tgz" - integrity sha512-F/i2xNIVbaEF2xWggID0X/UZQa2V8kqKDPO8hwmu53bVOcTL7uNkxnexeEgSCVxYBQUTUNEI8+e4LO1FOhKPKQ== - -graphql@*, "graphql@^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "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", "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", "graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", "graphql@^15.0.0 || ^16.0.0", "graphql@^15.7.2 || ^16.0.0", graphql@^16.3.0, graphql@^16.6.0, "graphql@>=0.11 <=16", "graphql@14 - 16", "graphql@14.x || 15.x || 16.x", graphql@16.8.1: +graphql@16.8.1: version "16.8.1" resolved "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz" integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== @@ -10503,14 +10541,7 @@ hosted-git-info@^3.0.6: dependencies: lru-cache "^6.0.0" -hosted-git-info@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hosted-git-info@^4.0.1: +hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: version "4.1.0" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== @@ -10606,7 +10637,7 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@^2.0.0, http-errors@2.0.0: +http-errors@2.0.0, http-errors@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -10649,7 +10680,7 @@ http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: agent-base "^7.1.0" debug "^4.3.4" -http-proxy-middleware@^2.0.3, http-proxy-middleware@^2.0.6, http-proxy-middleware@2.0.6: +http-proxy-middleware@2.0.6, http-proxy-middleware@^2.0.3, http-proxy-middleware@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz" integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== @@ -10693,23 +10724,7 @@ httpreq@>=0.4.22: resolved "https://registry.npmjs.org/httpreq/-/httpreq-1.1.1.tgz" integrity sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw== -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -https-proxy-agent@^7.0.0: - version "7.0.4" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz" - integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== - dependencies: - agent-base "^7.0.2" - debug "4" - -https-proxy-agent@^7.0.1: +https-proxy-agent@7.0.4, https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1: version "7.0.4" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz" integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== @@ -10717,15 +10732,15 @@ https-proxy-agent@^7.0.1: agent-base "^7.0.2" debug "4" -https-proxy-agent@^7.0.3: - version "7.0.5" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz" - integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: - agent-base "^7.0.2" + agent-base "6" debug "4" -https-proxy-agent@^7.0.5: +https-proxy-agent@^7.0.3, https-proxy-agent@^7.0.5: version "7.0.5" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz" integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== @@ -10733,14 +10748,6 @@ https-proxy-agent@^7.0.5: agent-base "^7.0.2" debug "4" -https-proxy-agent@7.0.4: - version "7.0.4" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz" - integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== - dependencies: - agent-base "^7.0.2" - debug "4" - human-signals@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" @@ -10790,21 +10797,14 @@ i18next@^23.10.1: dependencies: "@babel/runtime" "^7.23.2" -iconv-lite@^0.4.24, iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -iconv-lite@^0.6.3: +iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -10816,21 +10816,16 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - ieee754@1.1.13: version "1.1.13" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" @@ -10931,7 +10926,7 @@ info-symbol@^0.1.0: resolved "https://registry.npmjs.org/info-symbol/-/info-symbol-0.1.0.tgz" integrity sha512-qkc9wjLDQ+dYYZnY5uJXGNNHyZ0UOMDUnhvy0SEZGVVYmQ5s4i8cPAin2MbU6OxJgi8dfj/AnwqPx0CJE6+Lsw== -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -10941,11 +10936,6 @@ inherits@2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - ini@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" @@ -10956,6 +10946,11 @@ ini@4.1.2: resolved "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz" integrity sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw== +ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + init-package-json@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz" @@ -10969,27 +10964,6 @@ init-package-json@^3.0.2: validate-npm-package-license "^3.0.4" validate-npm-package-name "^4.0.0" -inquirer@^8.0.0, inquirer@^8.2.4: - version "8.2.6" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz" - integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^6.0.1" - inquirer@7.3.3: version "7.3.3" resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz" @@ -11050,12 +11024,33 @@ inquirer@9.2.15: strip-ansi "^6.0.1" wrap-ansi "^6.2.0" +inquirer@^8.0.0, inquirer@^8.2.4: + version "8.2.6" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + interpret@^1.0.0: version "1.4.0" resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -intl-messageformat@^10.3.3, intl-messageformat@^10.5.11: +intl-messageformat@^10.5.11: version "10.5.14" resolved "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz" integrity sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w== @@ -11080,16 +11075,16 @@ ip-address@^9.0.5: jsbn "1.1.0" sprintf-js "^1.1.3" -ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== - ipaddr.js@1.9.1: 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== +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" @@ -11201,7 +11196,7 @@ is-fullwidth-code-point@^5.0.0: dependencies: get-east-asian-width "^1.0.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1, is-glob@4.0.3: +is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -11379,16 +11374,16 @@ is-yarn-global@^0.3.0: resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isarray@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -11430,7 +11425,7 @@ istanbul-lib-instrument@^5.0.4: istanbul-lib-coverage "^3.2.0" semver "^6.3.0" -iterall@^1.2.1, iterall@1.3.0: +iterall@1.3.0, iterall@^1.2.1: version "1.3.0" resolved "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== @@ -11519,15 +11514,14 @@ js-tokens@^9.0.0: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz" integrity sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ== -js-yaml@^3.10.0: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== +js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: - argparse "^1.0.7" - esprima "^4.0.0" + argparse "^2.0.1" -js-yaml@^3.13.1: +js-yaml@^3.10.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -11535,23 +11529,16 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.0.0, js-yaml@^4.1.0, js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== jsbn@~0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" @@ -11632,14 +11619,7 @@ json-to-pretty-yaml@^1.2.2: remedial "^1.0.7" remove-trailing-spaces "^1.0.6" -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^1.0.2: +json5@^1.0.1, json5@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== @@ -11687,14 +11667,6 @@ jsonparse@^1.2.0, jsonparse@^1.3.1: resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -JSONStream@^1.0.4, JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - jsprim@^1.2.2: version "1.4.2" resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" @@ -11781,14 +11753,7 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^3.0.3: +kind-of@^3.0.2, kind-of@^3.0.3: version "3.2.2" resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== @@ -11889,7 +11854,7 @@ less-loader@11.1.0: dependencies: klona "^2.0.4" -less@*, "less@^3.5.0 || ^4.0.0", less@4.2.0: +less@4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/less/-/less-4.2.0.tgz" integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== @@ -12066,6 +12031,11 @@ loader-runner@^4.2.0: resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== +loader-utils@3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== + loader-utils@^2.0.0: version "2.0.4" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" @@ -12075,11 +12045,6 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -loader-utils@3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz" - integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== - local-pkg@^0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz" @@ -12197,7 +12162,7 @@ lodash.upperfirst@^4.3.1: resolved "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz" integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@~4.17.0, lodash@4.17.21: +lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@~4.17.0: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -12310,12 +12275,7 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^10.0.1: - version "10.2.2" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz" - integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== - -lru-cache@^10.2.0: +lru-cache@^10.0.1, lru-cache@^10.2.0: version "10.2.2" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz" integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== @@ -12344,13 +12304,6 @@ macos-release@^2.5.0: resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz" integrity sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A== -magic-string@^0.30.5: - version "0.30.10" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" - magic-string@0.25.7: version "0.25.7" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz" @@ -12365,6 +12318,13 @@ magic-string@0.30.8: dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" +magic-string@^0.30.5: + version "0.30.10" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz" + integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" @@ -12385,29 +12345,7 @@ make-error@^1.1.1: resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^10.0.3: - version "10.2.1" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz" - integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== - dependencies: - agentkeepalive "^4.2.1" - cacache "^16.1.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-fetch "^2.0.3" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^9.0.0" - -make-fetch-happen@^10.0.6: +make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: version "10.2.1" resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz" integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== @@ -12567,7 +12505,7 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@~4.0.7: braces "^3.0.3" picomatch "^2.3.1" -"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -12579,7 +12517,7 @@ mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, m dependencies: mime-db "1.52.0" -mime@^1.4.1, mime@1.6.0: +mime@1.6.0, mime@^1.4.1: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -12627,6 +12565,20 @@ minimalistic-assert@^1.0.0: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== +minimatch@3.0.5: + version "3.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz" + integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" @@ -12655,41 +12607,13 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0: - version "9.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.3: - version "9.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.4: +minimatch@^9.0.0, minimatch@^9.0.3, minimatch@^9.0.4: version "9.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== dependencies: brace-expansion "^2.0.1" -minimatch@3.0.5: - version "3.0.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz" - integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@9.0.1: - version "9.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz" - integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== - dependencies: - brace-expansion "^2.0.1" - minimist-options@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" @@ -12699,16 +12623,16 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - minimist@1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" @@ -12786,22 +12710,12 @@ minipass@^4.2.4: resolved "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz" integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.1.2" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - minipass@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -minipass@^7.0.2, minipass@^7.0.3: - version "7.1.2" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -minipass@^7.1.2: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.1.2: version "7.1.2" resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== @@ -13221,11 +13135,6 @@ mrmime@2.0.0: resolved "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz" integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== -ms@^2.0.0, ms@^2.1.1, ms@^2.1.3, ms@2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" @@ -13236,6 +13145,11 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + multer@1.4.4-lts.1: version "1.4.4-lts.1" resolved "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz" @@ -13268,16 +13182,16 @@ multimatch@^5.0.0: arrify "^2.0.1" minimatch "^3.0.4" -mute-stream@~0.0.4, mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - mute-stream@0.0.7: version "0.0.7" resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== +mute-stream@0.0.8, mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + mute-stream@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz" @@ -13310,7 +13224,7 @@ needle@^3.1.0: iconv-lite "^0.6.3" sax "^1.2.4" -negotiator@^0.6.3, negotiator@0.6.3: +negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== @@ -13394,7 +13308,7 @@ node-emoji@1.11.0: dependencies: lodash "^4.17.21" -node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.9, node-fetch@^2.7.0, node-fetch@2: +node-fetch@2, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.9, node-fetch@^2.7.0: 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== @@ -13406,6 +13320,13 @@ node-forge@^1, node-forge@^1.3.1: resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== +node-fpgrowth@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/node-fpgrowth/-/node-fpgrowth-1.2.1.tgz" + integrity sha512-JYdqMnE8IQNTOxZR70esVn8sWEaDVfxyMug99880gaS0qJjQ/VUgDmVvS/7rltUQHEG4K9kCi0wVwCPYFd49Vw== + dependencies: + events "^1.1.1" + node-gyp-build@^4.2.2, node-gyp-build@^4.3.0: version "4.8.1" resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz" @@ -13497,14 +13418,7 @@ nopt@^6.0.0: dependencies: abbrev "^1.0.0" -nopt@^7.0.0: - version "7.2.1" - resolved "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz" - integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== - dependencies: - abbrev "^2.0.0" - -nopt@^7.2.0: +nopt@^7.0.0, nopt@^7.2.0: version "7.2.1" resolved "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz" integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== @@ -13551,6 +13465,11 @@ normalize-package-data@^6.0.0: semver "^7.3.5" validate-npm-package-license "^3.0.4" +normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" @@ -13558,11 +13477,6 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0, normalize-path@~3.0.0, normalize-path@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" @@ -13628,36 +13542,6 @@ npm-normalize-package-bin@^3.0.0: resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz" integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== -npm-package-arg@^11.0.0: - version "11.0.2" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz" - integrity sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw== - dependencies: - hosted-git-info "^7.0.0" - proc-log "^4.0.0" - semver "^7.3.5" - validate-npm-package-name "^5.0.0" - -npm-package-arg@^9.0.0: - version "9.1.2" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz" - integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== - dependencies: - hosted-git-info "^5.0.0" - proc-log "^2.0.1" - semver "^7.3.5" - validate-npm-package-name "^4.0.0" - -npm-package-arg@^9.0.1: - version "9.1.2" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz" - integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== - dependencies: - hosted-git-info "^5.0.0" - proc-log "^2.0.1" - semver "^7.3.5" - validate-npm-package-name "^4.0.0" - npm-package-arg@11.0.1: version "11.0.1" resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz" @@ -13677,6 +13561,26 @@ npm-package-arg@8.1.1: semver "^7.0.0" validate-npm-package-name "^3.0.0" +npm-package-arg@^11.0.0: + version "11.0.2" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz" + integrity sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^4.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: + version "9.1.2" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz" + integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== + dependencies: + hosted-git-info "^5.0.0" + proc-log "^2.0.1" + semver "^7.3.5" + validate-npm-package-name "^4.0.0" + npm-packlist@^5.1.0, npm-packlist@^5.1.1: version "5.1.3" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz" @@ -13694,6 +13598,16 @@ npm-packlist@^8.0.0: dependencies: ignore-walk "^6.0.4" +npm-pick-manifest@9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz" + integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + npm-pick-manifest@^7.0.0: version "7.0.2" resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz" @@ -13714,16 +13628,6 @@ npm-pick-manifest@^9.0.0: npm-package-arg "^11.0.0" semver "^7.3.5" -npm-pick-manifest@9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz" - integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== - dependencies: - npm-install-checks "^6.0.0" - npm-normalize-package-bin "^3.0.0" - npm-package-arg "^11.0.0" - semver "^7.3.5" - npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.0: version "13.3.1" resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz" @@ -13797,7 +13701,7 @@ nullthrows@^1.1.1: resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== -"nx@>= 14.1 <= 16", "nx@>=14.8.6 < 16", nx@15.9.7: +nx@15.9.7, "nx@>=14.8.6 < 16": version "15.9.7" resolved "https://registry.npmjs.org/nx/-/nx-15.9.7.tgz" integrity sha512-1qlEeDjX9OKZEryC8i4bA+twNg+lB5RKrozlNwWx/lLJHqWPUfvUTvxh+uxlPYL9KzVReQjUuxMLFMsHNqWUrA== @@ -13937,7 +13841,7 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -open@^8.0.9, open@^8.4.0, open@8.4.2: +open@8.4.2, open@^8.0.9, open@^8.4.0: version "8.4.2" resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== @@ -13983,7 +13887,7 @@ optionator@^0.9.3: type-check "^0.4.0" word-wrap "^1.2.5" -ora@^5.4.1, ora@5.4.1: +ora@5.4.1, ora@^5.4.1: version "5.4.1" resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== @@ -14026,6 +13930,13 @@ p-finally@^1.0.0: resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== +p-limit@3.1.0, p-limit@^3.0.1, p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" @@ -14040,13 +13951,6 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.1, p-limit@^3.0.2, p-limit@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-limit@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" @@ -14188,6 +14092,30 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" +pacote@17.0.6: + version "17.0.6" + resolved "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz" + integrity sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ== + dependencies: + "@npmcli/git" "^5.0.0" + "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/promise-spawn" "^7.0.0" + "@npmcli/run-script" "^7.0.0" + cacache "^18.0.0" + fs-minipass "^3.0.0" + minipass "^7.0.2" + npm-package-arg "^11.0.0" + npm-packlist "^8.0.0" + npm-pick-manifest "^9.0.0" + npm-registry-fetch "^16.0.0" + proc-log "^3.0.0" + promise-retry "^2.0.1" + read-package-json "^7.0.0" + read-package-json-fast "^3.0.0" + sigstore "^2.2.0" + ssri "^10.0.0" + tar "^6.1.11" + pacote@^13.0.3, pacote@^13.6.1: version "13.6.2" resolved "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz" @@ -14215,30 +14143,6 @@ pacote@^13.0.3, pacote@^13.6.1: ssri "^9.0.0" tar "^6.1.11" -pacote@17.0.6: - version "17.0.6" - resolved "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz" - integrity sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ== - dependencies: - "@npmcli/git" "^5.0.0" - "@npmcli/installed-package-contents" "^2.0.1" - "@npmcli/promise-spawn" "^7.0.0" - "@npmcli/run-script" "^7.0.0" - cacache "^18.0.0" - fs-minipass "^3.0.0" - minipass "^7.0.2" - npm-package-arg "^11.0.0" - npm-packlist "^8.0.0" - npm-pick-manifest "^9.0.0" - npm-registry-fetch "^16.0.0" - proc-log "^3.0.0" - promise-retry "^2.0.1" - read-package-json "^7.0.0" - read-package-json-fast "^3.0.0" - sigstore "^2.2.0" - ssri "^10.0.0" - tar "^6.1.11" - param-case@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" @@ -14525,16 +14429,16 @@ picocolors@^1.0.0, picocolors@^1.0.1: resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - picomatch@4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz" integrity sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg== +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + pidtree@~0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz" @@ -14667,7 +14571,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -"postcss@^7.0.0 || ^8.0.1", postcss@8.4.35: +postcss@8.4.35: version "8.4.35" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz" integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== @@ -14676,7 +14580,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.35, postcss@^8.4.38: +postcss@^8.2.14, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.35, postcss@^8.4.38: version "8.4.38" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz" integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== @@ -14704,16 +14608,16 @@ prettier-plugin-astro@^0.10.0: prettier "^2.8.8" sass-formatter "^0.7.6" -prettier@^2.8.8: - version "2.8.8" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - prettier@2.8.7: version "2.8.7" resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz" integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw== +prettier@^2.8.8: + version "2.8.8" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + pretty-format@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" @@ -15086,26 +14990,21 @@ pumpify@^2.0.0: inherits "^2.0.3" pump "^3.0.0" +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -punycode@^2.1.1: +punycode@^2.1.0, punycode@^2.1.1: version "2.3.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - pupa@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" @@ -15154,7 +15053,7 @@ q@^1.5.1: resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qs@^6.11.0, qs@6.11.0: +qs@6.11.0, qs@^6.11.0: version "6.11.0" resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -15244,7 +15143,7 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8, rc@1.2.8: +rc@1.2.8, rc@^1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -15254,7 +15153,7 @@ rc@^1.2.8, rc@1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -"react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^18.2.0: +react-dom@^18.2.0: version "18.3.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== @@ -15272,7 +15171,7 @@ react-is@^18.0.0: resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -react@*, "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.2.0, react@^18.3.1: +react@^18.2.0: version "18.3.1" resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== @@ -15356,27 +15255,23 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read@^1.0.7, read@1: +read@1, read@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" -readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" -readable-stream@^2.2.2: +readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -15389,15 +15284,6 @@ readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0, readable-stream@3: - version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readable-stream@~1.0.31: version "1.0.34" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" @@ -15408,19 +15294,6 @@ readable-stream@~1.0.31: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - readable-web-to-node-stream@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" @@ -15485,7 +15358,7 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -"reflect-metadata@^0.1.12 || ^0.2.0", "reflect-metadata@^0.1.13 || ^0.2.0", reflect-metadata@^0.2.0, reflect-metadata@^0.2.1, "reflect-metadata@0.1.x || 0.2.x": +reflect-metadata@^0.2.0, reflect-metadata@^0.2.1: version "0.2.2" resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz" integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== @@ -15593,7 +15466,7 @@ request-progress@^2.0.1: dependencies: throttleit "^1.0.0" -request@^2.81.0, request@>=2.9.0: +request@>=2.9.0, request@^2.81.0: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -15646,17 +15519,17 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0, resolve-from@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-global@^1.0.0, resolve-global@1.0.0: +resolve-global@1.0.0, resolve-global@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz" integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== @@ -15674,7 +15547,7 @@ resolve-url-loader@5.0.0: postcss "^8.2.14" source-map "0.6.1" -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@1.22.8: +resolve@1.22.8, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -15728,16 +15601,16 @@ retry-request@^7.0.0: extend "^3.0.2" teeny-request "^9.0.0" +retry@0.13.1, retry@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== -retry@^0.13.1, retry@0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" @@ -15748,46 +15621,21 @@ rfdc@^1.3.0, rfdc@^1.4.1: resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== -rimraf@^3.0.0, rimraf@^3.0.2, rimraf@3.0.2: +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@3.19.0: +rollup@3.19.0: version "3.19.0" resolved "https://registry.npmjs.org/rollup/-/rollup-3.19.0.tgz" - integrity sha512-xZzJZlH9Ca6cosfdNGPwl2z7Pby8dTi9TrYLPeg6/j7aUoDOhBd706tCUFvbiBj45h/cS7z/a4gS8xd5Yg0jBw== - optionalDependencies: - fsevents "~2.3.2" - -rollup@^4.13.0: - version "4.18.0" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz" - integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg== - dependencies: - "@types/estree" "1.0.5" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.18.0" - "@rollup/rollup-android-arm64" "4.18.0" - "@rollup/rollup-darwin-arm64" "4.18.0" - "@rollup/rollup-darwin-x64" "4.18.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.18.0" - "@rollup/rollup-linux-arm-musleabihf" "4.18.0" - "@rollup/rollup-linux-arm64-gnu" "4.18.0" - "@rollup/rollup-linux-arm64-musl" "4.18.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.18.0" - "@rollup/rollup-linux-riscv64-gnu" "4.18.0" - "@rollup/rollup-linux-s390x-gnu" "4.18.0" - "@rollup/rollup-linux-x64-gnu" "4.18.0" - "@rollup/rollup-linux-x64-musl" "4.18.0" - "@rollup/rollup-win32-arm64-msvc" "4.18.0" - "@rollup/rollup-win32-ia32-msvc" "4.18.0" - "@rollup/rollup-win32-x64-msvc" "4.18.0" + integrity sha512-xZzJZlH9Ca6cosfdNGPwl2z7Pby8dTi9TrYLPeg6/j7aUoDOhBd706tCUFvbiBj45h/cS7z/a4gS8xd5Yg0jBw== + optionalDependencies: fsevents "~2.3.2" -rollup@^4.2.0: +rollup@^4.13.0, rollup@^4.2.0: version "4.18.0" resolved "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz" integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg== @@ -15834,46 +15682,41 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -"rxjs@^6.0.0 || ^7.0.0", "rxjs@^6.5.3 || ^7.4.0", "rxjs@^6.5.5 || ^7.4.0", rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.5, rxjs@^7.8.1, rxjs@7.8.1, rxjs@7.x: - version "7.8.1" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -rxjs@^6.6.0, rxjs@6.6.7: +rxjs@6.6.7, rxjs@^6.6.0: version "6.6.7" resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" +rxjs@7.8.1, rxjs@^7.2.0, rxjs@^7.5.5, rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + s.color@0.0.15: version "0.0.15" resolved "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz" integrity sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-identifier@^0.4.1: version "0.4.2" resolved "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz" integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== -safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -15899,7 +15742,7 @@ sass-loader@14.1.1: dependencies: neo-async "^2.6.2" -sass@*, sass@^1.3.0, sass@1.71.1: +sass@1.71.1: version "1.71.1" resolved "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz" integrity sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg== @@ -15908,16 +15751,16 @@ sass@*, sass@^1.3.0, sass@1.71.1: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sax@^1.2.4, sax@>=0.6, sax@>=0.6.0: - version "1.4.1" - resolved "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz" - integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== - sax@1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" integrity sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== +sax@>=0.6, sax@>=0.6.0, sax@^1.2.4: + version "1.4.1" + resolved "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + scheduler@^0.23.2: version "0.23.2" resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" @@ -15925,16 +15768,17 @@ scheduler@^0.23.2: dependencies: loose-envify "^1.1.0" -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== +schema-utils@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" -schema-utils@^3.2.0: +schema-utils@^3.1.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -15953,16 +15797,6 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -schema-utils@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz" - integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.8.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" - scuid@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz" @@ -15988,27 +15822,26 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.1: version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^5.7.1: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.0.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@7.5.4: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" -semver@^6.2.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@7.6.0: + version "7.6.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" -semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -16023,25 +15856,6 @@ semver@^7.6.3: resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -"semver@2 || 3 || 4 || 5": - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@7.5.4: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@7.6.0: - version "7.6.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" - send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -16170,7 +15984,7 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -sharp@^0.33.4, sharp@^0.33.5, sharp@~0.33.2: +sharp@^0.33.4, sharp@~0.33.2: version "0.33.4" resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.4.tgz" integrity sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q== @@ -16199,6 +16013,35 @@ sharp@^0.33.4, sharp@^0.33.5, sharp@~0.33.2: "@img/sharp-win32-ia32" "0.33.4" "@img/sharp-win32-x64" "0.33.4" +sharp@^0.33.5: + version "0.33.5" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" + integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== + dependencies: + color "^4.2.3" + detect-libc "^2.0.3" + semver "^7.6.3" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.33.5" + "@img/sharp-darwin-x64" "0.33.5" + "@img/sharp-libvips-darwin-arm64" "1.0.4" + "@img/sharp-libvips-darwin-x64" "1.0.4" + "@img/sharp-libvips-linux-arm" "1.0.5" + "@img/sharp-libvips-linux-arm64" "1.0.4" + "@img/sharp-libvips-linux-s390x" "1.0.4" + "@img/sharp-libvips-linux-x64" "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + "@img/sharp-linux-arm" "0.33.5" + "@img/sharp-linux-arm64" "0.33.5" + "@img/sharp-linux-s390x" "0.33.5" + "@img/sharp-linux-x64" "0.33.5" + "@img/sharp-linuxmusl-arm64" "0.33.5" + "@img/sharp-linuxmusl-x64" "0.33.5" + "@img/sharp-wasm32" "0.33.5" + "@img/sharp-win32-ia32" "0.33.5" + "@img/sharp-win32-x64" "0.33.5" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -16245,12 +16088,7 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -signal-exit@^4.1.0: +signal-exit@^4.0.1, signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== @@ -16441,7 +16279,7 @@ sort-keys@^4.0.0: dependencies: is-plain-obj "^2.0.0" -source-map-js@^1.0.2, source-map-js@^1.2.0, "source-map-js@>=0.6.2 <2.0.0": +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== @@ -16454,7 +16292,7 @@ source-map-loader@5.0.0: iconv-lite "^0.6.3" source-map-js "^1.0.2" -source-map-support@^0.5.5, source-map-support@~0.5.20, source-map-support@0.5.21: +source-map-support@0.5.21, source-map-support@^0.5.5, source-map-support@~0.5.20: 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== @@ -16462,7 +16300,7 @@ source-map-support@^0.5.5, source-map-support@~0.5.20, source-map-support@0.5.21 buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1, source-map@0.6.1: +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -16531,13 +16369,6 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -split@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - split2@^3.0.0, split2@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" @@ -16545,6 +16376,13 @@ split2@^3.0.0, split2@^3.2.2: dependencies: readable-stream "^3.0.0" +split@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + sponge-case@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz" @@ -16562,7 +16400,7 @@ sprintf-js@~1.0.2: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sql.js@^1.4.0, sql.js@1.8.0: +sql.js@1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/sql.js/-/sql.js-1.8.0.tgz" integrity sha512-3HD8pSkZL+5YvYUI8nlvNILs61ALqq34xgmF+BHpqxe68yZIJ1H+sIVIODvni25+CcxHUxDyrTJUL0lE/m7afw== @@ -16609,16 +16447,16 @@ static-extend@^0.1.2: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + std-env@^3.5.0: version "3.7.0" resolved "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz" @@ -16652,25 +16490,6 @@ streamx@^2.15.0, streamx@^2.18.0: optionalDependencies: bare-events "^2.2.0" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - string-argv@~0.3.2: version "0.3.2" resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" @@ -16725,6 +16544,25 @@ string-width@^7.0.0: get-east-asian-width "^1.0.0" strip-ansi "^7.1.0" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -16746,14 +16584,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-ansi@^7.1.0: +strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== @@ -16809,7 +16640,7 @@ strip-literal@^2.0.0: dependencies: js-tokens "^9.0.0" -stripe@11.1.0, stripe@13.x: +stripe@11.1.0: version "11.1.0" resolved "https://registry.npmjs.org/stripe/-/stripe-11.1.0.tgz" integrity sha512-erOslPQZSYKOotQjmKRy4eBon/tdhzLIYzBdPSNVWDdatSQozkkPlh8mVeXNwubYYZYx61/yS23eWiGDF93z2w== @@ -16839,7 +16670,7 @@ stubs@^3.0.0: resolved "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz" integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw== -"subscriptions-transport-ws@^0.9.0 || ^0.11.0", subscriptions-transport-ws@0.11.0: +subscriptions-transport-ws@0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz" integrity sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ== @@ -16876,14 +16707,7 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -16902,16 +16726,16 @@ swap-case@^2.0.2: dependencies: tslib "^2.0.3" +symbol-observable@4.0.0, symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + symbol-observable@^1.0.4: version "1.2.0" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -symbol-observable@^4.0.0, symbol-observable@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz" - integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== - tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" @@ -17007,20 +16831,20 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.10: serialize-javascript "^6.0.1" terser "^5.26.0" -terser@^5.26.0: - version "5.31.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz" - integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg== +terser@5.29.1: + version "5.29.1" + resolved "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz" + integrity sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" -terser@^5.4.0, terser@5.29.1: - version "5.29.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz" - integrity sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ== +terser@^5.26.0: + version "5.31.1" + resolved "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz" + integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -17036,10 +16860,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -"test-utils@file:/home/martijn/git/pinelab-vendure-plugins/packages/test": - version "1.0.2" - resolved "file:packages/test" - text-decoder@^1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz" @@ -17076,20 +16896,7 @@ throttleit@^1.0.0: resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz" integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ== -through@^2.3.4, through@^2.3.6, through@^2.3.8, "through@>=2.2.7 <3", through@2: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^2.0.1: +through2@^2.0.0, through2@^2.0.1: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -17104,6 +16911,11 @@ through2@^4.0.0: dependencies: readable-stream "3" +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + thunky@^1.0.2: version "1.1.0" resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" @@ -17136,6 +16948,13 @@ title-case@^3.0.3: dependencies: tslib "^2.0.3" +tmp@0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" @@ -17148,13 +16967,6 @@ tmp@^0.2.1, tmp@~0.2.1: resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== -tmp@0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" @@ -17256,7 +17068,7 @@ ts-log@^2.2.3: resolved "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz" integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== -ts-morph@^11.0.0, "ts-morph@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0": +ts-morph@^11.0.0: version "11.0.3" resolved "https://registry.npmjs.org/ts-morph/-/ts-morph-11.0.3.tgz" integrity sha512-ymuPkndv9rzqTLiHWMkVrFXWcN4nBiBGhRP/kTC9F5amAAl7BNLfyrsTzMD1o9A0zishKoF1KQT/0yyFhJnPgA== @@ -17272,7 +17084,7 @@ ts-morph@^21.0.1: "@ts-morph/common" "~0.22.0" code-block-writer "^12.0.0" -ts-node@^10.7.0, ts-node@^10.8.1, ts-node@^10.9.0, ts-node@^10.9.2, ts-node@>=10: +ts-node@^10.8.1, ts-node@^10.9.0, ts-node@^10.9.2: version "10.9.2" resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== @@ -17300,6 +17112,16 @@ tsconfig-paths-webpack-plugin@3.5.2: enhanced-resolve "^5.7.0" tsconfig-paths "^3.9.0" +tsconfig-paths@3.14.0: + version "3.14.0" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz" + integrity sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + tsconfig-paths@^3.9.0: version "3.15.0" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" @@ -17319,15 +17141,10 @@ tsconfig-paths@^4.1.2, tsconfig-paths@^4.2.0: minimist "^1.2.6" strip-bom "^3.0.0" -tsconfig-paths@3.14.0: - version "3.14.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz" - integrity sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" +tslib@2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tslib@^1.9.0: version "1.14.1" @@ -17349,11 +17166,6 @@ tslib@~2.4.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== -tslib@2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - tsscmp@1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz" @@ -17452,7 +17264,7 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typeorm@*, typeorm@^0.3.0, typeorm@0.3.20: +typeorm@0.3.20: version "0.3.20" resolved "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz" integrity sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q== @@ -17482,26 +17294,26 @@ typescript-eslint@^7.5.0: "@typescript-eslint/parser" "7.13.1" "@typescript-eslint/utils" "7.13.1" +typescript@4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz" + integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + +typescript@5.3.3: + version "5.3.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + "typescript@^3 || ^4": version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -"typescript@^3.4.5 || ^4.3.5", typescript@>3.6.0, typescript@4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz" - integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== - -"typescript@^4.6.4 || ^5.2.2", typescript@>=4: +"typescript@^4.6.4 || ^5.2.2": version "5.5.2" resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz" integrity sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew== -typescript@>=2.7, typescript@>=4.2.0, typescript@>=4.9.5, "typescript@>=5.2 <5.5", typescript@5.3.3: - version "5.3.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== - ua-parser-js@^1.0.35: version "1.0.38" resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz" @@ -17632,7 +17444,7 @@ unixify@^1.0.0: dependencies: normalize-path "^2.1.1" -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -17735,7 +17547,7 @@ url@0.10.3: punycode "1.3.2" querystring "0.2.0" -urlpattern-polyfill@^10.0.0, urlpattern-polyfill@10.0.0: +urlpattern-polyfill@10.0.0, urlpattern-polyfill@^10.0.0: version "10.0.0" resolved "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz" integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg== @@ -17760,40 +17572,26 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -"utils@file:/home/martijn/git/pinelab-vendure-plugins/packages/util": - version "1.0.2" - resolved "file:packages/util" +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@9.0.1, uuid@^9.0.0, uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== uuid@^3.3.2: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.0.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^8.3.2: +uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^9.0.0, uuid@^9.0.1, uuid@9.0.1: - version "9.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" @@ -17866,7 +17664,7 @@ vite-node@1.3.1: picocolors "^1.0.0" vite "^5.0.0" -"vite@^3.0.0 || ^4.0.0 || ^5.0.0", vite@5.1.7: +vite@5.1.7: version "5.1.7" resolved "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz" integrity sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA== @@ -17929,14 +17727,6 @@ warning-symbol@^0.1.0: resolved "https://registry.npmjs.org/warning-symbol/-/warning-symbol-0.1.0.tgz" integrity sha512-1S0lwbHo3kNUKA4VomBAhqn4DPjQkIKSdbOin5K7EFUQNwyIKx+wZMGXKI53RUjla8V2B8ouQduUlgtx8LoSMw== -watchpack@^2.3.1, watchpack@^2.4.0: - version "2.4.1" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz" - integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - watchpack@2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz" @@ -17945,6 +17735,14 @@ watchpack@2.4.0: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +watchpack@^2.3.1, watchpack@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" @@ -17992,29 +17790,29 @@ webidl-conversions@^3.0.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -webpack-dev-middleware@^5.3.1: - version "5.3.4" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz" - integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== +webpack-dev-middleware@6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz" + integrity sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ== dependencies: colorette "^2.0.10" - memfs "^3.4.3" + memfs "^3.4.12" mime-types "^2.1.31" range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-middleware@6.1.2: - version "6.1.2" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz" - integrity sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ== +webpack-dev-middleware@^5.3.1: + version "5.3.4" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: colorette "^2.0.10" - memfs "^3.4.12" + memfs "^3.4.3" mime-types "^2.1.31" range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.0.0, webpack-dev-server@4.15.1: +webpack-dev-server@4.15.1: version "4.15.1" resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz" integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== @@ -18081,37 +17879,7 @@ webpack-virtual-modules@^0.6.1: resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== -"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.12.0, webpack@^5.30.0, webpack@^5.54.0, webpack@^5.72.1, webpack@>=5, webpack@5.90.3: - version "5.90.3" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz" - integrity sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.5" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" - acorn "^8.7.1" - acorn-import-assertions "^1.9.0" - browserslist "^4.21.10" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.15.0" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.2.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -webpack@^5.11.0, webpack@5.70.0: +webpack@5.70.0: version "5.70.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz" integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw== @@ -18141,7 +17909,37 @@ webpack@^5.11.0, webpack@5.70.0: watchpack "^2.3.1" webpack-sources "^3.2.3" -websocket-driver@^0.7.4, websocket-driver@>=0.5.1: +webpack@5.90.3: + version "5.90.3" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz" + integrity sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -18315,15 +18113,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -write-file-atomic@^4.0.1: +write-file-atomic@^4.0.0, write-file-atomic@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== @@ -18364,26 +18154,26 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@*, ws@^8.12.0, ws@^8.13.0, ws@^8.15.0: - version "8.17.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== +ws@8.16.0: + version "8.16.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== "ws@^5.2.0 || ^6.0.0 || ^7.0.0": version "7.5.10" resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.12.0, ws@^8.13.0, ws@^8.15.0: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + ws@^8.18.0: version "8.18.0" resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== -ws@8.16.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" - integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== - wsdl-tsclient@1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/wsdl-tsclient/-/wsdl-tsclient-1.3.1.tgz" @@ -18488,6 +18278,16 @@ yaml@^2.3.1, yaml@~2.4.2: resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz" integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@21.1.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" @@ -18501,20 +18301,31 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== +yargs@17.1.1: + version "17.1.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz" + integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" -yargs-parser@21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== +yargs@17.7.2, yargs@^17.0.0, yargs@^17.2.1, yargs@^17.6.2, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" yargs@^15.3.1: version "15.4.1" @@ -18533,33 +18344,7 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^16.1.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^16.2.0: +yargs@^16.0.0, yargs@^16.1.0, yargs@^16.2.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -18572,32 +18357,6 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.0.0, yargs@^17.2.1, yargs@^17.6.2, yargs@^17.7.2, yargs@17.7.2: - version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yargs@17.1.1: - version "17.1.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz" - integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" @@ -18638,7 +18397,7 @@ zod@3.23.8: resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== -zone.js@~0.14.0, zone.js@~0.14.4: +zone.js@~0.14.4: version "0.14.7" resolved "https://registry.npmjs.org/zone.js/-/zone.js-0.14.7.tgz" integrity sha512-0w6DGkX2BPuiK/NLf+4A8FLE43QwBfuqz2dVgi/40Rj1WmqUskCqj329O/pwrqFJLG5X8wkeG2RhIAro441xtg== From d3160fb2df282fc40cd364cc3f10a9e37ea5cc32 Mon Sep 17 00:00:00 2001 From: Martijn Date: Mon, 9 Dec 2024 14:04:23 +0100 Subject: [PATCH 02/11] feat(frequently-bought-together): use products instead of variants --- .../README.md | 5 +- .../package.json | 2 +- .../src/api/api-extensions.ts | 3 +- .../src/generated-graphql-types.ts | 1 - .../frequently-bought-together.service.ts | 46 ++++++++++--------- 5 files changed, 29 insertions(+), 28 deletions(-) diff --git a/packages/vendure-plugin-frequently-bought-together/README.md b/packages/vendure-plugin-frequently-bought-together/README.md index 14814fa6..3da3d1f5 100644 --- a/packages/vendure-plugin-frequently-bought-together/README.md +++ b/packages/vendure-plugin-frequently-bought-together/README.md @@ -4,6 +4,7 @@ // TODO installation -// TODO preview mode + support +// TODO experiment mode + support +// What does support mean? nr of orders -// TODO channel specific support +// TODO channel specific support numbers diff --git a/packages/vendure-plugin-frequently-bought-together/package.json b/packages/vendure-plugin-frequently-bought-together/package.json index b17c392c..dbdcbe65 100644 --- a/packages/vendure-plugin-frequently-bought-together/package.json +++ b/packages/vendure-plugin-frequently-bought-together/package.json @@ -24,7 +24,7 @@ "CHANGELOG.md" ], "scripts": { - "build": "rimraf dist && tsc", + "build": "rimraf dist && yarn generate && tsc", "start": "yarn ts-node test/dev-server.ts", "generate": "graphql-codegen --config codegen.yml", "test": "vitest run --bail 1", diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts index 533c767b..1d93a4a4 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts @@ -2,7 +2,6 @@ import gql from 'graphql-tag'; export const adminApiExtensions = gql` type FrequentlyBoughtTogetherPreview { - memoryUsed: String! totalItemSets: Int! bestItemSets: [FrequentlyBoughtTogetherItemSet!]! worstItemSets: [FrequentlyBoughtTogetherItemSet!]! @@ -10,7 +9,7 @@ export const adminApiExtensions = gql` type FrequentlyBoughtTogetherItemSet { items: [String!] - support: Float! + support: Int! } extend type Query { diff --git a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts index e676f93d..4442147d 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts @@ -27,7 +27,6 @@ export type FrequentlyBoughtTogetherItemSet = { export type FrequentlyBoughtTogetherPreview = { __typename?: 'FrequentlyBoughtTogetherPreview'; bestItemSets: Array; - memoryUsed: Scalars['String']; totalItemSets: Scalars['Int']; worstItemSets: Array; }; diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts index 8b7e02e2..831821e1 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts @@ -5,7 +5,7 @@ import { JobQueueService, Logger, OrderLine, - ProductVariantService, + ProductService, RequestContext, SerializedRequestContext, TransactionalConnection, @@ -15,8 +15,8 @@ import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS, loggerCtx, } from '../constants'; -import { PluginInitOptions } from '../types'; import { FrequentlyBoughtTogetherPreview } from '../generated-graphql-types'; +import { PluginInitOptions } from '../types'; @Injectable() export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { @@ -30,7 +30,7 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { @Inject(FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS) private options: PluginInitOptions, private jobQueueService: JobQueueService, - private variantService: ProductVariantService + private productService: ProductService ) {} public async onApplicationBootstrap(): Promise { @@ -46,32 +46,30 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { ctx: RequestContext, support: number ): Promise { - const initialMemory = process.memoryUsage().heapUsed; const itemSets = await this.getItemSets(ctx, support); - const best = itemSets.slice(-10); - const worst = itemSets.slice(0, 10); - const variantIds = [ + const best = itemSets.slice(0, 10); + const worst = itemSets.slice(-10); + const productIds = [ ...best.map((i) => i.items).flat(), ...worst.map((i) => i.items).flat(), ]; - const allVariants = await this.variantService.findByIds(ctx, variantIds); + const allProducts = productIds.length + ? await this.productService.findByIds(ctx, productIds) + : []; // Replace ID's with variant names const bestItemSets = best.map((is) => ({ items: is.items.map( - (id) => allVariants.find((v) => v.id === id)?.name || String(id) + (id) => allProducts.find((v) => v.id === id)?.name || String(id) ), support: is.support, })); const worstItemSets = worst.map((is) => ({ items: is.items.map( - (id) => allVariants.find((v) => v.id === id)?.name || String(id) + (id) => allProducts.find((v) => v.id === id)?.name || String(id) ), support: is.support, })); - const finalMemory = process.memoryUsage().heapUsed; - const memoryUsed = finalMemory - initialMemory; return { - memoryUsed: `${memoryUsed / 1024 / 1024} MB`, totalItemSets: itemSets.length, bestItemSets, worstItemSets, @@ -82,7 +80,7 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { ctx: RequestContext, support: number ): Promise[]> { - const result: Array<{ orderId: ID; productVariant_id: ID }> = + const result: Array<{ orderId: ID; productVariant_productId: ID }> = await this.connection .getRepository(ctx, OrderLine) .createQueryBuilder('orderLine') @@ -92,7 +90,7 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { .where('order.orderPlacedAt IS NOT NULL') .andWhere('channel.id = :channelId', { channelId: ctx.channelId }) .andWhere('productVariant.deletedAt IS NULL') - .select(['orderLine.orderId', 'productVariant.id']) + .select(['orderLine.orderId', 'productVariant.productId']) .orderBy('order.orderPlacedAt', 'DESC') .limit(500000) .getRawMany(); @@ -100,24 +98,28 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { const transactions = new Map(); result.forEach((row) => { const transactionsForOrder = transactions.get(row.orderId) || []; - transactionsForOrder.push(row['productVariant_id']); - transactions.set(row.orderId, transactionsForOrder); + const productId = row['productVariant_productId']; + if (!transactionsForOrder.includes(productId)) { + // Only add if productID is not already in the list + transactionsForOrder.push(productId); + transactions.set(row.orderId, transactionsForOrder); + } }); const matrix = Array.from(transactions.values()); const fpgrowth = new FPGrowth(support); const itemSets = (await fpgrowth.exec(matrix)) // Only combinations allowed .filter((is) => is.items.length > 1) - // Lowest support first, because if they make sense, the higher ones will too - .sort((a, b) => a.support - b.support); - const totalUniqueVariants = new Set(); + // High to low desc + .sort((a, b) => b.support - a.support); + const totalUniqueProducts = new Set(); itemSets.forEach((itemSet) => { itemSet.items.forEach((item) => { - totalUniqueVariants.add(item); + totalUniqueProducts.add(item); }); }); Logger.info( - `Found ${itemSets.length} item sets for ${totalUniqueVariants.size} variants from ${matrix.length} orders and ${result.length} order lines`, + `Found ${itemSets.length} item sets for ${totalUniqueProducts.size} variants from ${matrix.length} orders and ${result.length} order lines`, loggerCtx ); return itemSets; From 2c5386511a928e950a242fb782bdaae5f5327882 Mon Sep 17 00:00:00 2001 From: Martijn Date: Wed, 11 Dec 2024 16:16:17 +0100 Subject: [PATCH 03/11] feat(frequently-bought-together): bsl license and fpgrowth implementation --- .../LICENSE | 111 ++++++++++++++ .../README.md | 135 +++++++++++++++++- .../package.json | 7 +- .../src/api/api-extensions.ts | 35 +++++ ...equently-bought-together-admin.resolver.ts | 30 +++- .../src/generated-graphql-types.ts | 28 +++- .../frequently-bought-together.service.ts | 91 +++++++++--- .../src/services/util.spec.ts | 27 ++++ .../src/services/util.ts | 33 +++++ .../src/types.ts | 9 +- .../src/ui/providers.ts | 20 ++- .../test/dev-server.ts | 43 ++++-- .../test/e2e.spec.ts | 2 +- .../test/products-import.csv | 13 ++ 14 files changed, 544 insertions(+), 40 deletions(-) create mode 100644 packages/vendure-plugin-frequently-bought-together/LICENSE create mode 100644 packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts create mode 100644 packages/vendure-plugin-frequently-bought-together/src/services/util.ts create mode 100644 packages/vendure-plugin-frequently-bought-together/test/products-import.csv diff --git a/packages/vendure-plugin-frequently-bought-together/LICENSE b/packages/vendure-plugin-frequently-bought-together/LICENSE new file mode 100644 index 00000000..e19ab999 --- /dev/null +++ b/packages/vendure-plugin-frequently-bought-together/LICENSE @@ -0,0 +1,111 @@ +Checkout https://www.tldrlegal.com/license/business-source-license-bsl-1-1 +for a short summary of the BSL 1.1 license. +Disclaimer: the link above is only a short summary of the Full Text. The license below is leading. + +-------------------------------------------------------------------------------- + +Licensor: Pinelab + +Licensed Work: Pinelab Frequently Bought Together plugin for Vendure + The Licensed Work is Copyright © 2024 Pinelab + +Additional Use Grant: 1. License Purchase Requirement: The right to use the + Licensed Work in a production environment is granted only + when a valid license has been purchased from the + Vendure Plugin Marketplace. Proof of purchase must be + maintained and provided upon request by the Licensor. + + 2. Single Project Restriction: You are permitted to use + the Licensed Work in the production environment of only one + project. For the purposes of this License, a "project" is + defined as one or more server instances of the Vendure + application connected to a single production database. + Use of the Licensed Work in multiple projects or multiple + production databases is prohibited without obtaining an + additional license from the Licensor. + + The terms of the License will be governed by and construed + in accordance with Dutch law of the Netherlands. + +Change Date: Three years from release date + +Change License: GNU General Public License (GPL) v3 + +-------------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited production +use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under the +terms of the Change License, and the rights granted in the paragraph above +terminate. + +If your use of the Licensed Work does not comply with the requirements currently +in effect as described in this License, you must purchase a commercial license +from the Licensor, its affiliated entities, or authorized resellers, or you must +refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works of +the Licensed Work, are subject to this License. This License applies separately +for each version of the Licensed Work and the Change Date may vary for each +version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy of +the Licensed Work. If you receive the Licensed Work in original or modified form +from a third party, the terms and conditions set forth in this License apply to +your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other versions +of the Licensed Work. + +This License does not grant you any right in any trademark or logo of Licensor +or its affiliates (provided that you may use a trademark or logo of Licensor as +expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN +“AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS +OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE. + +MariaDB hereby grants you permission to use this License’s text to license your +works, and to refer to it using the trademark “Business Source License”, as long +as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. + +Notice + +The Business Source License (this document, or the "License") is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright © 2023 MariaDB plc, All Rights Reserved. +“Business Source License” is a trademark of MariaDB plc. \ No newline at end of file diff --git a/packages/vendure-plugin-frequently-bought-together/README.md b/packages/vendure-plugin-frequently-bought-together/README.md index 3da3d1f5..d82813d3 100644 --- a/packages/vendure-plugin-frequently-bought-together/README.md +++ b/packages/vendure-plugin-frequently-bought-together/README.md @@ -1,10 +1,137 @@ +// TODO + +- Check order of relations + # Frequently Bought Together Plugin ### [Official documentation here](https://pinelab-plugins.com/plugin/vendure-plugin-frequently-bought-together) -// TODO installation +This plugin finds products that are often bought together by looking at past orders. You can integrate these frequently bought together products on your storefront, and increase your average order value. + +## Installation + +To install the plugin, add it to your Vendure config and include its Admin UI extension in the Admin UI plugin: + +```ts +import { FrequentlyBoughtTogetherPlugin } from '@vendure-hub/pinelab-frequently-bought-together-plugin'; + +const vendureConfig = { + plugins: [ + FrequentlyBoughtTogetherPlugin.init({ + // Disable this in production! + experimentMode: true, + // Test this support level first. See below for more details. + supportLevel: 0.001, + }), + AdminUiPlugin.init({ + port: 3002, + route: 'admin', + app: compileUiExtensions({ + outputPath: path.join(__dirname, '__admin-ui'), + extensions: [FrequentlyBoughtTogetherPlugin.ui], + }), + }), + ], +}; +``` + +## Storefront usage + +You can get the related product via the shop API with the following query: + +```graphql +{ + product(id: 1) { + id + name + customFields { + frequentlyBoughtWith { + id + name + slug + variants { + sku + priceWithTax + } + } + } + } +} +``` + +## Experiment mode + +Each shop's optimal support level varies based on data density. For example, a shop with many variants and few orders requires a lower support level. To experiment with support levels: + +1. Start the server locally, and make sure you have set `experimentMode: true` in the plugin's init function. +2. Go to `http://localhost:3000/admin-api` or use a GraphQL client like Yaak to use the admin API +3. Execute the following query against the admin api: + +```graphql +{ + previewFrequentlyBoughtTogether(support: 0.1) { + # The peak amount of memory that was used during calculation. This should be a max of 80% of your worker instance + maxMemoryUsedInMB + # The different products that are included in the relations + uniqueProducts + # Total number of item sets + totalItemSets + # Most confident item sets + bestItemSets { + # E.g. ['product-1', 'product-5'] + items + # Support is the number of orders this combination was in + support + } + # Least confident item sets + worstItemSets { + items + support + } + } +} +``` + +When you have found your desired support level, you set it in the plugin: + +```ts + FrequentlyBoughtTogetherPlugin.init({ + // Disable experiment mode in production! + experimentMode: false, + supportLevel: 0.00005 + }), +``` + +1. Run the server again +2. Go to `/admin/catalog/products` +3. Click the three buttons at the top right and click `Calculate frequently bought together relations` + +The frequently bought together relations are now set on your products. + +Tips for Tweaking Support Levels: + +- Start high (e.g., `0.1`) and gradually reduce (`0.01`, `0.001`, etc.). +- Review the worst item sets: + - Increase the support level if they seem irrelevant. + - If support equals 1, it indicates a single order—a poor indicator of frequent purchases. +- Monitor memory usage to avoid exceeding worker RAM. + +## Channel specific support + +To set different support levels for channels: -// TODO experiment mode + support -// What does support mean? nr of orders +```ts + FrequentlyBoughtTogetherPlugin.init({ + // Disable experiment mode in production! + experimentMode: false, + supportLevel: (ctx) => { + if (ctx.channel.token === 'channel-with-lots-of-variants') { + return 0.000001 + } else { + return 0.0001 + } + } + }), +``` -// TODO channel specific support numbers +Use the `vendure-token` header to preview queries for specific channels. diff --git a/packages/vendure-plugin-frequently-bought-together/package.json b/packages/vendure-plugin-frequently-bought-together/package.json index dbdcbe65..fab26372 100644 --- a/packages/vendure-plugin-frequently-bought-together/package.json +++ b/packages/vendure-plugin-frequently-bought-together/package.json @@ -1,5 +1,5 @@ { - "name": "@pinelab/vendure-plugin-frequently-bought-together", + "name": "@vendure-hub/pinelab-frequently-bought-together-plugin", "version": "0.0.2", "description": "Increase average order value by suggesting frequently bought together products based on past orders. Also known as related products or product recommendations.", "keywords": [ @@ -11,7 +11,7 @@ "author": "Martijn van de Brug ", "homepage": "https://pinelab-plugins.com/", "repository": "https://github.com/Pinelab-studio/pinelab-vendure-plugins", - "license": "MIT", + "license": "SEE LICENSE IN FILE 'LICENSE'", "private": false, "publishConfig": { "access": "public" @@ -21,7 +21,8 @@ "files": [ "dist", "README.md", - "CHANGELOG.md" + "CHANGELOG.md", + "LICENSE" ], "scripts": { "build": "rimraf dist && yarn generate && tsc", diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts index 1d93a4a4..aaef0c9a 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts @@ -2,19 +2,54 @@ import gql from 'graphql-tag'; export const adminApiExtensions = gql` type FrequentlyBoughtTogetherPreview { + """ + The max memory used during the calculation. + Make sure this doesn't exceed your worker's memory limit. + process.memoryUsage().rss is used to calculate this. + """ + maxMemoryUsedInMB: Int! + """ + The total number of sets found. + """ totalItemSets: Int! + """ + The number of unique products for which a related product was found + """ + uniqueProducts: Int! + """ + The item sets with the most support + """ bestItemSets: [FrequentlyBoughtTogetherItemSet!]! + """ + The item sets with the worst support. If these make sense, the others probably do too. + """ worstItemSets: [FrequentlyBoughtTogetherItemSet!]! } + """ + An item set with a support value. + An item set is a combination of products which are frequently bought together, e.g. ['product-1', 'product-2', 'product-3'] + Support is the number of orders this combination was in + """ type FrequentlyBoughtTogetherItemSet { items: [String!] support: Int! } extend type Query { + """ + Preview the frequently bought together item sets, + to check what level of support is reasonable for your data set + """ previewFrequentlyBoughtTogether( support: Float! ): FrequentlyBoughtTogetherPreview! } + + extend type Mutation { + """ + Trigger the job to calculate and set frequently bought together products. + """ + triggerFrequentlyBoughtTogetherCalculation: Boolean! + } `; diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts index 0f6ade25..7044cffe 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts @@ -1,8 +1,17 @@ -import { Args, Query, Resolver } from '@nestjs/graphql'; +import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { Inject } from '@nestjs/common'; import { FrequentlyBoughtTogetherService } from '../services/frequently-bought-together.service'; -import { QueryPreviewFrequentlyBoughtTogetherArgs } from '../generated-graphql-types'; -import { Ctx, RequestContext, UserInputError } from '@vendure/core'; +import { + FrequentlyBoughtTogetherPreview, + QueryPreviewFrequentlyBoughtTogetherArgs, +} from '../generated-graphql-types'; +import { + Allow, + Ctx, + Permission, + RequestContext, + UserInputError, +} from '@vendure/core'; import { PluginInitOptions } from '../types'; import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS } from '../constants'; @@ -18,12 +27,23 @@ export class FrequentlyBoughtTogetherAdminResolver { async previewFrequentlyBoughtTogether( @Ctx() ctx: RequestContext, @Args() { support }: QueryPreviewFrequentlyBoughtTogetherArgs - ) { + ): Promise { if (!this.options.experimentMode) { throw new UserInputError( `This query is only available in experiment mode. Set 'expirementMode: true' in plugin's init()` ); } - return this.frequentlyBoughtTogetherService.previewItemSets(ctx, support); + return await this.frequentlyBoughtTogetherService.previewItemSets( + ctx, + support + ); + } + + @Mutation() + @Allow(Permission.UpdateSystem) + async triggerFrequentlyBoughtTogetherCalculation( + @Ctx() ctx: RequestContext + ): Promise { + return await this.frequentlyBoughtTogetherService.triggerCalculation(ctx); } } diff --git a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts index 4442147d..fc0db8a4 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts @@ -18,21 +18,47 @@ export type Scalars = { Float: number; }; +/** + * An item set with a support value. + * An item set is a combination of products which are frequently bought together, e.g. ['product-1', 'product-2', 'product-3'] + * Support is the number of orders this combination was in + */ export type FrequentlyBoughtTogetherItemSet = { __typename?: 'FrequentlyBoughtTogetherItemSet'; items?: Maybe>; - support: Scalars['Float']; + support: Scalars['Int']; }; export type FrequentlyBoughtTogetherPreview = { __typename?: 'FrequentlyBoughtTogetherPreview'; + /** The item sets with the most support */ bestItemSets: Array; + /** + * The max memory used during the calculation. + * Make sure this doesn't exceed your worker's memory limit. + * process.memoryUsage().rss is used to calculate this. + */ + maxMemoryUsedInMB: Scalars['Int']; + /** The total number of sets found. */ totalItemSets: Scalars['Int']; + /** The number of unique products for which a related product was found */ + uniqueProducts: Scalars['Int']; + /** The item sets with the worst support. If these make sense, the others probably do too. */ worstItemSets: Array; }; +export type Mutation = { + __typename?: 'Mutation'; + /** Trigger the job to calculate and set frequently bought together products. */ + triggerFrequentlyBoughtTogetherCalculation: Scalars['Boolean']; +}; + export type Query = { __typename?: 'Query'; + /** + * Preview the frequently bought together item sets, + * to check what level of support is reasonable for your data set + */ previewFrequentlyBoughtTogether: FrequentlyBoughtTogetherPreview; }; diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts index 831821e1..d1dc7fd3 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts @@ -10,19 +10,22 @@ import { SerializedRequestContext, TransactionalConnection, } from '@vendure/core'; -import { FPGrowth, Itemset } from 'node-fpgrowth'; +import { FPGrowth } from 'node-fpgrowth'; import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS, loggerCtx, } from '../constants'; import { FrequentlyBoughtTogetherPreview } from '../generated-graphql-types'; -import { PluginInitOptions } from '../types'; +import { + FrequentlyBoughtTogetherCalculationResult, + PluginInitOptions, +} from '../types'; +import { getRelatedProductsPerProduct } from './util'; @Injectable() export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { private jobQueue!: JobQueue<{ ctx: SerializedRequestContext; - someArg: string; }>; constructor( @@ -33,30 +36,68 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { private productService: ProductService ) {} - public async onApplicationBootstrap(): Promise { + async onApplicationBootstrap(): Promise { this.jobQueue = await this.jobQueueService.createQueue({ name: 'frequently-bought-together-calculation', - process: async () => { - // TODO - }, + process: async (job) => + this.createFrequentlyBoughtTogetherRelations( + RequestContext.deserialize(job.data.ctx) + ), }); } + /** + * Calculate frequently bought together relations and set on the products + */ + async createFrequentlyBoughtTogetherRelations( + ctx: RequestContext + ): Promise { + const suport = + typeof this.options.supportLevel === 'function' + ? this.options.supportLevel(ctx) + : this.options.supportLevel; + const { itemSets, uniqueProducts } = await this.getItemSets(ctx, suport); + const relatedProductsPerProduct = getRelatedProductsPerProduct(itemSets); + for (const [ + productId, + relatedProductIds, + ] of relatedProductsPerProduct.entries()) { + await this.productService.update(ctx, { + id: productId, + customFields: { + frequentlyBoughtWithIds: relatedProductIds, + }, + }); + Logger.debug( + `Set frequently bought together products for '${productId}' to [${relatedProductIds.join( + ',' + )}]`, + loggerCtx + ); + } + Logger.info( + `Set frequently bought together products for ${relatedProductsPerProduct.size} products`, + loggerCtx + ); + return uniqueProducts; + } + async previewItemSets( ctx: RequestContext, support: number ): Promise { - const itemSets = await this.getItemSets(ctx, support); + const { itemSets, maxMemoryUsedInMB, uniqueProducts } = + await this.getItemSets(ctx, support); const best = itemSets.slice(0, 10); const worst = itemSets.slice(-10); - const productIds = [ + const bestAndWorstProductIds = [ ...best.map((i) => i.items).flat(), ...worst.map((i) => i.items).flat(), ]; - const allProducts = productIds.length - ? await this.productService.findByIds(ctx, productIds) + const allProducts = bestAndWorstProductIds.length + ? await this.productService.findByIds(ctx, bestAndWorstProductIds) : []; - // Replace ID's with variant names + // Replace ID's with product names const bestItemSets = best.map((is) => ({ items: is.items.map( (id) => allProducts.find((v) => v.id === id)?.name || String(id) @@ -70,6 +111,8 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { support: is.support, })); return { + maxMemoryUsedInMB, + uniqueProducts, totalItemSets: itemSets.length, bestItemSets, worstItemSets, @@ -79,7 +122,9 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { private async getItemSets( ctx: RequestContext, support: number - ): Promise[]> { + ): Promise { + const rss = [0]; + rss.push(process.memoryUsage().rss); const result: Array<{ orderId: ID; productVariant_productId: ID }> = await this.connection .getRepository(ctx, OrderLine) @@ -94,6 +139,7 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { .orderBy('order.orderPlacedAt', 'DESC') .limit(500000) .getRawMany(); + rss.push(process.memoryUsage().rss); // Construct items per order in a map const transactions = new Map(); result.forEach((row) => { @@ -105,28 +151,41 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { transactions.set(row.orderId, transactionsForOrder); } }); + rss.push(process.memoryUsage().rss); const matrix = Array.from(transactions.values()); + rss.push(process.memoryUsage().rss); const fpgrowth = new FPGrowth(support); + rss.push(process.memoryUsage().rss); const itemSets = (await fpgrowth.exec(matrix)) // Only combinations allowed .filter((is) => is.items.length > 1) // High to low desc .sort((a, b) => b.support - a.support); + rss.push(process.memoryUsage().rss); const totalUniqueProducts = new Set(); itemSets.forEach((itemSet) => { itemSet.items.forEach((item) => { totalUniqueProducts.add(item); }); }); + rss.push(process.memoryUsage().rss); + const maxMemoryUsedInMB = Math.round(Math.max(...rss) / 1024 / 1024); Logger.info( - `Found ${itemSets.length} item sets for ${totalUniqueProducts.size} variants from ${matrix.length} orders and ${result.length} order lines`, + `Found ${itemSets.length} item sets for ${totalUniqueProducts.size} products from ${matrix.length} orders and ${result.length} order lines. Max memory used: ${maxMemoryUsedInMB}MB`, loggerCtx ); - return itemSets; + return { + itemSets, + maxMemoryUsedInMB, + uniqueProducts: totalUniqueProducts.size, + }; } /** * Create a job to calculate frequently bought together products */ - async triggerCalculation(): Promise {} + async triggerCalculation(ctx: RequestContext): Promise { + await this.jobQueue.add({ ctx: ctx.serialize() }); + return true; + } } diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts b/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts new file mode 100644 index 00000000..5a32a427 --- /dev/null +++ b/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts @@ -0,0 +1,27 @@ +import { describe, it, expect } from 'vitest'; +import { getRelatedProductsPerProduct } from './util'; // Adjust the import path as needed + +describe('getRelatedProductsPerProduct', () => { + it('should return related products for a given product', () => { + const itemSets = [ + { + support: 1, + items: [1, 2, 3], + }, + { + support: 99, + items: [2, 3, 4], + }, + { + support: 3, + items: [1, 3, 4], + }, + ]; + const result = getRelatedProductsPerProduct(itemSets); + // Should yield this specific order, because it should sort by support level + expect(result.get(1)).toEqual([3, 4, 2]); + expect(result.get(2)).toEqual([3, 4, 1]); + expect(result.get(3)).toEqual([2, 4, 1]); + expect(result.get(4)).toEqual([2, 3, 1]); + }); +}); diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/util.ts b/packages/vendure-plugin-frequently-bought-together/src/services/util.ts new file mode 100644 index 00000000..3ba6ffe5 --- /dev/null +++ b/packages/vendure-plugin-frequently-bought-together/src/services/util.ts @@ -0,0 +1,33 @@ +import { ID } from '@vendure/core'; +import { Itemset } from 'node-fpgrowth'; + +/** + * Construct a map of related products per product based on the item sets. + * + * E.g. [1,2] will add the relations for product 1 to [2] and for product 2 to [1] + */ +export function getRelatedProductsPerProduct( + itemSets: Itemset[] +): Map { + // Sort lowest to highest support + itemSets.sort((a, b) => b.support - a.support); + const relatedProductsPerProduct = new Map>(); + for (const itemSet of itemSets) { + for (const productId of itemSet.items) { + const relations = + relatedProductsPerProduct.get(productId) || new Set(); + itemSet.items.forEach((id) => { + if (id !== productId) { + // Only add if not self + relations.add(id); + } + }); + relatedProductsPerProduct.set(productId, relations); + } + } + return new Map( + Array.from(relatedProductsPerProduct.entries()).map( + ([productId, relations]) => [productId, Array.from(relations)] + ) + ); +} diff --git a/packages/vendure-plugin-frequently-bought-together/src/types.ts b/packages/vendure-plugin-frequently-bought-together/src/types.ts index 0e556697..68c248bd 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/types.ts @@ -1,4 +1,5 @@ -import { RequestContext } from '@vendure/core'; +import { ID, RequestContext } from '@vendure/core'; +import { Itemset } from 'node-fpgrowth'; /** * @description @@ -26,3 +27,9 @@ export interface PluginInitOptions { */ supportLevel: number | ((ctx: RequestContext) => number); } + +export interface FrequentlyBoughtTogetherCalculationResult { + itemSets: Itemset[]; + maxMemoryUsedInMB: number; + uniqueProducts: number; +} diff --git a/packages/vendure-plugin-frequently-bought-together/src/ui/providers.ts b/packages/vendure-plugin-frequently-bought-together/src/ui/providers.ts index 8ff06179..2f5a9292 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/ui/providers.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/ui/providers.ts @@ -2,6 +2,7 @@ import { addActionBarDropdownMenuItem, ModalService, } from '@vendure/admin-ui/core'; +import gql from 'graphql-tag'; export default [ addActionBarDropdownMenuItem({ @@ -10,7 +11,24 @@ export default [ locationId: 'product-list', icon: 'switch', onClick: async (event, { dataService, notificationService, injector }) => { - console.log('Generate frequently-bought-together products'); + dataService + .mutate( + gql` + mutation TriggerFrequentlyBoughtTogetherCalculation { + triggerFrequentlyBoughtTogetherCalculation + } + ` + ) + .subscribe({ + next: () => { + notificationService.success('Calculation triggered'); + }, + error: (err) => { + notificationService.error( + `Error starting calculation: ${err.message}` + ); + }, + }); }, }), ]; diff --git a/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts b/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts index 31f47520..6c5d344b 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts @@ -35,16 +35,17 @@ require('dotenv').config(); plugins: [ FrequentlyBoughtTogetherPlugin.init({ experimentMode: true, + supportLevel: 0.001, }), DefaultSearchPlugin, AdminUiPlugin.init({ port: 3002, route: 'admin', - // app: compileUiExtensions({ - // outputPath: path.join(__dirname, '__admin-ui'), - // extensions: [FrequentlyBoughtTogetherPlugin.ui], - // devMode: true, - // }), + app: compileUiExtensions({ + outputPath: path.join(__dirname, '__admin-ui'), + extensions: [FrequentlyBoughtTogetherPlugin.ui], + devMode: true, + }), }), ], }); @@ -59,10 +60,36 @@ require('dotenv').config(); }, ], }, - productsCsvPath: '../test/src/products-import.csv', + productsCsvPath: './test/products-import.csv', }); - await createSettledOrder(shopClient, 1); - await createSettledOrder(shopClient, 1); await createSettledOrder(shopClient, 1, true, [{ id: 'T_1', quantity: 10 }]); + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_5', quantity: 10 }, + { id: 'T_1', quantity: 10 }, + ]); + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_5', quantity: 10 }, + { id: 'T_1', quantity: 10 }, + ]); + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_5', quantity: 10 }, + { id: 'T_1', quantity: 10 }, + ]); + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_6', quantity: 10 }, + { id: 'T_10', quantity: 10 }, + ]); + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_6', quantity: 10 }, + { id: 'T_10', quantity: 10 }, + ]); + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_6', quantity: 10 }, + { id: 'T_10', quantity: 10 }, + ]); + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_6', quantity: 10 }, + { id: 'T_10', quantity: 10 }, + ]); })(); diff --git a/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts b/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts index 629750b5..acd48b39 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts @@ -34,7 +34,7 @@ beforeAll(async () => { ({ server, adminClient, shopClient } = createTestEnvironment(config)); const serverStart = server.init({ initialData: initialData as InitialData, - productsCsvPath: '../test/src/products-import.csv', + productsCsvPath: './test/products-import.csv', }); await expect(serverStart).resolves.toEqual(undefined); }, 60000); diff --git a/packages/vendure-plugin-frequently-bought-together/test/products-import.csv b/packages/vendure-plugin-frequently-bought-together/test/products-import.csv new file mode 100644 index 00000000..73512db7 --- /dev/null +++ b/packages/vendure-plugin-frequently-bought-together/test/products-import.csv @@ -0,0 +1,13 @@ +name , slug , description , assets , facets , optionGroups , optionValues , sku , price , taxCategory , stockOnHand , trackInventory , variantAssets , variantFacets +Laptop , laptop , "Now equipped with seventh-generation Intel Core processors, Laptop is snappier than ever. From daily tasks like launching apps and opening files to more advanced computing, you can power through your day thanks to faster SSDs and Turbo Boost processing up to 3.6GHz." , , , "screen size|RAM" , "13 inch|8GB" , L2201308 , 1299.00 , standard , 100 , false , , category:electronics + , , , , , , "15 inch|8GB" , L2201508 , 1399.00 , standard , 100 , false , , category:computers + , , , , , , "13 inch|16GB" , L2201316 , 2199.00 , standard , 100 , false , , category:electronics + , , , , , , "15 inch|16GB" , L2201516 , 2299.00 , standard , 100 , false , , category:electronics +Cars , car , "Car is snappier than ever." , , , "tire|frequency" , "1 M|8 Hz" , C2201308 , 120099.00 , standard , 100 , false , , category:electronics + , , , , , , "2 M|16 Hz" , C2201508 , 139009.00 , standard , 100 , false , , category:computers + , , , , , , "1 M|16 Hz" , C2201316 , 219009.00 , standard , 100 , false , , category:electronics + , , , , , , "2 M|8 Hz" , C2201516 , 229009.00 , standard , 100 , false , , category:electronics +Motors , motor , "All Badjajs are motors. Not all Motors are badjaj" , , , "color|smallness" , "Red|small" , M2201308 , 1760099.00 , standard , 100 , false , , category:others + , , , , , , "Green|small" , M2201508 , 179009.00 , standard , 100 , false , , category:others + , , , , , , "Red|large" , M2201316 , 129009.00 , standard , 100 , false , , category:electronics + , , , , , , "Green|large" , M2201516 , 123432009.00 , standard , 100 , false , , category:others \ No newline at end of file From b028c21bb6988afeecb6fb427c2b5aeae5e3597a Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 12 Dec 2024 13:45:05 +0100 Subject: [PATCH 04/11] feat(frequently-bought-together): e2e test and relation sorting --- .../README.md | 25 +++--- .../package.json | 3 +- .../src/api/api-extensions.ts | 6 ++ ...requently-bought-together-shop.resolver.ts | 24 ++++++ .../src/custom-fields-types.ts | 5 ++ .../src/frequently-bought-together.plugin.ts | 74 ++++++++++++++-- .../src/generated-graphql-types.ts | 7 +- .../frequently-bought-together.service.ts | 70 ++++++++++++--- .../src/services/util.spec.ts | 25 ++++-- .../src/services/util.ts | 26 +++--- .../src/types.ts | 12 ++- .../test/dev-server.ts | 29 ++----- .../test/e2e.spec.ts | 85 +++++++++++++++++-- .../test/products-import.csv | 11 +-- .../test/queries.ts | 8 +- yarn.lock | 2 +- 16 files changed, 311 insertions(+), 101 deletions(-) create mode 100644 packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-shop.resolver.ts diff --git a/packages/vendure-plugin-frequently-bought-together/README.md b/packages/vendure-plugin-frequently-bought-together/README.md index d82813d3..9761f1e9 100644 --- a/packages/vendure-plugin-frequently-bought-together/README.md +++ b/packages/vendure-plugin-frequently-bought-together/README.md @@ -1,6 +1,7 @@ // TODO - Check order of relations +- License check # Frequently Bought Together Plugin @@ -10,7 +11,7 @@ This plugin finds products that are often bought together by looking at past ord ## Installation -To install the plugin, add it to your Vendure config and include its Admin UI extension in the Admin UI plugin: +1. To install the plugin, add it to your Vendure config and include its Admin UI extension in the Admin UI plugin: ```ts import { FrequentlyBoughtTogetherPlugin } from '@vendure-hub/pinelab-frequently-bought-together-plugin'; @@ -35,30 +36,30 @@ const vendureConfig = { }; ``` +2. Run a database migration to add the custom fields to your database. + ## Storefront usage You can get the related product via the shop API with the following query: ```graphql { - product(id: 1) { + product(id: 2) { id name - customFields { - frequentlyBoughtWith { - id - name - slug - variants { - sku - priceWithTax - } - } + slug + frequentlyBoughtWith { + id + name + slug } } } ``` +Product relations in the Shop API are sorted by support, meaning that the most bought together products will appear first in the list. +The admin UI shows relations in random order due to the unordered nature of SQL relations. + ## Experiment mode Each shop's optimal support level varies based on data density. For example, a shop with many variants and few orders requires a lower support level. To experiment with support levels: diff --git a/packages/vendure-plugin-frequently-bought-together/package.json b/packages/vendure-plugin-frequently-bought-together/package.json index fab26372..a71642ea 100644 --- a/packages/vendure-plugin-frequently-bought-together/package.json +++ b/packages/vendure-plugin-frequently-bought-together/package.json @@ -25,13 +25,14 @@ "LICENSE" ], "scripts": { - "build": "rimraf dist && yarn generate && tsc", + "build": "rimraf dist && yarn generate && tsc && copyfiles -u 1 'src/ui/**/*' dist/", "start": "yarn ts-node test/dev-server.ts", "generate": "graphql-codegen --config codegen.yml", "test": "vitest run --bail 1", "lint": "eslint ." }, "dependencies": { + "@vendure-hub/vendure-hub-plugin": "^0.0.2", "catch-unknown": "^2.0.0", "node-fpgrowth": "^1.2.1" } diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts index aaef0c9a..9dd9a065 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts @@ -53,3 +53,9 @@ export const adminApiExtensions = gql` triggerFrequentlyBoughtTogetherCalculation: Boolean! } `; + +export const shopApiExtensions = gql` + extend type Product { + frequentlyBoughtWith: [Product!]! + } +`; diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-shop.resolver.ts b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-shop.resolver.ts new file mode 100644 index 00000000..db92300c --- /dev/null +++ b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-shop.resolver.ts @@ -0,0 +1,24 @@ +import { Inject } from '@nestjs/common'; +import { Parent, ResolveField, Resolver } from '@nestjs/graphql'; +import { Ctx, Product, RequestContext } from '@vendure/core'; +import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS } from '../constants'; +import { FrequentlyBoughtTogetherService } from '../services/frequently-bought-together.service'; +import { PluginInitOptions } from '../types'; + +@Resolver() +export class FrequentlyBoughtTogetherShopResolver { + constructor( + @Inject(FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS) + private options: PluginInitOptions, + private frequentlyBoughtTogetherService: FrequentlyBoughtTogetherService + ) {} + + @ResolveField('frequentlyBoughtWith') + @Resolver('Product') + async frequentlyBoughtWith( + @Ctx() ctx: RequestContext, + @Parent() product: Product + ): Promise { + return this.frequentlyBoughtTogetherService.getSortedProducts(ctx, product); + } +} diff --git a/packages/vendure-plugin-frequently-bought-together/src/custom-fields-types.ts b/packages/vendure-plugin-frequently-bought-together/src/custom-fields-types.ts index 6ff0000f..3c436de4 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/custom-fields-types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/custom-fields-types.ts @@ -7,5 +7,10 @@ import { declare module '@vendure/core' { interface CustomProductFields { frequentlyBoughtWith?: Product[]; + /** + * Stringified JSON text of Support[] + * This field holds the support level per product, so that we can return a sorted list of products based on their support level + */ + frequentlyBoughtWithSupport?: string; } } diff --git a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts index 4acda1b9..1ff82a90 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts @@ -1,5 +1,6 @@ import { LanguageCode, + Logger, PluginCommonModule, Product, Type, @@ -7,15 +8,30 @@ import { } from '@vendure/core'; import { AdminUiExtension } from '@vendure/ui-devkit/compiler'; -import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS } from './constants'; +import { + FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS, + loggerCtx, +} from './constants'; import { FrequentlyBoughtTogetherService } from './services/frequently-bought-together.service'; import { PluginInitOptions } from './types'; import path from 'path'; -import { adminApiExtensions } from './api/api-extensions'; +import { adminApiExtensions, shopApiExtensions } from './api/api-extensions'; import { FrequentlyBoughtTogetherAdminResolver } from './api/frequently-bought-together-admin.resolver'; +import { OnApplicationBootstrap } from '@nestjs/common'; +import { + LicenseService, + VendureHubPlugin, +} from '@vendure-hub/vendure-hub-plugin'; +import { asError } from 'catch-unknown'; +import { FrequentlyBoughtTogetherShopResolver } from './api/frequently-bought-together-shop.resolver'; +/** + * Increase revenue by cross selling frequently bought together products. + * + * @category Plugin + */ @VendurePlugin({ - imports: [PluginCommonModule], + imports: [PluginCommonModule, VendureHubPlugin], providers: [ { provide: FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS, @@ -24,6 +40,7 @@ import { FrequentlyBoughtTogetherAdminResolver } from './api/frequently-bought-t FrequentlyBoughtTogetherService, ], configuration: (config) => { + // Set custom product to product relation config.customFields.Product.push({ name: 'frequentlyBoughtWith', type: 'relation', @@ -39,12 +56,20 @@ import { FrequentlyBoughtTogetherAdminResolver } from './api/frequently-bought-t ], list: true, entity: Product, - public: true, + public: false, readonly: false, eager: false, nullable: true, ui: { tab: FrequentlyBoughtTogetherPlugin.options.customFieldUiTab }, }); + // Set custom field for storing the support per product + config.customFields.Product.push({ + name: 'frequentlyBoughtWithSupport', + type: 'text', + internal: true, + public: false, + nullable: true, + }); return config; }, compatibility: '>=2.2.0', @@ -52,17 +77,52 @@ import { FrequentlyBoughtTogetherAdminResolver } from './api/frequently-bought-t schema: adminApiExtensions, resolvers: [FrequentlyBoughtTogetherAdminResolver], }, + shopApiExtensions: { + schema: shopApiExtensions, + resolvers: [FrequentlyBoughtTogetherShopResolver], + }, }) -export class FrequentlyBoughtTogetherPlugin { +export class FrequentlyBoughtTogetherPlugin implements OnApplicationBootstrap { static options: PluginInitOptions = { - maxRelatedProducts: 5, + licenseKey: '', customFieldUiTab: 'Related products', experimentMode: false, supportLevel: 0.01, + hasValidLicense: false, }; + constructor(private licenseService: LicenseService) {} + + onApplicationBootstrap() { + this.licenseService + .checkLicenseKey( + FrequentlyBoughtTogetherPlugin.options.licenseKey, + '@vendure-hub/pinelab-frequently-bought-together-plugin' + ) + .then((result) => { + if (!result.valid) { + Logger.error( + `Your license key is invalid. Make sure to obtain a valid license key from the Vendure Hub if you want to keep using this plugin.`, + loggerCtx + ); + FrequentlyBoughtTogetherPlugin.options.hasValidLicense = false; + } else { + FrequentlyBoughtTogetherPlugin.options.hasValidLicense = true; + } + }) + .catch((err) => { + Logger.error( + `Error checking license key: ${ + asError(err).message + }. Some functionality might be disabled`, + loggerCtx + ); + FrequentlyBoughtTogetherPlugin.options.hasValidLicense = false; + }); + } + static init( - options: Partial + options: Partial> ): Type { this.options = { ...this.options, diff --git a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts index fc0db8a4..7df1631c 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts @@ -39,7 +39,7 @@ export type FrequentlyBoughtTogetherPreview = { * process.memoryUsage().rss is used to calculate this. */ maxMemoryUsedInMB: Scalars['Int']; - /** The total number of sets found. */ + /** The total number of sets found. */ totalItemSets: Scalars['Int']; /** The number of unique products for which a related product was found */ uniqueProducts: Scalars['Int']; @@ -53,6 +53,11 @@ export type Mutation = { triggerFrequentlyBoughtTogetherCalculation: Scalars['Boolean']; }; +export type Product = { + __typename?: 'Product'; + frequentlyBoughtWith: Array; +}; + export type Query = { __typename?: 'Query'; /** diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts index d1dc7fd3..f6afb5ee 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts @@ -1,15 +1,19 @@ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { Inject, Injectable, OnApplicationBootstrap } from '@nestjs/common'; import { + EntityHydrator, ID, JobQueue, JobQueueService, Logger, OrderLine, + Product, ProductService, RequestContext, SerializedRequestContext, TransactionalConnection, } from '@vendure/core'; +import { asError } from 'catch-unknown'; import { FPGrowth } from 'node-fpgrowth'; import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS, @@ -19,6 +23,7 @@ import { FrequentlyBoughtTogetherPreview } from '../generated-graphql-types'; import { FrequentlyBoughtTogetherCalculationResult, PluginInitOptions, + Support, } from '../types'; import { getRelatedProductsPerProduct } from './util'; @@ -33,7 +38,8 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { @Inject(FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS) private options: PluginInitOptions, private jobQueueService: JobQueueService, - private productService: ProductService + private productService: ProductService, + private entityHydrator: EntityHydrator ) {} async onApplicationBootstrap(): Promise { @@ -42,7 +48,15 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { process: async (job) => this.createFrequentlyBoughtTogetherRelations( RequestContext.deserialize(job.data.ctx) - ), + ).catch((e) => { + Logger.error( + `Failed to calculate frequently bought together relations: ${ + asError(e).message + }`, + loggerCtx + ); + throw e; + }), }); } @@ -60,23 +74,26 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { const relatedProductsPerProduct = getRelatedProductsPerProduct(itemSets); for (const [ productId, - relatedProductIds, + supportPerProduct, ] of relatedProductsPerProduct.entries()) { - await this.productService.update(ctx, { + await this.connection.getRepository(ctx, Product).save({ id: productId, customFields: { - frequentlyBoughtWithIds: relatedProductIds, + frequentlyBoughtWith: supportPerProduct.map((s) => ({ + id: s.productId, + })), + frequentlyBoughtWithSupport: JSON.stringify(supportPerProduct), }, }); Logger.debug( - `Set frequently bought together products for '${productId}' to [${relatedProductIds.join( - ',' - )}]`, + `Set frequently bought together products for '${productId}' to [${supportPerProduct + .map((s) => s.productId) + .join(',')}]`, loggerCtx ); } Logger.info( - `Set frequently bought together products for ${relatedProductsPerProduct.size} products`, + `Set frequently bought together relations for ${relatedProductsPerProduct.size} products`, loggerCtx ); return uniqueProducts; @@ -119,6 +136,39 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { }; } + /** + * Sort the related products by their support level, + * so that the most frequently bought together products are first + */ + async getSortedProducts( + ctx: RequestContext, + product: Product + ): Promise { + await this.entityHydrator.hydrate(ctx, product, { + relations: ['customFields.frequentlyBoughtWith'], + }); + if (!product.customFields.frequentlyBoughtWith) { + return []; + } + const supportPerProduct: Partial[] = JSON.parse( + product.customFields.frequentlyBoughtWithSupport || '[]' + ); + if (!Array.isArray(supportPerProduct)) { + Logger.error( + `product.customFields.frequentlyBoughtWithSupport for product '${product.id}' is not an array`, + loggerCtx + ); + return []; + } + return product.customFields.frequentlyBoughtWith?.sort((a, b) => { + const supportA = + supportPerProduct.find((s) => s.productId === a.id)?.support || 0; + const supportB = + supportPerProduct.find((s) => s.productId === b.id)?.support || 0; + return supportB - supportA; + }); + } + private async getItemSets( ctx: RequestContext, support: number @@ -185,7 +235,7 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { * Create a job to calculate frequently bought together products */ async triggerCalculation(ctx: RequestContext): Promise { - await this.jobQueue.add({ ctx: ctx.serialize() }); + await this.jobQueue.add({ ctx: ctx.serialize() }, { retries: 5 }); return true; } } diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts b/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts index 5a32a427..33a069f8 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts @@ -18,10 +18,25 @@ describe('getRelatedProductsPerProduct', () => { }, ]; const result = getRelatedProductsPerProduct(itemSets); - // Should yield this specific order, because it should sort by support level - expect(result.get(1)).toEqual([3, 4, 2]); - expect(result.get(2)).toEqual([3, 4, 1]); - expect(result.get(3)).toEqual([2, 4, 1]); - expect(result.get(4)).toEqual([2, 3, 1]); + expect(result.get(1)).toEqual([ + { productId: 3, support: 3 }, + { productId: 4, support: 3 }, + { productId: 2, support: 1 }, + ]); + expect(result.get(2)).toEqual([ + { productId: 3, support: 99 }, + { productId: 4, support: 99 }, + { productId: 1, support: 1 }, + ]); + expect(result.get(3)).toEqual([ + { productId: 2, support: 99 }, + { productId: 4, support: 99 }, + { productId: 1, support: 3 }, + ]); + expect(result.get(4)).toEqual([ + { productId: 2, support: 99 }, + { productId: 3, support: 99 }, + { productId: 1, support: 3 }, + ]); }); }); diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/util.ts b/packages/vendure-plugin-frequently-bought-together/src/services/util.ts index 3ba6ffe5..77bbd383 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/util.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/util.ts @@ -1,33 +1,27 @@ import { ID } from '@vendure/core'; import { Itemset } from 'node-fpgrowth'; +import { Support } from '../types'; /** - * Construct a map of related products per product based on the item sets. - * - * E.g. [1,2] will add the relations for product 1 to [2] and for product 2 to [1] + * Construct a map of related products with support per product based on the item sets. */ export function getRelatedProductsPerProduct( itemSets: Itemset[] -): Map { +): Map { // Sort lowest to highest support itemSets.sort((a, b) => b.support - a.support); - const relatedProductsPerProduct = new Map>(); + const relatedProductsPerProduct = new Map(); for (const itemSet of itemSets) { for (const productId of itemSet.items) { - const relations = - relatedProductsPerProduct.get(productId) || new Set(); - itemSet.items.forEach((id) => { - if (id !== productId) { - // Only add if not self - relations.add(id); + const relations = relatedProductsPerProduct.get(productId) || []; + itemSet.items.forEach((itemId) => { + const alreadyHasProduct = relations.some((r) => r.productId === itemId); + if (itemId !== productId && !alreadyHasProduct) { + relations.push({ productId: itemId, support: itemSet.support }); } }); relatedProductsPerProduct.set(productId, relations); } } - return new Map( - Array.from(relatedProductsPerProduct.entries()).map( - ([productId, relations]) => [productId, Array.from(relations)] - ) - ); + return relatedProductsPerProduct; } diff --git a/packages/vendure-plugin-frequently-bought-together/src/types.ts b/packages/vendure-plugin-frequently-bought-together/src/types.ts index 68c248bd..03ee4326 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/types.ts @@ -7,10 +7,10 @@ import { Itemset } from 'node-fpgrowth'; */ export interface PluginInitOptions { /** - * The maximum number of related products that are automatically added. - * Manual selection can exceed this limit + * @description + * License key obtained from the Vendure Hub */ - maxRelatedProducts: number; + licenseKey: string; /** * Defines in what tab the custom field should be displayed in the admin UI. * Can be an existing tab. @@ -26,6 +26,7 @@ export interface PluginInitOptions { * Should be between 0 and 1 */ supportLevel: number | ((ctx: RequestContext) => number); + hasValidLicense: boolean; } export interface FrequentlyBoughtTogetherCalculationResult { @@ -33,3 +34,8 @@ export interface FrequentlyBoughtTogetherCalculationResult { maxMemoryUsedInMB: number; uniqueProducts: number; } + +export interface Support { + productId: ID; + support: number; +} diff --git a/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts b/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts index 6c5d344b..b9bf51a1 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts @@ -63,33 +63,20 @@ require('dotenv').config(); productsCsvPath: './test/products-import.csv', }); - await createSettledOrder(shopClient, 1, true, [{ id: 'T_1', quantity: 10 }]); await createSettledOrder(shopClient, 1, true, [ - { id: 'T_5', quantity: 10 }, - { id: 'T_1', quantity: 10 }, + { id: 'T_1', quantity: 1 }, + { id: 'T_2', quantity: 1 }, ]); await createSettledOrder(shopClient, 1, true, [ - { id: 'T_5', quantity: 10 }, - { id: 'T_1', quantity: 10 }, + { id: 'T_1', quantity: 1 }, + { id: 'T_3', quantity: 1 }, ]); await createSettledOrder(shopClient, 1, true, [ - { id: 'T_5', quantity: 10 }, - { id: 'T_1', quantity: 10 }, + { id: 'T_1', quantity: 1 }, + { id: 'T_3', quantity: 1 }, ]); await createSettledOrder(shopClient, 1, true, [ - { id: 'T_6', quantity: 10 }, - { id: 'T_10', quantity: 10 }, - ]); - await createSettledOrder(shopClient, 1, true, [ - { id: 'T_6', quantity: 10 }, - { id: 'T_10', quantity: 10 }, - ]); - await createSettledOrder(shopClient, 1, true, [ - { id: 'T_6', quantity: 10 }, - { id: 'T_10', quantity: 10 }, - ]); - await createSettledOrder(shopClient, 1, true, [ - { id: 'T_6', quantity: 10 }, - { id: 'T_10', quantity: 10 }, + { id: 'T_2', quantity: 1 }, + { id: 'T_3', quantity: 1 }, ]); })(); diff --git a/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts b/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts index acd48b39..a3e91fcd 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts @@ -17,6 +17,10 @@ import { expect, describe, beforeAll, afterAll, it, vi, test } from 'vitest'; import { FrequentlyBoughtTogetherPlugin } from '../src'; import gql from 'graphql-tag'; import { GetProductById, UpdateProductMutation } from './queries'; +import { createSettledOrder } from '../../test/src/shop-utils'; +import { waitFor } from '../../test/src/test-helpers'; +import { testPaymentMethod } from '../../test/src/test-payment-method'; + let server: TestServer; let adminClient: SimpleGraphQLClient; let shopClient: SimpleGraphQLClient; @@ -25,15 +29,22 @@ beforeAll(async () => { registerInitializer('sqljs', new SqljsInitializer('__data__')); const config = mergeConfig(testConfig, { logger: new DefaultLogger({ level: LogLevel.Debug }), - plugins: [ - FrequentlyBoughtTogetherPlugin.init({ - maxRelatedProducts: 10, - }), - ], + paymentOptions: { + paymentMethodHandlers: [testPaymentMethod], + }, + plugins: [FrequentlyBoughtTogetherPlugin.init({})], }); ({ server, adminClient, shopClient } = createTestEnvironment(config)); const serverStart = server.init({ - initialData: initialData as InitialData, + initialData: { + ...initialData, + paymentMethods: [ + { + name: testPaymentMethod.code, + handler: { code: testPaymentMethod.code, arguments: [] }, + }, + ], + }, productsCsvPath: './test/products-import.csv', }); await expect(serverStart).resolves.toEqual(undefined); @@ -47,7 +58,7 @@ it('Server should start', async () => { await expect(server.app.getHttpServer()).toBeDefined(); }); -it('Adds a related product', async () => { +it('Manually adds a related product', async () => { await adminClient.asSuperAdmin(); const { updateProduct } = await adminClient.query(UpdateProductMutation, { input: { @@ -62,6 +73,62 @@ it('Adds a related product', async () => { it('Exposes the related product via the Shop API', async () => { const { product } = await shopClient.query(GetProductById, { id: 'T_1' }); - expect(product.customFields.frequentlyBoughtWith[0].id).toBe('T_1'); - expect(product.customFields.frequentlyBoughtWith[0].name).toBe('Laptop'); + expect(product.frequentlyBoughtWith[0].id).toBe('T_1'); + expect(product.frequentlyBoughtWith[0].name).toBe('Laptop'); +}); + +it('Places sample orders', async () => { + // Each variant belongs to a different product for this test + // T_1 is bought together with T_3 twice + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_1', quantity: 1 }, + { id: 'T_3', quantity: 1 }, + ]); + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_1', quantity: 1 }, + { id: 'T_2', quantity: 1 }, + { id: 'T_3', quantity: 1 }, + ]); + // T_2 is bought together with T_3 once + await createSettledOrder(shopClient, 1, true, [ + { id: 'T_2', quantity: 1 }, + { id: 'T_3', quantity: 1 }, + ]); + /* This yields the following transaction matrix + * [1,3] + * [1,2,3] + * [2,3] + * So product 1 should give us 3 and 2 + */ +}); + +it('Triggers bought together calculation via admin API', async () => { + await adminClient.query( + gql` + mutation { + triggerFrequentlyBoughtTogetherCalculation + } + ` + ); +}); + +it('Get sorted relations via shop API', async () => { + // We have to wait for async job processing to complete + const product1 = await waitFor(async () => { + const { product } = await shopClient.query(GetProductById, { id: 'T_1' }); + if (product.frequentlyBoughtWith.length >= 2) { + return product; + } + }); + // Should get [3,2] for T_1 + expect(product1.frequentlyBoughtWith.length).toBe(2); + expect(product1.frequentlyBoughtWith[0].id).toBe('T_3'); + expect(product1.frequentlyBoughtWith[1].id).toBe('T_2'); + const { product: product2 } = await shopClient.query(GetProductById, { + id: 'T_2', + }); + // Should get [3,1] for T_2 + expect(product2.frequentlyBoughtWith.length).toBe(2); + expect(product2.frequentlyBoughtWith[0].id).toBe('T_3'); + expect(product2.frequentlyBoughtWith[1].id).toBe('T_1'); }); diff --git a/packages/vendure-plugin-frequently-bought-together/test/products-import.csv b/packages/vendure-plugin-frequently-bought-together/test/products-import.csv index 73512db7..f3b6099d 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/products-import.csv +++ b/packages/vendure-plugin-frequently-bought-together/test/products-import.csv @@ -1,13 +1,4 @@ name , slug , description , assets , facets , optionGroups , optionValues , sku , price , taxCategory , stockOnHand , trackInventory , variantAssets , variantFacets Laptop , laptop , "Now equipped with seventh-generation Intel Core processors, Laptop is snappier than ever. From daily tasks like launching apps and opening files to more advanced computing, you can power through your day thanks to faster SSDs and Turbo Boost processing up to 3.6GHz." , , , "screen size|RAM" , "13 inch|8GB" , L2201308 , 1299.00 , standard , 100 , false , , category:electronics - , , , , , , "15 inch|8GB" , L2201508 , 1399.00 , standard , 100 , false , , category:computers - , , , , , , "13 inch|16GB" , L2201316 , 2199.00 , standard , 100 , false , , category:electronics - , , , , , , "15 inch|16GB" , L2201516 , 2299.00 , standard , 100 , false , , category:electronics Cars , car , "Car is snappier than ever." , , , "tire|frequency" , "1 M|8 Hz" , C2201308 , 120099.00 , standard , 100 , false , , category:electronics - , , , , , , "2 M|16 Hz" , C2201508 , 139009.00 , standard , 100 , false , , category:computers - , , , , , , "1 M|16 Hz" , C2201316 , 219009.00 , standard , 100 , false , , category:electronics - , , , , , , "2 M|8 Hz" , C2201516 , 229009.00 , standard , 100 , false , , category:electronics -Motors , motor , "All Badjajs are motors. Not all Motors are badjaj" , , , "color|smallness" , "Red|small" , M2201308 , 1760099.00 , standard , 100 , false , , category:others - , , , , , , "Green|small" , M2201508 , 179009.00 , standard , 100 , false , , category:others - , , , , , , "Red|large" , M2201316 , 129009.00 , standard , 100 , false , , category:electronics - , , , , , , "Green|large" , M2201516 , 123432009.00 , standard , 100 , false , , category:others \ No newline at end of file +Motors , motor , "All Badjajs are motors. Not all Motors are badjaj" , , , "color|smallness" , "Red|small" , M2201308 , 1760099.00 , standard , 100 , false , , category:others \ No newline at end of file diff --git a/packages/vendure-plugin-frequently-bought-together/test/queries.ts b/packages/vendure-plugin-frequently-bought-together/test/queries.ts index e9493289..62f0a945 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/queries.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/queries.ts @@ -17,11 +17,9 @@ export const GetProductById = gql` query GetProduct($id: ID!) { product(id: $id) { id - customFields { - frequentlyBoughtWith { - id - name - } + frequentlyBoughtWith { + id + name } } } diff --git a/yarn.lock b/yarn.lock index b9168014..16ee2d1e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5540,7 +5540,7 @@ "@vendure-hub/vendure-hub-plugin@^0.0.2": version "0.0.2" - resolved "https://registry.next.vendure.io/@vendure-hub/vendure-hub-plugin/-/vendure-hub-plugin-0.0.2.tgz" + resolved "https://registry.vendure.io/@vendure-hub/vendure-hub-plugin/-/vendure-hub-plugin-0.0.2.tgz#6fc261f9121b353941fa4ff3a475e332035680ad" integrity sha512-SmZ/HiQlVWkcVEErinW5MJIBHp9VCjH8F31Iyyynta1/kusD6h1m8KLCxeUFEvmuAMfzSOERMMqfNqMtpJ1UVA== dependencies: node-fetch "^2.6.1" From bb6ba0b91d9af5df27ac6bfeace1dcc512739a73 Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 12 Dec 2024 13:58:19 +0100 Subject: [PATCH 05/11] feat(frequently-bought-together): licens restrictiomn --- ...requently-bought-together-shop.resolver.ts | 21 ++++++++++++++++--- .../src/frequently-bought-together.plugin.ts | 7 ++++++- .../test/dev-server.ts | 1 + .../test/e2e.spec.ts | 6 +++++- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-shop.resolver.ts b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-shop.resolver.ts index db92300c..b3a12fbe 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-shop.resolver.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-shop.resolver.ts @@ -1,7 +1,10 @@ import { Inject } from '@nestjs/common'; import { Parent, ResolveField, Resolver } from '@nestjs/graphql'; -import { Ctx, Product, RequestContext } from '@vendure/core'; -import { FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS } from '../constants'; +import { Ctx, Logger, Product, RequestContext } from '@vendure/core'; +import { + FREQUENTLY_BOUGHT_TOGETHER_PLUGIN_OPTIONS, + loggerCtx, +} from '../constants'; import { FrequentlyBoughtTogetherService } from '../services/frequently-bought-together.service'; import { PluginInitOptions } from '../types'; @@ -19,6 +22,18 @@ export class FrequentlyBoughtTogetherShopResolver { @Ctx() ctx: RequestContext, @Parent() product: Product ): Promise { - return this.frequentlyBoughtTogetherService.getSortedProducts(ctx, product); + const products = + await this.frequentlyBoughtTogetherService.getSortedProducts( + ctx, + product + ); + if (!this.options.hasValidLicense) { + Logger.error( + `Invalid license key, only returning the top 2 most frequently bought together products`, + loggerCtx + ); + return products.slice(0, 2); + } + return products; } } diff --git a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts index 1ff82a90..baa07b7b 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts @@ -25,6 +25,11 @@ import { import { asError } from 'catch-unknown'; import { FrequentlyBoughtTogetherShopResolver } from './api/frequently-bought-together-shop.resolver'; +export type FrequentlyBoughtTogetherPluginOptions = Partial< + Omit +> & + Pick; + /** * Increase revenue by cross selling frequently bought together products. * @@ -122,7 +127,7 @@ export class FrequentlyBoughtTogetherPlugin implements OnApplicationBootstrap { } static init( - options: Partial> + options: FrequentlyBoughtTogetherPluginOptions ): Type { this.options = { ...this.options, diff --git a/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts b/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts index b9bf51a1..0fc8595f 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/dev-server.ts @@ -34,6 +34,7 @@ require('dotenv').config(); }, plugins: [ FrequentlyBoughtTogetherPlugin.init({ + licenseKey: `123`, experimentMode: true, supportLevel: 0.001, }), diff --git a/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts b/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts index a3e91fcd..47b6a183 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts @@ -32,7 +32,11 @@ beforeAll(async () => { paymentOptions: { paymentMethodHandlers: [testPaymentMethod], }, - plugins: [FrequentlyBoughtTogetherPlugin.init({})], + plugins: [ + FrequentlyBoughtTogetherPlugin.init({ + licenseKey: '123', + }), + ], }); ({ server, adminClient, shopClient } = createTestEnvironment(config)); const serverStart = server.init({ From 2be817d80a69d7b47b24f5bb9a752661ea714c23 Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 12 Dec 2024 13:58:59 +0100 Subject: [PATCH 06/11] feat(frequently-bought-together): licens restrictiomn --- packages/vendure-plugin-frequently-bought-together/README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/vendure-plugin-frequently-bought-together/README.md b/packages/vendure-plugin-frequently-bought-together/README.md index 9761f1e9..79bb1a08 100644 --- a/packages/vendure-plugin-frequently-bought-together/README.md +++ b/packages/vendure-plugin-frequently-bought-together/README.md @@ -1,8 +1,3 @@ -// TODO - -- Check order of relations -- License check - # Frequently Bought Together Plugin ### [Official documentation here](https://pinelab-plugins.com/plugin/vendure-plugin-frequently-bought-together) From 0cec9936c56e6fee751cb7a464aea9b603239195 Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 12 Dec 2024 13:59:18 +0100 Subject: [PATCH 07/11] feat(frequently-bought-together): licens restrictiomn --- packages/vendure-plugin-frequently-bought-together/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vendure-plugin-frequently-bought-together/README.md b/packages/vendure-plugin-frequently-bought-together/README.md index 79bb1a08..a464edc9 100644 --- a/packages/vendure-plugin-frequently-bought-together/README.md +++ b/packages/vendure-plugin-frequently-bought-together/README.md @@ -2,7 +2,7 @@ ### [Official documentation here](https://pinelab-plugins.com/plugin/vendure-plugin-frequently-bought-together) -This plugin finds products that are often bought together by looking at past orders. You can integrate these frequently bought together products on your storefront, and increase your average order value. +This plugin finds products that are often bought together by looking at past orders. You can integrate these frequently bought together products on your storefront, and so increase your revenue. ## Installation From 12f86e36eca012bc573d3c008f7c1a31a8113369 Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 12 Dec 2024 14:16:05 +0100 Subject: [PATCH 08/11] feat(frequently-bought-together): max products --- .../src/frequently-bought-together.plugin.ts | 1 + .../frequently-bought-together.service.ts | 5 ++- .../src/services/util.spec.ts | 39 ++++++++++++------- .../src/services/util.ts | 15 +++++-- .../src/types.ts | 4 ++ 5 files changed, 45 insertions(+), 19 deletions(-) diff --git a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts index baa07b7b..eee5e321 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts @@ -93,6 +93,7 @@ export class FrequentlyBoughtTogetherPlugin implements OnApplicationBootstrap { customFieldUiTab: 'Related products', experimentMode: false, supportLevel: 0.01, + maxRelatedProducts: 10, hasValidLicense: false, }; diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts index f6afb5ee..24cc4214 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts @@ -71,7 +71,10 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { ? this.options.supportLevel(ctx) : this.options.supportLevel; const { itemSets, uniqueProducts } = await this.getItemSets(ctx, suport); - const relatedProductsPerProduct = getRelatedProductsPerProduct(itemSets); + const relatedProductsPerProduct = getRelatedProductsPerProduct( + itemSets, + this.options.maxRelatedProducts + ); for (const [ productId, supportPerProduct, diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts b/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts index 33a069f8..6d6d6993 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/util.spec.ts @@ -2,22 +2,23 @@ import { describe, it, expect } from 'vitest'; import { getRelatedProductsPerProduct } from './util'; // Adjust the import path as needed describe('getRelatedProductsPerProduct', () => { + const itemSets = [ + { + support: 1, + items: [1, 2, 3], + }, + { + support: 99, + items: [2, 3, 4], + }, + { + support: 3, + items: [1, 3, 4], + }, + ]; + it('should return related products for a given product', () => { - const itemSets = [ - { - support: 1, - items: [1, 2, 3], - }, - { - support: 99, - items: [2, 3, 4], - }, - { - support: 3, - items: [1, 3, 4], - }, - ]; - const result = getRelatedProductsPerProduct(itemSets); + const result = getRelatedProductsPerProduct(itemSets, 3); expect(result.get(1)).toEqual([ { productId: 3, support: 3 }, { productId: 4, support: 3 }, @@ -39,4 +40,12 @@ describe('getRelatedProductsPerProduct', () => { { productId: 1, support: 3 }, ]); }); + + it('adheres to max related products', () => { + const result = getRelatedProductsPerProduct(itemSets, 2); + expect(result.get(1)).toEqual([ + { productId: 3, support: 3 }, + { productId: 4, support: 3 }, + ]); + }); }); diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/util.ts b/packages/vendure-plugin-frequently-bought-together/src/services/util.ts index 77bbd383..97e8cbb3 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/util.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/util.ts @@ -6,7 +6,8 @@ import { Support } from '../types'; * Construct a map of related products with support per product based on the item sets. */ export function getRelatedProductsPerProduct( - itemSets: Itemset[] + itemSets: Itemset[], + maxRelatedProducts: number ): Map { // Sort lowest to highest support itemSets.sort((a, b) => b.support - a.support); @@ -16,9 +17,17 @@ export function getRelatedProductsPerProduct( const relations = relatedProductsPerProduct.get(productId) || []; itemSet.items.forEach((itemId) => { const alreadyHasProduct = relations.some((r) => r.productId === itemId); - if (itemId !== productId && !alreadyHasProduct) { - relations.push({ productId: itemId, support: itemSet.support }); + if (alreadyHasProduct) { + return; } + if (itemId === productId) { + return; // Don't relate a product to itself + } + if (relations.length >= maxRelatedProducts) { + return; + } + // else, add product + relations.push({ productId: itemId, support: itemSet.support }); }); relatedProductsPerProduct.set(productId, relations); } diff --git a/packages/vendure-plugin-frequently-bought-together/src/types.ts b/packages/vendure-plugin-frequently-bought-together/src/types.ts index 03ee4326..3fe83f8a 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/types.ts @@ -27,6 +27,10 @@ export interface PluginInitOptions { */ supportLevel: number | ((ctx: RequestContext) => number); hasValidLicense: boolean; + /** + * The maximum number of related products to store per product + */ + maxRelatedProducts: number; } export interface FrequentlyBoughtTogetherCalculationResult { From 7b07d4bdbda4a4f63b0aa4167109d37ebfdd71a3 Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 12 Dec 2024 14:23:52 +0100 Subject: [PATCH 09/11] feat(frequently-bought-together): max products --- .../src/frequently-bought-together.plugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts index eee5e321..60e9813c 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/frequently-bought-together.plugin.ts @@ -56,7 +56,7 @@ export type FrequentlyBoughtTogetherPluginOptions = Partial< { languageCode: LanguageCode.en, value: - 'Products which are frequently bought together with these products', + 'Products that are frequently bought together with the current product', }, ], list: true, From d5b90b786e54181451a06fd36d3f3c818bf5103d Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 12 Dec 2024 14:31:32 +0100 Subject: [PATCH 10/11] feat(frequently-bought-together): suggestionsyarn build --- .../CHANGELOG.md | 6 ++++++ .../src/api/api-extensions.ts | 2 +- .../api/frequently-bought-together-admin.resolver.ts | 2 +- .../services/frequently-bought-together.service.ts | 4 ++-- .../test/e2e.spec.ts | 11 +++++++---- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/vendure-plugin-frequently-bought-together/CHANGELOG.md b/packages/vendure-plugin-frequently-bought-together/CHANGELOG.md index 6e8244dd..a0e01370 100644 --- a/packages/vendure-plugin-frequently-bought-together/CHANGELOG.md +++ b/packages/vendure-plugin-frequently-bought-together/CHANGELOG.md @@ -1,3 +1,9 @@ +# 1.0.0 (2024-12-12) + +- Implemented FPGrowth algorithm for defining frequently bought together relations +- Added experiment mode to test the support level needed +- Return sorted list of related products based on support level + # 0.0.2 (2024-12-03) - Patched compatibility range to >= 2.2.0 diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts index 9dd9a065..c63503b0 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/api-extensions.ts @@ -32,7 +32,7 @@ export const adminApiExtensions = gql` Support is the number of orders this combination was in """ type FrequentlyBoughtTogetherItemSet { - items: [String!] + items: [String!]! support: Int! } diff --git a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts index 7044cffe..3c3ed9c9 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/api/frequently-bought-together-admin.resolver.ts @@ -30,7 +30,7 @@ export class FrequentlyBoughtTogetherAdminResolver { ): Promise { if (!this.options.experimentMode) { throw new UserInputError( - `This query is only available in experiment mode. Set 'expirementMode: true' in plugin's init()` + `This query is only available in experiment mode. Set 'experementMode: true' in plugin's init()` ); } return await this.frequentlyBoughtTogetherService.previewItemSets( diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts index 24cc4214..cf3ee130 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts @@ -66,11 +66,11 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { async createFrequentlyBoughtTogetherRelations( ctx: RequestContext ): Promise { - const suport = + const support = typeof this.options.supportLevel === 'function' ? this.options.supportLevel(ctx) : this.options.supportLevel; - const { itemSets, uniqueProducts } = await this.getItemSets(ctx, suport); + const { itemSets, uniqueProducts } = await this.getItemSets(ctx, support); const relatedProductsPerProduct = getRelatedProductsPerProduct( itemSets, this.options.maxRelatedProducts diff --git a/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts b/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts index 47b6a183..b9699628 100644 --- a/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts +++ b/packages/vendure-plugin-frequently-bought-together/test/e2e.spec.ts @@ -114,16 +114,19 @@ it('Triggers bought together calculation via admin API', async () => { } ` ); -}); - -it('Get sorted relations via shop API', async () => { // We have to wait for async job processing to complete - const product1 = await waitFor(async () => { + await waitFor(async () => { const { product } = await shopClient.query(GetProductById, { id: 'T_1' }); if (product.frequentlyBoughtWith.length >= 2) { return product; } }); +}); + +it('Get sorted relations via shop API', async () => { + const { product: product1 } = await shopClient.query(GetProductById, { + id: 'T_1', + }); // Should get [3,2] for T_1 expect(product1.frequentlyBoughtWith.length).toBe(2); expect(product1.frequentlyBoughtWith[0].id).toBe('T_3'); From 9dd000d880eaa87b75acd878941b587c8a5e45b9 Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 12 Dec 2024 14:33:10 +0100 Subject: [PATCH 11/11] feat(frequently-bought-together): suggestions --- .../src/generated-graphql-types.ts | 2 +- .../frequently-bought-together.service.ts | 32 ++++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts index 7df1631c..d051b479 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/generated-graphql-types.ts @@ -25,7 +25,7 @@ export type Scalars = { */ export type FrequentlyBoughtTogetherItemSet = { __typename?: 'FrequentlyBoughtTogetherItemSet'; - items?: Maybe>; + items: Array; support: Scalars['Int']; }; diff --git a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts index cf3ee130..f366dcee 100644 --- a/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts +++ b/packages/vendure-plugin-frequently-bought-together/src/services/frequently-bought-together.service.ts @@ -153,23 +153,31 @@ export class FrequentlyBoughtTogetherService implements OnApplicationBootstrap { if (!product.customFields.frequentlyBoughtWith) { return []; } - const supportPerProduct: Partial[] = JSON.parse( - product.customFields.frequentlyBoughtWithSupport || '[]' - ); - if (!Array.isArray(supportPerProduct)) { + try { + const supportPerProduct: Partial[] = JSON.parse( + product.customFields.frequentlyBoughtWithSupport || '[]' + ); + if (!Array.isArray(supportPerProduct)) { + Logger.error( + `product.customFields.frequentlyBoughtWithSupport for product '${product.id}' is not an array`, + loggerCtx + ); + return []; + } + return product.customFields.frequentlyBoughtWith?.sort((a, b) => { + const supportA = + supportPerProduct.find((s) => s.productId === a.id)?.support || 0; + const supportB = + supportPerProduct.find((s) => s.productId === b.id)?.support || 0; + return supportB - supportA; + }); + } catch (e) { Logger.error( - `product.customFields.frequentlyBoughtWithSupport for product '${product.id}' is not an array`, + `Failed to get sorted products: ${asError(e).message}`, loggerCtx ); return []; } - return product.customFields.frequentlyBoughtWith?.sort((a, b) => { - const supportA = - supportPerProduct.find((s) => s.productId === a.id)?.support || 0; - const supportB = - supportPerProduct.find((s) => s.productId === b.id)?.support || 0; - return supportB - supportA; - }); } private async getItemSets(