From 5622f48f21b59f31fd038cd85d9f9ea66ec16d3a Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Mon, 24 Jun 2024 14:34:58 -0400 Subject: [PATCH 01/14] Add CalculatedField decorator --- .../src/decorators/read-model.ts | 25 ++++- .../test/decorators/read-model.test.ts | 94 ++++++++++++++++++- 2 files changed, 117 insertions(+), 2 deletions(-) diff --git a/packages/framework-core/src/decorators/read-model.ts b/packages/framework-core/src/decorators/read-model.ts index 4c32dd1c1..47a76ad04 100644 --- a/packages/framework-core/src/decorators/read-model.ts +++ b/packages/framework-core/src/decorators/read-model.ts @@ -24,12 +24,35 @@ export function ReadModel( } const authorizer = BoosterAuthorizer.build(attributes) as ReadModelAuthorizer + const classMetadata = getClassMetadata(readModelClass) + const dynamicDependencies = Reflect.getMetadata('dynamic:dependencies', readModelClass) || {} + + // Combine properties with dynamic dependencies + const properties = classMetadata.fields.map((field: any) => { + return { + ...field, + dependencies: dynamicDependencies[field.name] || [], + } + }) + config.readModels[readModelClass.name] = { class: readModelClass, - properties: getClassMetadata(readModelClass).fields, + properties, authorizer, before: attributes.before ?? [], } }) } } + +/** + * Decorator to mark a property as a calculated field with dependencies. + * @param dependencies - An array of strings indicating the dependencies. + */ +export function CalculatedField(dependencies: string[]): PropertyDecorator { + return (target: object, propertyKey: string | symbol): void => { + const existingDependencies = Reflect.getMetadata('dynamic:dependencies', target.constructor) || {} + existingDependencies[propertyKey] = dependencies + Reflect.defineMetadata('dynamic:dependencies', existingDependencies, target.constructor) + } +} diff --git a/packages/framework-core/test/decorators/read-model.test.ts b/packages/framework-core/test/decorators/read-model.test.ts index fe998dd27..9315a48e6 100644 --- a/packages/framework-core/test/decorators/read-model.test.ts +++ b/packages/framework-core/test/decorators/read-model.test.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { expect } from '../expect' import { describe } from 'mocha' -import { ReadModel, Booster, Entity, Projects, sequencedBy, Role } from '../../src' +import { ReadModel, Booster, Entity, Projects, sequencedBy, Role, CalculatedField } from '../../src' import { UUID, ProjectionResult, UserEnvelope } from '@boostercloud/framework-types' import { BoosterAuthorizer } from '../../src/booster-authorizer' import { fake, restore } from 'sinon' @@ -40,6 +40,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'Class', typeName: 'UUID', }, + dependencies: [], }, { name: 'title', @@ -52,6 +53,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'String', typeName: 'String', }, + dependencies: [], }, ], }) @@ -108,6 +110,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'Class', typeName: 'UUID', }, + dependencies: [], }, { name: 'aStringProp', @@ -120,6 +123,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'String', typeName: 'String', }, + dependencies: [], }, { name: 'aNumberProp', @@ -132,6 +136,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'Number', typeName: 'Number', }, + dependencies: [], }, { name: 'aReadonlyArray', @@ -154,6 +159,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'ReadonlyArray', typeName: 'ReadonlyArray', }, + dependencies: [], }, ], }) @@ -295,3 +301,89 @@ describe('the `Projects` decorator', () => { }) }) }) + +describe('the `CalculatedField` decorator', () => { + afterEach(() => { + restore() + Booster.configure('test', (config) => { + for (const propName in config.readModels) { + delete config.readModels[propName] + } + }) + }) + + it('adds calculated field metadata to the read model class', () => { + @ReadModel({ + authorize: 'all', + }) + class PersonReadModel { + public constructor(readonly id: UUID, readonly firstName: string, readonly lastName: string) {} + + @CalculatedField(['firstName', 'lastName']) + public get fullName(): string { + return `${this.firstName} ${this.lastName}` + } + } + + expect(Booster.config.readModels['PersonReadModel']).to.be.deep.equal({ + class: PersonReadModel, + authorizer: BoosterAuthorizer.allowAccess, + before: [], + properties: [ + { + name: 'id', + typeInfo: { + importPath: '@boostercloud/framework-types', + isNullable: false, + isGetAccessor: false, + name: 'UUID', + parameters: [], + type: UUID, + typeGroup: 'Class', + typeName: 'UUID', + }, + dependencies: [], + }, + { + name: 'firstName', + typeInfo: { + isNullable: false, + isGetAccessor: false, + name: 'string', + parameters: [], + type: String, + typeGroup: 'String', + typeName: 'String', + }, + dependencies: [], + }, + { + name: 'lastName', + typeInfo: { + isNullable: false, + isGetAccessor: false, + name: 'string', + parameters: [], + type: String, + typeGroup: 'String', + typeName: 'String', + }, + dependencies: [], + }, + { + name: 'fullName', + typeInfo: { + isNullable: false, + isGetAccessor: true, + name: 'string', + parameters: [], + type: String, + typeGroup: 'String', + typeName: 'String', + }, + dependencies: ['firstName', 'lastName'], + }, + ], + }) + }) +}) From 0bb3040a92b63c5479f02801d5bcb4aecacb9dab Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Tue, 25 Jun 2024 18:37:30 -0400 Subject: [PATCH 02/14] Add dependencies to select --- .../src/booster-read-models-reader.ts | 156 +++++++++++++++- .../test/booster-read-models-reader.test.ts | 2 + .../graphql/graphql-query-generator.test.ts | 4 + .../end-to-end/read-models.integration.ts | 174 +++++++++++++----- .../src/commands/cart-my-address.ts | 22 +++ .../src/read-models/cart-read-model.ts | 5 +- .../metadata-booster/src/metadata-types.ts | 1 + 7 files changed, 317 insertions(+), 47 deletions(-) create mode 100644 packages/framework-integration-tests/src/commands/cart-my-address.ts diff --git a/packages/framework-core/src/booster-read-models-reader.ts b/packages/framework-core/src/booster-read-models-reader.ts index 079206952..fc63cc21a 100644 --- a/packages/framework-core/src/booster-read-models-reader.ts +++ b/packages/framework-core/src/booster-read-models-reader.ts @@ -1,25 +1,28 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { - TraceActionTypes, AnyClass, BoosterConfig, FilterFor, GraphQLOperation, InvalidParameterError, NotFoundError, + ProjectionFor, ReadModelInterface, ReadModelListResult, + ReadModelMetadata, ReadModelRequestEnvelope, ReadOnlyNonEmptyArray, SortFor, SubscriptionEnvelope, - ProjectionFor, + TraceActionTypes, } from '@boostercloud/framework-types' import { createInstance, createInstances, getLogger } from '@boostercloud/framework-common-helpers' import { Booster } from './booster' import { applyReadModelRequestBeforeFunctions } from './services/filter-helpers' import { ReadModelSchemaMigrator } from './read-model-schema-migrator' import { Trace } from './instrumentation' +import { PropertyMetadata } from '@boostercloud/metadata-booster' +import { isPromise } from 'graphql/jsutils/isPromise' export class BoosterReadModelsReader { public constructor(readonly config: BoosterConfig) {} @@ -88,6 +91,23 @@ export class BoosterReadModelsReader { select?: ProjectionFor ): Promise | ReadModelListResult> { const readModelName = readModelClass.name + + let selectWithDependencies: ProjectionFor | undefined = undefined + const calculatedFieldsDependencies = this.getCalculatedFieldsDependencies(readModelClass) + + if (select && Object.keys(calculatedFieldsDependencies).length > 0) { + const extendedSelect = new Set(select) + + select.forEach((field: any) => { + const topLevelField = field.split('.')[0].replace('[]', '') + if (calculatedFieldsDependencies[topLevelField]) { + calculatedFieldsDependencies[topLevelField].map((dependency) => extendedSelect.add(dependency)) + } + }) + + selectWithDependencies = Array.from(extendedSelect) as ProjectionFor + } + const searchResult = await this.config.provider.readModels.search( this.config, readModelName, @@ -96,13 +116,13 @@ export class BoosterReadModelsReader { limit, afterCursor, paginatedVersion ?? false, - select + selectWithDependencies ?? select ) + const readModels = this.createReadModelInstances(searchResult, readModelClass) if (select) { - return searchResult + return this.createInstancesWithCalculatedProperties(searchResult, readModelClass, select ?? []) } - const readModels = this.createReadModelInstances(searchResult, readModelClass) return this.migrateReadModels(readModels, readModelName) } @@ -133,6 +153,116 @@ export class BoosterReadModelsReader { } } + /** + * Creates an instance of the read model class with the calculated properties included + * @param instanceClass The read model class + * @param raw The raw read model data + * @param propertiesToInclude The properties to include in the response + * @private + */ + private async createInstanceWithCalculatedProperties( + instanceClass: { new (...args: any[]): T }, + raw: Partial, + propertiesToInclude: string[] + ): Promise<{ [key: string]: any }> { + const instance = new instanceClass() + Object.assign(instance, raw) + const result: { [key: string]: any } = {} + + const propertiesMap = this.buildPropertiesMap(propertiesToInclude) + + await this.processProperties(instance, result, propertiesMap) + + return result + } + + /** + * Builds a map of properties to include in the response + * @param properties The properties to include in the response + * @private + */ + private buildPropertiesMap(properties: string[]): any { + const map: any = {} + properties.forEach((property) => { + const parts = property.split('.') + let current = map + parts.forEach((part) => { + const isArray = part.endsWith('[]') + const key = isArray ? part.slice(0, -2) : part + if (!current[key]) { + current[key] = isArray ? { __isArray: true, __children: {} } : {} + } + current = isArray ? current[key].__children : current[key] + }) + }) + return map + } + + /** + * Processes the properties of the source object and adds them to the result object + * @param source The source object + * @param result The result object + * @param propertiesMap The map of properties to include in the response + * @private + */ + private async processProperties(source: any, result: any, propertiesMap: any): Promise { + for (const key of Object.keys(propertiesMap)) { + if (key === '__isArray' || key === '__children') continue + + if (source[key] !== undefined) { + if (propertiesMap[key].__isArray) { + result[key] = [] + for (const item of source[key]) { + const newItem: any = {} + await this.processProperties(item, newItem, propertiesMap[key].__children) + if (Object.keys(newItem).length > 0) { + result[key].push(newItem) + } + } + } else if (typeof propertiesMap[key] === 'object' && Object.keys(propertiesMap[key]).length > 0) { + const value = source[key] + const resolvedValue = isPromise(value) ? await value : value + result[key] = {} + await this.processProperties(resolvedValue, result[key], propertiesMap[key]) + if (Object.keys(result[key]).length === 0) { + delete result[key] + } + } else { + const value = source[key] + result[key] = isPromise(value) ? await value : value + } + } + } + } + + /** + * Creates instances of the read model class with the calculated properties included + * @param searchResult The search result + * @param readModelClass The read model class + * @param propertiesToInclude The properties to include in the response + * @private + */ + private async createInstancesWithCalculatedProperties( + searchResult: Array | ReadModelListResult, + readModelClass: AnyClass, + propertiesToInclude: string[] + ): Promise | ReadModelListResult> { + const processInstance = async (raw: Partial): Promise => { + const instance = await this.createInstanceWithCalculatedProperties(readModelClass, raw, propertiesToInclude) + return instance as TReadModel + } + + if (Array.isArray(searchResult)) { + return await Promise.all(searchResult.map(processInstance)) + } else { + const processedItems = await Promise.all(searchResult.items.map(processInstance)) + return { + ...searchResult, + items: processedItems, + } + } + } + public async subscribe( connectionID: string, readModelRequest: ReadModelRequestEnvelope, @@ -216,4 +346,20 @@ export class BoosterReadModelsReader { } return this.config.provider.readModels.subscribe(this.config, subscription) } + + /** + * Returns the dependencies of the calculated fields of a read model + * @param readModelClass The read model class + * @private + */ + private getCalculatedFieldsDependencies(readModelClass: AnyClass): Record> { + const readModelMetadata: ReadModelMetadata = this.config.readModels[readModelClass.name] + + const dependenciesMap: Record> = {} + readModelMetadata?.properties.map((property: PropertyMetadata): void => { + dependenciesMap[property.name] = property.dependencies + }) + + return dependenciesMap + } } diff --git a/packages/framework-core/test/booster-read-models-reader.test.ts b/packages/framework-core/test/booster-read-models-reader.test.ts index 52b0ebff7..24c2bef83 100644 --- a/packages/framework-core/test/booster-read-models-reader.test.ts +++ b/packages/framework-core/test/booster-read-models-reader.test.ts @@ -457,6 +457,7 @@ describe('BoosterReadModelReader', () => { filters, currentUser, select: ['id'], + skipInstance: false, } as any const expectedReadModels = [new TestReadModel(), new TestReadModel()] @@ -491,6 +492,7 @@ describe('BoosterReadModelReader', () => { filters, currentUser, select: ['id'], + skipInstance: false, } as any const expectedResult = [new TestReadModel(), new TestReadModel()] diff --git a/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts b/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts index 926def406..b7189363c 100644 --- a/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts +++ b/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts @@ -167,6 +167,7 @@ describe('GraphQLQueryGenerator', () => { isNullable: false, isGetAccessor: false, }, + dependencies: [], }, ], methods: [ @@ -181,6 +182,7 @@ describe('GraphQLQueryGenerator', () => { isNullable: false, isGetAccessor: false, }, + dependencies: [], }, ], } as ClassMetadata @@ -282,6 +284,7 @@ describe('GraphQLQueryGenerator', () => { isNullable: false, isGetAccessor: false, }, + dependencies: [], }, ], methods: [], @@ -371,6 +374,7 @@ describe('GraphQLQueryGenerator', () => { isNullable: false, isGetAccessor: false, }, + dependencies: [], }, ], methods: [], diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts index 1505477fa..ab09a85ba 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts @@ -1821,38 +1821,46 @@ describe('Read models end-to-end tests', () => { expect(currentPageCartData[0].cartItems[0].productId).to.equal(mockProductId) } }) + }) - it('should apply modified filter by before hooks', async () => { - // We create a cart with id 'before-fn-test-modified', but we query for - // 'before-fn-test', which will then change the filter after two "before" functions - // to return the original cart (id 'before-fn-test-modified') - const variables = { - cartId: 'before-fn-test-modified', - productId: beforeHookProductId, - quantity: 1, - } + context('projecting calculated fields', () => { + const mockCartId: string = random.uuid() + const mockProductId: string = random.uuid() + const mockQuantity: number = random.number({ min: 1 }) + const mockAddress = { + firstName: random.word(), + lastName: random.word(), + country: random.word(), + state: random.word(), + postalCode: random.word(), + address: random.word(), + } + + beforeEach(async () => { + // provisioning a cart await client.mutate({ - variables, + variables: { + cartId: mockCartId, + productId: mockProductId, + quantity: mockQuantity, + }, mutation: gql` mutation ChangeCartItem($cartId: ID!, $productId: ID!, $quantity: Float!) { ChangeCartItem(input: { cartId: $cartId, productId: $productId, quantity: $quantity }) } `, }) - const queryResult = await waitForIt( + + await waitForIt( () => { return client.query({ variables: { - cartId: 'before-fn-test', + cartId: mockCartId, }, query: gql` query CartReadModel($cartId: ID!) { CartReadModel(id: $cartId) { id - cartItems { - productId - quantity - } } } `, @@ -1861,38 +1869,122 @@ describe('Read models end-to-end tests', () => { (result) => result?.data?.CartReadModel != null ) - const cartData = queryResult.data.CartReadModel + // update shipping address + await client.mutate({ + variables: { + cartId: mockCartId, + address: mockAddress, + }, + mutation: gql` + mutation UpdateShippingAddress($cartId: ID!, $address: AddressInput!) { + UpdateShippingAddress(input: { cartId: $cartId, address: $address }) + } + `, + }) - expect(cartData.id).to.be.equal(variables.cartId) + await waitForIt( + () => { + return client.query({ + variables: { + cartId: mockCartId, + }, + query: gql` + query CartReadModel($cartId: ID!) { + CartReadModel(id: $cartId) { + id + shippingAddress { + firstName + } + } + } + `, + }) + }, + (result) => + result?.data?.CartReadModel != null && + result?.data?.CartReadModel?.shippingAddress?.firstName === mockAddress.firstName + ) }) - it('should return exceptions thrown by before functions', async () => { - try { - await waitForIt( - () => { - return client.query({ - variables: { - cartId: throwExceptionId, + it('should correctly fetch calculated fields via GraphQL query', async () => { + const queryResult = await waitForIt( + () => { + return client.query({ + variables: { + filter: { + id: { eq: mockCartId }, }, - query: gql` - query CartReadModel($cartId: ID!) { - CartReadModel(id: $cartId) { - id - cartItems { - productId - quantity - } + }, + query: gql` + query CartReadModels($filter: CartReadModelFilter) { + CartReadModels(filter: $filter) { + id + myAddress { + firstName + lastName + country + state + postalCode + address } } - `, - }) + } + `, + }) + }, + (result) => result?.data?.CartReadModels?.length >= 1 + ) + + const cartData = queryResult.data.CartReadModels + + expect(cartData).to.be.an('array') + expect(cartData.length).to.equal(1) + expect(cartData[0].id).to.be.equal(mockCartId) + expect(cartData[0].myAddress).to.deep.equal({ + ...mockAddress, + __typename: 'Address', + }) + }) + + it('should correctly fetch calculated fields via code', async () => { + const queryResult = await waitForIt( + () => { + return client.mutate({ + variables: { + cartId: mockCartId, + paginatedVersion: true, + }, + mutation: gql` + mutation CartMyAddress($cartId: ID!, $paginatedVersion: Boolean!) { + CartMyAddress(input: { cartId: $cartId, paginatedVersion: $paginatedVersion }) + } + `, + }) + }, + (result) => result?.data?.CartMyAddress != null + ) + + const cartMyAddress = queryResult.data.CartMyAddress + + expect(cartMyAddress).to.deep.equal({ + items: [ + { + id: mockCartId, + myAddress: { + firstName: mockAddress.firstName, + lastName: mockAddress.lastName, + country: mockAddress.country, + state: mockAddress.state, + postalCode: mockAddress.postalCode, + address: mockAddress.address, + }, }, - (_) => true - ) - } catch (e) { - expect(e.graphQLErrors[0].message).to.be.eq(beforeHookException) - expect(e.graphQLErrors[0].path).to.deep.eq(['CartReadModel']) - } + ], + count: 1, + cursor: { + id: '1', + }, + }) }) }) }) diff --git a/packages/framework-integration-tests/src/commands/cart-my-address.ts b/packages/framework-integration-tests/src/commands/cart-my-address.ts new file mode 100644 index 000000000..46312bd1f --- /dev/null +++ b/packages/framework-integration-tests/src/commands/cart-my-address.ts @@ -0,0 +1,22 @@ +import { Register, UUID } from '@boostercloud/framework-types' +import { Booster, Command } from '@boostercloud/framework-core' +import { CartReadModel } from '../read-models/cart-read-model' + +@Command({ + authorize: 'all', +}) +export class CartMyAddress { + public constructor(readonly cartId: UUID, readonly paginatedVersion: boolean) {} + + public static async handle(command: CartMyAddress, register: Register): Promise { + return (await Booster.readModel(CartReadModel) + .filter({ + id: { + eq: command.cartId, + }, + }) + .select(['id', 'myAddress']) + .paginatedVersion(command.paginatedVersion) + .search()) as Array + } +} diff --git a/packages/framework-integration-tests/src/read-models/cart-read-model.ts b/packages/framework-integration-tests/src/read-models/cart-read-model.ts index 7938f62cf..ce9e09866 100644 --- a/packages/framework-integration-tests/src/read-models/cart-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/cart-read-model.ts @@ -1,4 +1,4 @@ -import { Booster, NonExposed, Projects, ReadModel } from '@boostercloud/framework-core' +import { Booster, CalculatedField, NonExposed, Projects, ReadModel } from '@boostercloud/framework-core' import { ProjectionResult, ReadModelInterface, @@ -38,14 +38,17 @@ export class CartReadModel { return this.checks } + @CalculatedField(['cartItems']) public get cartItemsSize(): number | undefined { return this.cartItems ? this.cartItems.length : 0 } + @CalculatedField(['shippingAddress']) public get myAddress(): Promise
{ return Promise.resolve(this.shippingAddress || new Address('', '', '', '', '', '')) } + @CalculatedField(['cartItems']) public get lastProduct(): Promise { if (this.cartItemsSize === 0) { return Promise.resolve(undefined) diff --git a/packages/metadata-booster/src/metadata-types.ts b/packages/metadata-booster/src/metadata-types.ts index 24e9c3d60..131137256 100644 --- a/packages/metadata-booster/src/metadata-types.ts +++ b/packages/metadata-booster/src/metadata-types.ts @@ -31,6 +31,7 @@ export interface TypeMetadata { export interface PropertyMetadata { name: string typeInfo: TypeMetadata + dependencies: Array } export interface ClassMetadata { From c9dcfc3c4768ff9098f4d1d766f91e7018c85046 Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Wed, 3 Jul 2024 11:56:51 -0400 Subject: [PATCH 03/14] Refactor instance creation methods --- .../framework-common-helpers/src/instances.ts | 88 ++++++++++++++++- .../src/booster-read-models-reader.ts | 96 ++----------------- 2 files changed, 96 insertions(+), 88 deletions(-) diff --git a/packages/framework-common-helpers/src/instances.ts b/packages/framework-common-helpers/src/instances.ts index 71c01efb3..79f7288e4 100644 --- a/packages/framework-common-helpers/src/instances.ts +++ b/packages/framework-common-helpers/src/instances.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { Class } from '@boostercloud/framework-types' +import { Class, ReadModelInterface } from '@boostercloud/framework-types' /** * Creates an instance of the given class from the given raw object. @@ -43,3 +43,89 @@ export function createInstance(instanceClass: Class, rawObject: Record(instanceClass: Class, rawObjects: Array>): T[] { return rawObjects.map((rawObject) => createInstance(instanceClass, rawObject)) } + +/** + * Creates an instance of the read model class with the calculated properties included + * @param instanceClass The read model class + * @param raw The raw read model data + * @param propertiesToInclude The properties to include in the response + * @private + */ +export async function createInstanceWithCalculatedProperties( + instanceClass: { new (...args: any[]): T }, + raw: Partial, + propertiesToInclude: string[] +): Promise<{ [key: string]: any }> { + const instance = new instanceClass() + Object.assign(instance, raw) + const result: { [key: string]: any } = {} + + const propertiesMap = buildPropertiesMap(propertiesToInclude) + + await processProperties(instance, result, propertiesMap) + + return result +} + +/** + * Builds a map of properties to include in the response + * @param properties The properties to include in the response + * @private + */ +function buildPropertiesMap(properties: string[]): any { + const map: any = {} + properties.forEach((property) => { + const parts = property.split('.') + let current = map + parts.forEach((part) => { + const isArray = part.endsWith('[]') + const key = isArray ? part.slice(0, -2) : part + if (!current[key]) { + current[key] = isArray ? { __isArray: true, __children: {} } : {} + } + current = isArray ? current[key].__children : current[key] + }) + }) + return map +} + +/** + * Processes the properties of the source object and adds them to the result object + * @param source The source object + * @param result The result object + * @param propertiesMap The map of properties to include in the response + * @private + */ +async function processProperties(source: any, result: any, propertiesMap: any): Promise { + for (const key of Object.keys(propertiesMap)) { + if (key === '__isArray' || key === '__children') continue + + if (source[key] !== undefined) { + if (propertiesMap[key].__isArray) { + result[key] = [] + for (const item of source[key]) { + const newItem: any = {} + await processProperties(item, newItem, propertiesMap[key].__children) + if (Object.keys(newItem).length > 0) { + result[key].push(newItem) + } + } + } else if (typeof propertiesMap[key] === 'object' && Object.keys(propertiesMap[key]).length > 0) { + const value = source[key] + const resolvedValue = isPromise(value) ? await value : value + result[key] = {} + await processProperties(resolvedValue, result[key], propertiesMap[key]) + if (Object.keys(result[key]).length === 0) { + delete result[key] + } + } else { + const value = source[key] + result[key] = isPromise(value) ? await value : value + } + } + } +} + +function isPromise(obj: any): obj is Promise { + return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function' +} diff --git a/packages/framework-core/src/booster-read-models-reader.ts b/packages/framework-core/src/booster-read-models-reader.ts index fc63cc21a..16329237d 100644 --- a/packages/framework-core/src/booster-read-models-reader.ts +++ b/packages/framework-core/src/booster-read-models-reader.ts @@ -16,13 +16,17 @@ import { SubscriptionEnvelope, TraceActionTypes, } from '@boostercloud/framework-types' -import { createInstance, createInstances, getLogger } from '@boostercloud/framework-common-helpers' +import { + createInstance, + createInstances, + createInstanceWithCalculatedProperties, + getLogger, +} from '@boostercloud/framework-common-helpers' import { Booster } from './booster' import { applyReadModelRequestBeforeFunctions } from './services/filter-helpers' import { ReadModelSchemaMigrator } from './read-model-schema-migrator' import { Trace } from './instrumentation' import { PropertyMetadata } from '@boostercloud/metadata-booster' -import { isPromise } from 'graphql/jsutils/isPromise' export class BoosterReadModelsReader { public constructor(readonly config: BoosterConfig) {} @@ -121,7 +125,7 @@ export class BoosterReadModelsReader { const readModels = this.createReadModelInstances(searchResult, readModelClass) if (select) { - return this.createInstancesWithCalculatedProperties(searchResult, readModelClass, select ?? []) + return this.createReadModelInstancesWithCalculatedProperties(searchResult, readModelClass, select ?? []) } return this.migrateReadModels(readModels, readModelName) } @@ -153,88 +157,6 @@ export class BoosterReadModelsReader { } } - /** - * Creates an instance of the read model class with the calculated properties included - * @param instanceClass The read model class - * @param raw The raw read model data - * @param propertiesToInclude The properties to include in the response - * @private - */ - private async createInstanceWithCalculatedProperties( - instanceClass: { new (...args: any[]): T }, - raw: Partial, - propertiesToInclude: string[] - ): Promise<{ [key: string]: any }> { - const instance = new instanceClass() - Object.assign(instance, raw) - const result: { [key: string]: any } = {} - - const propertiesMap = this.buildPropertiesMap(propertiesToInclude) - - await this.processProperties(instance, result, propertiesMap) - - return result - } - - /** - * Builds a map of properties to include in the response - * @param properties The properties to include in the response - * @private - */ - private buildPropertiesMap(properties: string[]): any { - const map: any = {} - properties.forEach((property) => { - const parts = property.split('.') - let current = map - parts.forEach((part) => { - const isArray = part.endsWith('[]') - const key = isArray ? part.slice(0, -2) : part - if (!current[key]) { - current[key] = isArray ? { __isArray: true, __children: {} } : {} - } - current = isArray ? current[key].__children : current[key] - }) - }) - return map - } - - /** - * Processes the properties of the source object and adds them to the result object - * @param source The source object - * @param result The result object - * @param propertiesMap The map of properties to include in the response - * @private - */ - private async processProperties(source: any, result: any, propertiesMap: any): Promise { - for (const key of Object.keys(propertiesMap)) { - if (key === '__isArray' || key === '__children') continue - - if (source[key] !== undefined) { - if (propertiesMap[key].__isArray) { - result[key] = [] - for (const item of source[key]) { - const newItem: any = {} - await this.processProperties(item, newItem, propertiesMap[key].__children) - if (Object.keys(newItem).length > 0) { - result[key].push(newItem) - } - } - } else if (typeof propertiesMap[key] === 'object' && Object.keys(propertiesMap[key]).length > 0) { - const value = source[key] - const resolvedValue = isPromise(value) ? await value : value - result[key] = {} - await this.processProperties(resolvedValue, result[key], propertiesMap[key]) - if (Object.keys(result[key]).length === 0) { - delete result[key] - } - } else { - const value = source[key] - result[key] = isPromise(value) ? await value : value - } - } - } - } - /** * Creates instances of the read model class with the calculated properties included * @param searchResult The search result @@ -242,13 +164,13 @@ export class BoosterReadModelsReader { * @param propertiesToInclude The properties to include in the response * @private */ - private async createInstancesWithCalculatedProperties( + private async createReadModelInstancesWithCalculatedProperties( searchResult: Array | ReadModelListResult, readModelClass: AnyClass, propertiesToInclude: string[] ): Promise | ReadModelListResult> { const processInstance = async (raw: Partial): Promise => { - const instance = await this.createInstanceWithCalculatedProperties(readModelClass, raw, propertiesToInclude) + const instance = await createInstanceWithCalculatedProperties(readModelClass, raw, propertiesToInclude) return instance as TReadModel } From 083ce539d1945b51478410b7558bb43e4f5948c8 Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Thu, 4 Jul 2024 08:28:27 -0400 Subject: [PATCH 04/14] Temporarily change Azure region for integration tests --- .github/workflows/wf_test-integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wf_test-integration.yml b/.github/workflows/wf_test-integration.yml index 1eb21bba0..6576cdbca 100644 --- a/.github/workflows/wf_test-integration.yml +++ b/.github/workflows/wf_test-integration.yml @@ -13,7 +13,7 @@ on: required: false type: string azure-region: - default: 'East US' + default: 'Central US' required: false type: string azure-publisher-email: From 008414c64635315ceda16888eaf39c0d73161b9e Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Thu, 4 Jul 2024 09:21:27 -0400 Subject: [PATCH 05/14] Revert "Temporarily change Azure region for integration tests" --- .github/workflows/wf_test-integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wf_test-integration.yml b/.github/workflows/wf_test-integration.yml index 6576cdbca..1eb21bba0 100644 --- a/.github/workflows/wf_test-integration.yml +++ b/.github/workflows/wf_test-integration.yml @@ -13,7 +13,7 @@ on: required: false type: string azure-region: - default: 'Central US' + default: 'East US' required: false type: string azure-publisher-email: From ebf97f1536d507ec8127efa618913017a17875bd Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Fri, 5 Jul 2024 09:21:48 -0400 Subject: [PATCH 06/14] Temporarily change Azure region for integration tests --- .github/workflows/re_test-integration-azure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/re_test-integration-azure.yml b/.github/workflows/re_test-integration-azure.yml index 5e0c4c3f3..9d8b0f4c9 100644 --- a/.github/workflows/re_test-integration-azure.yml +++ b/.github/workflows/re_test-integration-azure.yml @@ -7,7 +7,7 @@ on: workflow_call: inputs: azure-region: - default: 'East US' + default: 'East US 2' required: false type: string azure-publisher-email: From fab88125aa6b954ba9e9d47f00d0a1fd6b215987 Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Fri, 5 Jul 2024 12:13:22 -0400 Subject: [PATCH 07/14] Refactor types for instances creation --- packages/framework-common-helpers/src/instances.ts | 12 ++++++------ .../framework-core/src/booster-read-models-reader.ts | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/framework-common-helpers/src/instances.ts b/packages/framework-common-helpers/src/instances.ts index 79f7288e4..ee109d25b 100644 --- a/packages/framework-common-helpers/src/instances.ts +++ b/packages/framework-common-helpers/src/instances.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { Class, ReadModelInterface } from '@boostercloud/framework-types' +import { Class, ProjectionFor, ReadModelInterface } from '@boostercloud/framework-types' /** * Creates an instance of the given class from the given raw object. @@ -52,13 +52,13 @@ export function createInstances(instanceClass: Class, rawObjects: Array( - instanceClass: { new (...args: any[]): T }, + instanceClass: Class, raw: Partial, - propertiesToInclude: string[] -): Promise<{ [key: string]: any }> { + propertiesToInclude: ProjectionFor +): Promise { const instance = new instanceClass() Object.assign(instance, raw) - const result: { [key: string]: any } = {} + const result: T = {} as T const propertiesMap = buildPropertiesMap(propertiesToInclude) @@ -72,7 +72,7 @@ export async function createInstanceWithCalculatedProperties(properties: ProjectionFor): any { const map: any = {} properties.forEach((property) => { const parts = property.split('.') diff --git a/packages/framework-core/src/booster-read-models-reader.ts b/packages/framework-core/src/booster-read-models-reader.ts index 16329237d..d0ea51fe0 100644 --- a/packages/framework-core/src/booster-read-models-reader.ts +++ b/packages/framework-core/src/booster-read-models-reader.ts @@ -167,7 +167,7 @@ export class BoosterReadModelsReader { private async createReadModelInstancesWithCalculatedProperties( searchResult: Array | ReadModelListResult, readModelClass: AnyClass, - propertiesToInclude: string[] + propertiesToInclude: ProjectionFor ): Promise | ReadModelListResult> { const processInstance = async (raw: Partial): Promise => { const instance = await createInstanceWithCalculatedProperties(readModelClass, raw, propertiesToInclude) From 199d368367deda5e12a22fb868441901e63588f1 Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Fri, 5 Jul 2024 13:26:04 -0400 Subject: [PATCH 08/14] Add unit tests for instances helper --- common/config/rush/pnpm-lock.yaml | 1721 ++++++++--------- .../framework-common-helpers/package.json | 4 +- .../test/instances.test.ts | 59 + 3 files changed, 898 insertions(+), 886 deletions(-) create mode 100644 packages/framework-common-helpers/test/instances.test.ts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 1cce552fa..62a076a2b 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -37,21 +37,21 @@ importers: typescript: 5.1.6 ws: 8.12.0 dependencies: - '@apollo/client': 3.7.13_sphwu2tmthkxbmhoomzrsl4p7y + '@apollo/client': 3.7.13_pvbge6vplei5rx3k4pxg27es3y '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@types/sinon': 10.0.0 cross-fetch: 3.1.5 - graphql: 16.8.1 + graphql: 16.9.0 jsonwebtoken: 9.0.1 sinon: 9.2.3 - subscriptions-transport-ws: 0.11.0_graphql@16.8.1 - tslib: 2.6.2 + subscriptions-transport-ws: 0.11.0_graphql@16.9.0 + tslib: 2.6.3 ws: 8.12.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/ws': 8.5.4 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry @@ -62,18 +62,18 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - fast-check: 3.17.1 + fast-check: 3.19.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 typescript: 5.1.6 ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.11.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/application-tester': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -129,22 +129,22 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_cwiqw7fmejhb47wvqtchhjxme4 + '@oclif/plugin-help': 5.2.20_qtieencaeb6d72le3lfodyl2z4 chalk: 2.4.2 child-process-promise: 2.2.1 execa: 2.1.0 - fp-ts: 2.16.5 + fp-ts: 2.16.7 fs-extra: 8.1.0 inflected: 2.1.0 inquirer: 7.3.3 mustache: 4.1.0 ora: 3.4.0 ts-morph: 19.0.0 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/application-tester': link:../application-tester '@boostercloud/eslint-config': link:../../tools/eslint-config - '@oclif/test': 3.2.10 + '@oclif/test': 3.2.15 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/child-process-promise': 2.2.6 @@ -154,7 +154,7 @@ importers: '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -169,26 +169,27 @@ importers: eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 - fancy-test: 3.0.14 + fancy-test: 3.0.16 mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/child-process-promise': ^2.2.1 + '@types/faker': 5.1.5 '@types/mocha': 10.0.1 '@types/node': ^18.18.2 '@types/rewire': ^2.5.28 @@ -206,6 +207,7 @@ importers: eslint-plugin-import: ^2.26.0 eslint-plugin-prettier: 3.4.0 eslint-plugin-unicorn: ~44.0.2 + faker: 5.1.0 mocha: 10.2.0 nyc: ^15.1.0 prettier: 2.3.0 @@ -221,14 +223,15 @@ importers: '@effect-ts/core': 0.60.5 child-process-promise: 2.2.1 class-transformer: 0.5.1 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/child-process-promise': 2.2.6 + '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -242,22 +245,23 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -319,19 +323,19 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - fast-check: 3.17.1 - fp-ts: 2.16.5 - graphql-scalars: 1.23.0_graphql@16.8.1 - graphql-subscriptions: 2.0.0_graphql@16.8.1 + fast-check: 3.19.0 + fp-ts: 2.16.7 + graphql-scalars: 1.23.0_graphql@16.9.0 + graphql-subscriptions: 2.0.0_graphql@16.9.0 inflected: 2.1.0 iterall: 1.3.0 jsonwebtoken: 9.0.1 jwks-rsa: 3.0.1 reflect-metadata: 0.1.13 - tslib: 2.6.2 + tslib: 2.6.3 validator: 13.7.0 ws: 8.12.0 devDependencies: @@ -343,7 +347,7 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 @@ -358,35 +362,35 @@ importers: eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 - graphql: 16.8.1 + graphql: 16.9.0 mocha: 10.2.0 mock-jwks: 1.0.3_nock@11.8.2 nock: 11.8.2 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.11.0 - '@boostercloud/cli': workspace:^2.11.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-provider-aws': workspace:^2.11.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-provider-azure': workspace:^2.11.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-provider-local': workspace:^2.11.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/application-tester': workspace:^2.12.1 + '@boostercloud/cli': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-provider-aws': workspace:^2.12.1 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-provider-azure': workspace:^2.12.1 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-provider-local': workspace:^2.12.1 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -463,18 +467,18 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye '@effect/typeclass': 0.23.17_effect@2.4.17 aws-sdk: 2.853.0 effect: 2.4.17 express: 4.19.2 express-unless: 2.1.3 - fast-check: 3.17.1 - graphql: 16.8.1 - tslib: 2.6.2 + fast-check: 3.19.0 + graphql: 16.9.0 + tslib: 2.6.3 ws: 8.12.0 devDependencies: - '@apollo/client': 3.7.13_c5ukhmnf6fm7wz7ctna5fqkm6e + '@apollo/client': 3.7.13_jxorufveymi4xbrutgakjkp5wa '@boostercloud/application-tester': link:../application-tester '@boostercloud/cli': link:../cli '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -492,7 +496,7 @@ importers: '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -521,20 +525,20 @@ importers: prettier: 2.3.0 react: 17.0.2 reflect-metadata: 0.1.13 - rimraf: 5.0.5 + rimraf: 5.0.7 serverless: 3.8.0 serverless-artillery: 0.5.2 sinon: 9.2.3 - subscriptions-transport-ws: 0.11.0_graphql@16.8.1 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + subscriptions-transport-ws: 0.11.0_graphql@16.9.0 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -573,7 +577,7 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/aws-lambda': 8.10.48 @@ -582,7 +586,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -602,10 +606,10 @@ importers: nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 velocityjs: 2.0.6 @@ -628,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-provider-aws': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-provider-aws': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -702,7 +706,7 @@ importers: colors: 1.4.0 constructs: 3.4.344 promptly: 3.2.0 - tslib: 2.6.2 + tslib: 2.6.3 yaml: 1.10.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -713,7 +717,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -731,10 +735,10 @@ importers: nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 velocityjs: 2.0.6 @@ -745,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -784,14 +788,14 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -807,10 +811,10 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -819,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-provider-azure': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-provider-azure': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -898,7 +902,7 @@ importers: ora: 3.4.0 react: 17.0.2 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - tslib: 2.6.2 + tslib: 2.6.3 uuid: 8.3.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -908,7 +912,7 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -923,16 +927,16 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -972,7 +976,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@seald-io/nedb': 4.0.2 - tslib: 2.6.2 + tslib: 2.6.3 ws: 8.12.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -981,7 +985,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 @@ -1000,19 +1004,19 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-provider-local': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-provider-local': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1056,7 +1060,7 @@ importers: cors: 2.8.5 express: 4.19.2 node-schedule: 2.1.1 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -1065,7 +1069,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -1083,17 +1087,17 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1139,10 +1143,10 @@ importers: '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - tslib: 2.6.2 + tslib: 2.6.3 uuid: 8.3.2 web-streams-polyfill: 3.3.3 ws: 8.12.0 @@ -1152,7 +1156,7 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -1165,19 +1169,19 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - fast-check: 3.17.1 - graphql: 16.8.1 + fast-check: 3.19.0 + graphql: 16.9.0 mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 typescript: 5.1.6 ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1200,10 +1204,10 @@ importers: '@effect-ts/core': 0.60.5 reflect-metadata: 0.1.13 ts-morph: 19.0.0 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry eslint: 8.57.0 @@ -1212,9 +1216,9 @@ importers: eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 ts-patch: 3.1.2 typescript: 5.1.6 @@ -1250,10 +1254,6 @@ packages: es5-ext: 0.10.64 dev: true - /@aashutoshrathi/word-wrap/1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - /@ampproject/remapping/2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1262,7 +1262,7 @@ packages: '@jridgewell/trace-mapping': 0.3.25 dev: true - /@apollo/client/3.7.13_c5ukhmnf6fm7wz7ctna5fqkm6e: + /@apollo/client/3.7.13_jxorufveymi4xbrutgakjkp5wa: resolution: {integrity: sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1280,25 +1280,25 @@ packages: subscriptions-transport-ws: optional: true dependencies: - '@graphql-typed-document-node/core': 3.2.0_graphql@16.8.1 + '@graphql-typed-document-node/core': 3.2.0_graphql@16.9.0 '@wry/context': 0.7.4 '@wry/equality': 0.5.7 '@wry/trie': 0.3.2 - graphql: 16.8.1 - graphql-tag: 2.12.6_graphql@16.8.1 + graphql: 16.9.0 + graphql-tag: 2.12.6_graphql@16.9.0 hoist-non-react-statics: 3.3.2 optimism: 0.16.2 prop-types: 15.8.1 react: 17.0.2 response-iterator: 0.2.6 - subscriptions-transport-ws: 0.11.0_graphql@16.8.1 + subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.2 + tslib: 2.6.3 zen-observable-ts: 1.2.5 dev: true - /@apollo/client/3.7.13_sphwu2tmthkxbmhoomzrsl4p7y: + /@apollo/client/3.7.13_pvbge6vplei5rx3k4pxg27es3y: resolution: {integrity: sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1316,20 +1316,20 @@ packages: subscriptions-transport-ws: optional: true dependencies: - '@graphql-typed-document-node/core': 3.2.0_graphql@16.8.1 + '@graphql-typed-document-node/core': 3.2.0_graphql@16.9.0 '@wry/context': 0.7.4 '@wry/equality': 0.5.7 '@wry/trie': 0.3.2 - graphql: 16.8.1 - graphql-tag: 2.12.6_graphql@16.8.1 + graphql: 16.9.0 + graphql-tag: 2.12.6_graphql@16.9.0 hoist-non-react-statics: 3.3.2 optimism: 0.16.2 prop-types: 15.8.1 response-iterator: 0.2.6 - subscriptions-transport-ws: 0.11.0_graphql@16.8.1 + subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.2 + tslib: 2.6.3 zen-observable-ts: 1.2.5 dev: false @@ -1388,7 +1388,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-cognito': 1.204.0_jhanj7vnhseo3o4cwsyzgiowqa '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu @@ -1518,7 +1518,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1672,7 +1672,6 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 - yaml: 1.10.2 transitivePeerDependencies: - '@aws-cdk/aws-lambda' - '@aws-cdk/cx-api' @@ -1788,7 +1787,6 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 constructs: 3.4.344 - punycode: 2.3.1 transitivePeerDependencies: - '@aws-cdk/aws-ec2' - '@aws-cdk/aws-logs' @@ -1934,17 +1932,17 @@ packages: '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u - '@aws-cdk/aws-route53-targets': 1.204.0_yvzacxtkufuieelzdl2p47lu74 + '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq - '@aws-cdk/aws-servicediscovery': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2005,7 +2003,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_duidta2ijoio5sg5x7jqysldja: + /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_xbmlyikxd4zabyotfrt4oo4gli: resolution: {integrity: sha512-/43kzUTU3w9jimPuD5QZxoBN74+9QnOdhAcqIMVCFLPMkVLAxx3vg5g5MWWG+3j6rUoSecrtrP1AP7thZuo5wA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2023,6 +2021,7 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm + '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u @@ -2033,7 +2032,7 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/aws-ec2' + - '@aws-cdk/assets' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' dev: false @@ -2322,7 +2321,7 @@ packages: - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-route53-targets/1.204.0_yvzacxtkufuieelzdl2p47lu74: + /@aws-cdk/aws-route53-targets/1.204.0_2eviprr3zwoouaslbumtdekrhi: resolution: {integrity: sha512-JyILJz/HGRMilpFxrDk/VXv+TN24DoG5Gfdfh8SJoJpptokowN8blaQ2ibf6N0JnFqWSBrs7gMMWB2dR/sXoTQ==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2344,7 +2343,7 @@ packages: '@aws-cdk/aws-cognito': 1.204.0_jhanj7vnhseo3o4cwsyzgiowqa '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-globalaccelerator': 1.204.0_u3bt2hwm6nh6yzg6d6qalghehq '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u @@ -2353,6 +2352,7 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: + - '@aws-cdk/assets' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' @@ -2436,7 +2436,6 @@ packages: '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/lambda-layer-awscli': 1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy - case: 1.6.3 constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' @@ -2541,7 +2540,7 @@ packages: - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-servicediscovery/1.204.0_duidta2ijoio5sg5x7jqysldja: + /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: resolution: {integrity: sha512-K1ckza6oAj3DntEAYmolm2JafkxJ0ekWb+DCl9hkm9l+546j28Qpb4cm8VkgGteNBN4JYACxrIuIxVC2zBLsCg==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2555,11 +2554,12 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 transitivePeerDependencies: + - '@aws-cdk/assets' - '@aws-cdk/aws-iam' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' @@ -2715,9 +2715,6 @@ packages: /@aws-cdk/cloud-assembly-schema/1.203.0: resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.0 dev: false bundledDependencies: - jsonschema @@ -2731,9 +2728,6 @@ packages: This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html - dependencies: - jsonschema: 1.4.1 - semver: 7.6.0 dev: false bundledDependencies: - jsonschema @@ -2742,9 +2736,6 @@ packages: /@aws-cdk/cloud-assembly-schema/2.39.1: resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.0 dev: false bundledDependencies: - jsonschema @@ -2778,11 +2769,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 - '@balena/dockerignore': 1.0.2 constructs: 3.4.344 - fs-extra: 9.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 dev: false bundledDependencies: - fs-extra @@ -2825,7 +2812,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 - semver: 7.6.0 dev: false bundledDependencies: - semver @@ -2840,7 +2826,6 @@ packages: For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html dependencies: '@aws-cdk/cloud-assembly-schema': 1.204.0 - semver: 7.6.0 dev: false bundledDependencies: - semver @@ -2850,7 +2835,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 - semver: 7.6.0 dev: false bundledDependencies: - semver @@ -2887,14 +2871,14 @@ packages: resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} engines: {node: '>=12.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/abort-controller/2.1.2: resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/arm-appservice/13.0.3: @@ -2906,8 +2890,8 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.15.2 - tslib: 2.6.2 + '@azure/core-rest-pipeline': 1.16.1 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -2921,8 +2905,8 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.15.2 - tslib: 2.6.2 + '@azure/core-rest-pipeline': 1.16.1 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -2940,8 +2924,8 @@ packages: jssha: 3.3.1 process: 0.11.10 rhea: 3.0.2 - rhea-promise: 3.0.1 - tslib: 2.6.2 + rhea-promise: 3.0.3 + tslib: 2.6.3 util: 0.12.5 transitivePeerDependencies: - supports-color @@ -2953,7 +2937,7 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.9.0 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/core-client/1.9.2: @@ -2962,11 +2946,11 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.15.2 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -2978,18 +2962,18 @@ packages: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/core-paging/1.6.2: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@azure/core-rest-pipeline/1.15.2: - resolution: {integrity: sha512-BmWfpjc/QXc2ipHOh6LbUzp3ONCaa6xzIssTU0DwH9bbYNXJlGUL6tujx5TrbVd/QQknmS+vlQJGrCq2oL1gZA==} + /@azure/core-rest-pipeline/1.16.1: + resolution: {integrity: sha512-ExPSbgjwCoht6kB7B4MeZoBAxcQSIl29r/bPeazZJx50ej4JJCByimLOrZoIsurISNyJQQHf30b3JfqC3Hb88A==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 @@ -2998,8 +2982,8 @@ packages: '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - tslib: 2.6.2 + https-proxy-agent: 7.0.5 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -3008,7 +2992,7 @@ packages: resolution: {integrity: sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/core-util/1.9.0: @@ -3016,7 +3000,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/cosmos/4.0.0: @@ -3025,15 +3009,15 @@ packages: dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.15.2 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 - debug: 4.3.4 + debug: 4.3.5 fast-json-stable-stringify: 2.1.0 jsbi: 3.2.5 node-abort-controller: 3.1.1 priorityqueuejs: 1.0.0 semaphore: 1.1.0 - tslib: 2.6.2 + tslib: 2.6.3 universal-user-agent: 6.0.1 uuid: 8.3.2 transitivePeerDependencies: @@ -3054,8 +3038,8 @@ packages: is-buffer: 2.0.5 jssha: 3.3.1 process: 0.11.10 - rhea-promise: 3.0.1 - tslib: 2.6.2 + rhea-promise: 3.0.3 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -3071,18 +3055,18 @@ packages: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.15.2 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - '@azure/msal-browser': 2.38.4 + '@azure/msal-browser': 2.39.0 '@azure/msal-common': 7.6.0 '@azure/msal-node': 1.18.4 events: 3.3.0 jws: 4.0.0 open: 8.4.2 stoppable: 1.1.0 - tslib: 2.6.2 + tslib: 2.6.3 uuid: 8.3.2 transitivePeerDependencies: - supports-color @@ -3092,14 +3076,14 @@ packages: resolution: {integrity: sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@azure/msal-browser/2.38.4: - resolution: {integrity: sha512-d1qSanWO9fRKurrxhiyMOIj2jMoGw+2pHb51l2PXNwref7xQO+UeOP2q++5xfHQoUmgTtNuERhitynHla+dvhQ==} + /@azure/msal-browser/2.39.0: + resolution: {integrity: sha512-kks/n2AJzKUk+DBqZhiD+7zeQGBl+WpSOQYzWy6hff3bU0ZrYFqr4keFLlzB5VKuKZog0X59/FGHb1RPBDZLVg==} engines: {node: '>=0.8.0'} dependencies: - '@azure/msal-common': 13.3.1 + '@azure/msal-common': 13.3.3 dev: false /@azure/msal-common/13.3.1: @@ -3107,6 +3091,11 @@ packages: engines: {node: '>=0.8.0'} dev: false + /@azure/msal-common/13.3.3: + resolution: {integrity: sha512-n278DdCXKeiWhLwhEL7/u9HRMyzhUXLefeajiknf6AmEedoiOiv2r5aRJ7LXdT3NGPyubkdIbthaJlVtmuEqvA==} + engines: {node: '>=0.8.0'} + dev: false + /@azure/msal-common/7.6.0: resolution: {integrity: sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==} engines: {node: '>=0.8.0'} @@ -3128,43 +3117,43 @@ packages: dependencies: '@azure/core-auth': 1.7.2 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.15.2 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 '@azure/logger': 1.1.2 jsonwebtoken: 9.0.1 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false - /@babel/code-frame/7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + /@babel/code-frame/7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 - /@babel/compat-data/7.24.4: - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + /@babel/compat-data/7.24.7: + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.24.4: - resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + /@babel/core/7.24.7: + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.24.4 - '@babel/helpers': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.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+core@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 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3172,164 +3161,167 @@ packages: - supports-color dev: true - /@babel/generator/7.24.4: - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + /@babel/generator/7.24.7: + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-compilation-targets/7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + /@babel/helper-compilation-targets/7.24.7: + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + browserslist: 4.23.1 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-environment-visitor/7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + /@babel/helper-environment-visitor/7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 dev: true - /@babel/helper-function-name/7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + /@babel/helper-function-name/7.24.7: + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 dev: true - /@babel/helper-hoist-variables/7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + /@babel/helper-hoist-variables/7.24.7: + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 dev: true - /@babel/helper-module-imports/7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + /@babel/helper-module-imports/7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color dev: true - /@babel/helper-module-transforms/7.23.3_@babel+core@7.24.4: - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + /@babel/helper-module-transforms/7.24.7_@babel+core@7.24.7: + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color dev: true - /@babel/helper-simple-access/7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + /@babel/helper-simple-access/7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color dev: true - /@babel/helper-split-export-declaration/7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + /@babel/helper-split-export-declaration/7.24.7: + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 dev: true - /@babel/helper-string-parser/7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + /@babel/helper-string-parser/7.24.7: + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + /@babel/helper-validator-identifier/7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + /@babel/helper-validator-option/7.24.7: + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.24.4: - resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + /@babel/helpers/7.24.7: + resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 dev: true - /@babel/highlight/7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + /@babel/highlight/7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 - /@babel/parser/7.24.4: - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + /@babel/parser/7.24.7: + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} hasBin: true - /@babel/runtime/7.24.5: - resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + /@babel/runtime/7.24.7: + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template/7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + /@babel/template/7.24.7: + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 - /@babel/traverse/7.24.1: - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + /@babel/traverse/7.24.7: + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - debug: 4.3.4 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + /@babel/types/7.24.7: + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - /@balena/dockerignore/1.0.2: - resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} - dev: false - /@cdktf/cli-core/0.19.2_react@17.0.2: resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} dependencies: @@ -3338,17 +3330,17 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/node-pty-prebuilt-multiarch': 0.10.1-pre.11 '@cdktf/provider-schema': 0.19.2 - '@sentry/node': 7.110.1 + '@sentry/node': 7.118.0 archiver: 5.3.2 cdktf: 0.19.2_constructs@10.3.0 chalk: 4.1.2 chokidar: 3.6.0 cli-spinners: 2.7.0 - codemaker: 1.97.0 + codemaker: 1.101.0 constructs: 10.3.0 cross-fetch: 3.1.5 cross-spawn: 7.0.3 - detect-port: 1.5.1 + detect-port: 1.6.1 execa: 5.1.1 extract-zip: 2.0.1 follow-redirects: 1.15.6 @@ -3360,9 +3352,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.4.3 - jsii-pacmak: 1.97.0 - jsii-srcmak: 0.1.1039 + jsii: 5.4.25 + jsii-pacmak: 1.101.0 + jsii-srcmak: 0.1.1173 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3370,9 +3362,9 @@ packages: open: 7.4.2 parse-gitignore: 1.0.1 pkg-up: 3.1.0 - semver: 7.6.0 + semver: 7.6.2 sscaff: 1.2.274 - stream-buffers: 3.0.2 + stream-buffers: 3.0.3 strip-ansi: 6.0.1 tunnel-agent: 0.6.0 uuid: 8.3.2 @@ -3380,12 +3372,13 @@ packages: xstate: 4.38.3 yargs: 17.7.2 yoga-layout-prebuilt: 1.10.0 - zod: 3.22.4 + zod: 3.23.8 transitivePeerDependencies: - '@types/react' - bufferutil - debug - encoding + - jsii-rosetta - react - supports-color - utf-8-validate @@ -3393,10 +3386,10 @@ packages: /@cdktf/commons/0.19.2: resolution: {integrity: sha512-5rOeb0cSREHQa5XVsGFEV6Ce8Zwo2WxE8GIhmGd/JzeSAByhK8scHFlD3+eENl83W/8lwIkm/nSl9oDHEkENIg==} dependencies: - '@sentry/node': 7.110.1 + '@sentry/node': 7.118.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 - codemaker: 1.97.0 + codemaker: 1.101.0 constructs: 10.3.0 cross-spawn: 7.0.3 follow-redirects: 1.15.6 @@ -3411,22 +3404,22 @@ packages: /@cdktf/hcl2cdk/0.19.2: resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.24.4 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/generator': 7.24.7 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-generator': 0.19.2 '@cdktf/provider-schema': 0.19.2 camelcase: 6.3.0 deep-equal: 2.2.3 - glob: 10.3.12 + glob: 10.4.2 graphology: 0.25.4_graphology-types@0.24.7 graphology-types: 0.24.7 - jsii-rosetta: 5.4.2 + jsii-rosetta: 5.4.24 prettier: 2.8.8 reserved-words: 0.1.2 - zod: 3.22.4 + zod: 3.23.8 transitivePeerDependencies: - debug - supports-color @@ -3440,7 +3433,7 @@ packages: resolution: {integrity: sha512-qvga/nzEtdCJMu/6jJfDqpzbRejvXtNhWFnbubfuYyN5nMNORNXX+POT4j+mQSDQar5bIQ1a812szw/zr47cfw==} requiresBuild: true dependencies: - nan: 2.19.0 + nan: 2.20.0 prebuild-install: 7.1.2 /@cdktf/provider-azurerm/11.2.0_5k7lg6pu6lyti4sdnvep4rdzly: @@ -3461,10 +3454,10 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-schema': 0.19.2 '@types/node': 18.18.8 - codemaker: 1.97.0 + codemaker: 1.101.0 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1039 + jsii-srcmak: 0.1.1173 transitivePeerDependencies: - debug - supports-color @@ -3525,23 +3518,23 @@ packages: '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye effect: 2.4.17 - ini: 4.1.2 + ini: 4.1.3 toml: 3.0.0 - yaml: 2.4.1 + yaml: 2.4.5 dev: false - /@effect/platform-node-shared/0.3.28_cahjalgelcnk6vcj6x2oc46m3a: - resolution: {integrity: sha512-7OBftCRgRSp5y2A0vUTaN4XsIpKRGbU10JPrv8oX29ppOe6K3xupCAu+vehkhfRxr2fWr5PhUb4F4K/xuptizA==} + /@effect/platform-node-shared/0.3.29_cahjalgelcnk6vcj6x2oc46m3a: + resolution: {integrity: sha512-wP5tO8AX0FX969RLiFVUHbrpRqycNUYOjYiMRv+SQ3Tfv24LMIxksKItlmz3EV2cXk5tk5d1iLN+5d60/92wPw==} peerDependencies: - '@effect/platform': ^0.48.28 + '@effect/platform': ^0.48.29 effect: ^2.4.19 dependencies: '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y '@parcel/watcher': 2.4.1 effect: 2.4.17 - multipasta: 0.2.0 + multipasta: 0.2.2 dev: false /@effect/platform-node/0.45.26_cahjalgelcnk6vcj6x2oc46m3a: @@ -3551,11 +3544,11 @@ packages: effect: ^2.4.17 dependencies: '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y - '@effect/platform-node-shared': 0.3.28_cahjalgelcnk6vcj6x2oc46m3a + '@effect/platform-node-shared': 0.3.29_cahjalgelcnk6vcj6x2oc46m3a effect: 2.4.17 mime: 3.0.0 - undici: 6.13.0 - ws: 8.16.0 + undici: 6.19.2 + ws: 8.18.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -3567,11 +3560,11 @@ packages: '@effect/schema': ^0.64.18 effect: ^2.4.17 dependencies: - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye effect: 2.4.17 - find-my-way-ts: 0.1.1 + find-my-way-ts: 0.1.4 isomorphic-ws: 5.0.0_ws@8.12.0 - multipasta: 0.2.0 + multipasta: 0.2.2 path-browserify: 1.0.1 transitivePeerDependencies: - ws @@ -3598,14 +3591,14 @@ packages: effect: 2.4.17 dev: false - /@effect/schema/0.64.18_jsi5r7dvmbit34siukqkgq3mea: + /@effect/schema/0.64.18_5wzfkogs2kowufbtxgyqyusxye: resolution: {integrity: sha512-utMVAjcKqmNlkJ8hzdXf3FWBOsekKbe3xhYzWLLLFCpdbTMkCFeN52l1QRXTk7rla87sNTYdMA+xcES9maOEog==} peerDependencies: effect: ^2.4.17 fast-check: ^3.13.2 dependencies: effect: 2.4.17 - fast-check: 3.17.1 + fast-check: 3.19.0 dev: false /@effect/typeclass/0.23.17_effect@2.4.17: @@ -3625,8 +3618,8 @@ packages: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp/4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + /@eslint-community/regexpp/4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} /@eslint/eslintrc/2.1.4: @@ -3634,7 +3627,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.5 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -3649,19 +3642,20 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@graphql-typed-document-node/core/3.2.0_graphql@16.8.1: + /@graphql-typed-document-node/core/3.2.0_graphql@16.9.0: resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - graphql: 16.8.1 + graphql: 16.9.0 /@humanwhocodes/config-array/0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 + debug: 4.3.5 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3672,13 +3666,14 @@ packages: /@humanwhocodes/object-schema/2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead /@inquirer/checkbox/1.5.2: resolution: {integrity: sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA==} engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 @@ -3688,16 +3683,16 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 /@inquirer/core/2.3.1: resolution: {integrity: sha512-faYAYnIfdEuns3jGKykaog5oUqFiEVbCx9nXGZfUhyEEpKcHt5bpJfZTb3eOBQKo8I/v4sJkZeBHmFlSZQuBCw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 '@types/mute-stream': 0.0.1 - '@types/node': 20.12.7 + '@types/node': 20.14.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3714,9 +3709,9 @@ packages: resolution: {integrity: sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 '@types/mute-stream': 0.0.4 - '@types/node': 20.12.7 + '@types/node': 20.14.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3734,7 +3729,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 external-editor: 3.1.0 @@ -3743,7 +3738,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 figures: 3.2.0 @@ -3752,7 +3747,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 /@inquirer/password/1.1.16: @@ -3760,7 +3755,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3783,7 +3778,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 /@inquirer/select/1.3.3: @@ -3791,14 +3786,16 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 - /@inquirer/type/1.3.0: - resolution: {integrity: sha512-RW4Zf6RCTnInRaOZuRHTqAUl+v6VJuQGglir7nW2BkT3OXOphMhkIFhvFRjorBx2l0VwtC/M4No8vYR65TdN9Q==} + /@inquirer/type/1.4.0: + resolution: {integrity: sha512-AjOqykVyjdJQvtfkNDGUyMYGF8xN50VUxftCQWsOyIo4DFRLr6VQhW0VItGI1JIyQGCGgIpKa7hMMwNhZb4OIw==} engines: {node: '>=18'} + dependencies: + mute-stream: 1.0.0 /@isaacs/cliui/8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -3858,30 +3855,23 @@ packages: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - /@jsii/check-node/1.96.0: - resolution: {integrity: sha512-1EZudLi9wMg6d8JYu8t5s0B+WhyAJvOezhdmFv+PTrTc1Eze7NRY7uZuvBRRkBvqvOWlKkCfBByyeZJnLcxNMA==} + /@jsii/check-node/1.101.0: + resolution: {integrity: sha512-io8u1GAF9XGp2crx0C/WGiJeUnHGw5X0du4fisbrNJHmVVFwcJbBMjbfXKWq+JSzl8fo/JV3F1LqtjsnawKA2A==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 - semver: 7.6.0 + semver: 7.6.2 - /@jsii/check-node/1.97.0: - resolution: {integrity: sha512-n7t4p2JNyr6iBkAv/+9pDPU6hV/sa3Kqdp6oPw5v4/TqNyopGSGtxyOtNXtsBcN6zMibAVXmvhzZA+OBaX1FiQ==} + /@jsii/spec/1.101.0: + resolution: {integrity: sha512-855OnjKm4RTzRA78GGTNBG/GLe6X/vHJYD58zg7Rw8rWS7sU6iB65TM/7P7R3cufVew8umjjPjvW7ygS6ZqITQ==} engines: {node: '>= 14.17.0'} dependencies: - chalk: 4.1.2 - semver: 7.6.0 - - /@jsii/spec/1.97.0: - resolution: {integrity: sha512-5YIq1fgOtToH6eUyTNlqAXuZzUzTD6wBukE7m5DpsxHjQlbR7TVP750FcPqH9qCitCwaePPl5IdCZJ/AS0IwEA==} - engines: {node: '>= 14.17.0'} - dependencies: - ajv: 8.12.0 + ajv: 8.16.0 /@kwsites/file-exists/1.1.1_supports-color@8.1.1: resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} dependencies: - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -3908,7 +3898,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_cwiqw7fmejhb47wvqtchhjxme4: + /@oclif/core/2.16.0_qtieencaeb6d72le3lfodyl2z4: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -3919,7 +3909,7 @@ packages: chalk: 4.1.2 clean-stack: 3.0.1 cli-progress: 3.12.0 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3935,8 +3925,8 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 - tslib: 2.6.2 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + tslib: 2.6.3 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3958,7 +3948,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3974,7 +3964,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - tsconfck: 3.0.3_typescript@5.1.6 + tsconfck: 3.1.1_typescript@5.1.6 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3982,8 +3972,8 @@ packages: - typescript dev: false - /@oclif/core/3.26.3: - resolution: {integrity: sha512-e6Vwu+cb2Sn4qFFpmY1fQLRWIY5ugruMuN94xb7+kyUzxrirYjJATPhuCT1G5xj9Dk+hTMH+Sp6XcHcVTS1lHg==} + /@oclif/core/3.27.0: + resolution: {integrity: sha512-Fg93aNFvXzBq5L7ztVHFP2nYwWU1oTCq48G0TjF/qC1UN36KWa2H5Hsm72kERd5x/sjy2M2Tn4kDEorUlpXOlw==} engines: {node: '>=18.0.0'} dependencies: '@types/cli-progress': 3.11.5 @@ -3994,7 +3984,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -4002,7 +3992,7 @@ packages: indent-string: 4.0.0 is-wsl: 2.2.0 js-yaml: 3.14.1 - minimatch: 9.0.4 + minimatch: 9.0.5 natural-orderby: 2.0.3 object-treeify: 1.1.33 password-prompt: 1.1.3 @@ -4016,11 +4006,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_cwiqw7fmejhb47wvqtchhjxme4: + /@oclif/plugin-help/5.2.20_qtieencaeb6d72le3lfodyl2z4: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_cwiqw7fmejhb47wvqtchhjxme4 + '@oclif/core': 2.16.0_qtieencaeb6d72le3lfodyl2z4 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -4028,13 +4018,13 @@ packages: - typescript dev: false - /@oclif/test/3.2.10: - resolution: {integrity: sha512-9h6rMHnFS7zf0CLmfqtbAmdDSLpYF8otu25YpeqQXOX3b9TYeyfOvD61TkkxJ2T3zpqnrViNzifsF6gfM6xanQ==} + /@oclif/test/3.2.15: + resolution: {integrity: sha512-XqG3RosozNqySkxSXInU12Xec2sPSOkqYHJDfdFZiWG3a8Cxu4dnPiAQvms+BJsOlLQmfEQlSHqiyVUKOMHhXA==} engines: {node: '>=18.0.0'} dependencies: - '@oclif/core': 3.26.3 + '@oclif/core': 3.27.0 chai: 4.4.1 - fancy-test: 3.0.14 + fancy-test: 3.0.16 transitivePeerDependencies: - supports-color dev: true @@ -4153,7 +4143,7 @@ packages: dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 - micromatch: 4.0.5 + micromatch: 4.0.7 node-addon-api: 7.1.0 optionalDependencies: '@parcel/watcher-android-arm64': 2.4.1 @@ -4186,39 +4176,49 @@ packages: localforage: 1.10.0 util: 0.12.5 - /@sentry-internal/tracing/7.110.1: - resolution: {integrity: sha512-4kTd6EM0OP1SVWl2yLn3KIwlCpld1lyhNDeR8G1aKLm1PN+kVsR6YB/jy9KPPp4Q3lN3W9EkTSES3qhP4jVffQ==} + /@sentry-internal/tracing/7.118.0: + resolution: {integrity: sha512-dERAshKlQLrBscHSarhHyUeGsu652bDTUN1FK0m4e3X48M3I5/s+0N880Qjpe5MprNLcINlaIgdQ9jkisvxjfw==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.110.1 - '@sentry/types': 7.110.1 - '@sentry/utils': 7.110.1 + '@sentry/core': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 - /@sentry/core/7.110.1: - resolution: {integrity: sha512-yC1yeUFQlmHj9u/KxKmwOMVanBmgfX+4MZnZU31QPqN95adyZTwpaYFZl4fH5kDVnz7wXJI0qRP8SxuMePtqhw==} + /@sentry/core/7.118.0: + resolution: {integrity: sha512-ol0xBdp3/K11IMAYSQE0FMxBOOH9hMsb/rjxXWe0hfM5c72CqYWL3ol7voPci0GELJ5CZG+9ImEU1V9r6gK64g==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.110.1 - '@sentry/utils': 7.110.1 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 - /@sentry/node/7.110.1: - resolution: {integrity: sha512-n6sNzZJ/ChfyCI1FxuGWgloeevC8j2vax3vXM4IZrSIm5hS1d9L2oCJ4HEPuxGUxCkQ1f4kXPcdmNaQsWH0JBw==} + /@sentry/integrations/7.118.0: + resolution: {integrity: sha512-C2rR4NvIMjokF8jP5qzSf1o2zxDx7IeYnr8u15Kb2+HdZtX559owALR0hfgwnfeElqMhGlJBaKUWZ48lXJMzCQ==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.110.1 - '@sentry/core': 7.110.1 - '@sentry/types': 7.110.1 - '@sentry/utils': 7.110.1 + '@sentry/core': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 + localforage: 1.10.0 + + /@sentry/node/7.118.0: + resolution: {integrity: sha512-79N63DvYKkNPqzmc0cjO+vMZ/nU7+CbE3K3COQNiV7gk58+666G9mRZQJuZVOVebatq5wM5UR0G4LPkwD+J84g==} + engines: {node: '>=8'} + dependencies: + '@sentry-internal/tracing': 7.118.0 + '@sentry/core': 7.118.0 + '@sentry/integrations': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 - /@sentry/types/7.110.1: - resolution: {integrity: sha512-sZxOpM5gfyxvJeWVvNpHnxERTnlqcozjqNcIv29SZ6wonlkekmxDyJ3uCuPv85VO54WLyA4uzskPKnNFHacI8A==} + /@sentry/types/7.118.0: + resolution: {integrity: sha512-2drqrD2+6kgeg+W/ycmiti3G4lJrV3hGjY9PpJ3bJeXrh6T2+LxKPzlgSEnKFaeQWkXdZ4eaUbtTXVebMjb5JA==} engines: {node: '>=8'} - /@sentry/utils/7.110.1: - resolution: {integrity: sha512-eibLo2m1a7sHkOHxYYmRujr3D7ek2l9sv26F1SLoQBVDF7Afw5AKyzPmtA1D+4M9P/ux1okj7cGj3SaBrVpxXA==} + /@sentry/utils/7.118.0: + resolution: {integrity: sha512-43qItc/ydxZV1Zb3Kn2M54RwL9XXFa3IAYBO8S82Qvq5YUYmU2AmJ1jgg7DabXlVSWgMA1HntwqnOV3JLaEnTQ==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.110.1 + '@sentry/types': 7.118.0 /@serverless/dashboard-plugin/6.4.0_supports-color@8.1.1: resolution: {integrity: sha512-2yJQym94sXZhEFbcOVRMJgJ4a2H9Qly94UeUesPwf8bfWCxtiB4l5rxLnCB2aLTuUf/djcuD5/VrNPY1pRU7DA==} @@ -4234,14 +4234,14 @@ packages: js-yaml: 4.1.0 jszip: 3.10.1 lodash: 4.17.21 - memoizee: 0.4.15 + memoizee: 0.4.17 ncjsm: 4.3.2 node-dir: 0.1.17 node-fetch: 2.7.0 open: 7.4.2 - semver: 7.6.0 - simple-git: 3.24.0_supports-color@8.1.1 - type: 2.7.2 + semver: 7.6.2 + simple-git: 3.25.0_supports-color@8.1.1 + type: 2.7.3 uuid: 8.3.2 yamljs: 0.3.0 transitivePeerDependencies: @@ -4255,7 +4255,7 @@ packages: /@serverless/event-mocks/1.1.1: resolution: {integrity: sha512-YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==} dependencies: - '@types/lodash': 4.17.0 + '@types/lodash': 4.17.6 lodash: 4.17.21 dev: true @@ -4263,13 +4263,13 @@ packages: resolution: {integrity: sha512-XltmO/029X76zi0LUFmhsnanhE2wnqH1xf+WBt5K8gumQA9LnrfwLgPxj+VA+mm6wQhy+PCp7H5SS0ZPu7F2Cw==} engines: {node: '>=10.0'} dependencies: - adm-zip: 0.5.12 + adm-zip: 0.5.14 archiver: 5.3.0 - axios: 1.6.8 + axios: 1.7.2 fast-glob: 3.3.2 https-proxy-agent: 5.0.1_supports-color@8.1.1 ignore: 5.3.1 - isomorphic-ws: 4.0.1_ws@7.5.9 + isomorphic-ws: 4.0.1_ws@7.5.10 js-yaml: 3.14.1 jwt-decode: 2.2.0 minimatch: 3.1.2 @@ -4277,7 +4277,7 @@ packages: run-parallel-limit: 1.1.0 throat: 5.0.0 traverse: 0.6.9 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - debug @@ -4310,15 +4310,15 @@ packages: log: 6.3.1 log-node: 8.0.3_log@6.3.1 make-dir: 4.0.0 - memoizee: 0.4.15 + memoizee: 0.4.17 ms: 2.1.3 ncjsm: 4.3.2 node-fetch: 2.7.0 open: 8.4.2 p-event: 4.2.0 supports-color: 8.1.1 - timers-ext: 0.1.7 - type: 2.7.2 + timers-ext: 0.1.8 + type: 2.7.3 uni-global: 1.0.0 uuid: 8.3.2 write-file-atomic: 4.0.2 @@ -4440,14 +4440,14 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/responselike': 1.0.3 dev: true @@ -4470,30 +4470,30 @@ packages: /@types/child-process-promise/2.2.6: resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/cli-progress/3.11.5: resolution: {integrity: sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/cors/2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true - /@types/express-serve-static-core/4.19.0: - resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} + /@types/express-serve-static-core/4.19.5: + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: - '@types/node': 18.19.31 - '@types/qs': 6.9.14 + '@types/node': 18.19.39 + '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4501,8 +4501,8 @@ packages: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 - '@types/qs': 6.9.14 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 /@types/faker/5.1.5: @@ -4512,14 +4512,14 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/http-cache-semantics/4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -4548,16 +4548,16 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true - /@types/lodash/4.17.0: - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + /@types/lodash/4.17.6: + resolution: {integrity: sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==} dev: true /@types/mime/1.3.5: @@ -4577,29 +4577,29 @@ packages: /@types/mute-stream/0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/nedb/1.8.16: resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/needle/2.5.3: resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: false /@types/node-schedule/1.3.2: resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/node/10.17.60: @@ -4611,13 +4611,13 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node/18.19.31: - resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} + /@types/node/18.19.39: + resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} dependencies: undici-types: 5.26.5 - /@types/node/20.12.7: - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + /@types/node/20.14.9: + resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} dependencies: undici-types: 5.26.5 @@ -4625,8 +4625,8 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/qs/6.9.14: - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + /@types/qs/6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} /@types/range-parser/1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -4634,7 +4634,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/rewire/2.5.30: @@ -4648,13 +4648,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: @@ -4679,7 +4679,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/uuid/8.3.0: @@ -4696,14 +4696,14 @@ packages: /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/yauzl/2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 optional: true /@types/yoga-layout/1.9.2: @@ -4720,17 +4720,17 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0_trrslaohprr5r73nykufww5lry '@typescript-eslint/utils': 5.62.0_trrslaohprr5r73nykufww5lry - debug: 4.3.4 + debug: 4.3.5 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare-lite: 1.4.0 - semver: 7.6.0 + semver: 7.6.2 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: @@ -4749,7 +4749,7 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 - debug: 4.3.4 + debug: 4.3.5 eslint: 8.57.0 typescript: 5.1.6 transitivePeerDependencies: @@ -4774,7 +4774,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 '@typescript-eslint/utils': 5.62.0_trrslaohprr5r73nykufww5lry - debug: 4.3.4 + debug: 4.3.5 eslint: 8.57.0 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 @@ -4796,10 +4796,10 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.0 + semver: 7.6.2 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: @@ -4819,7 +4819,7 @@ packages: '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 eslint: 8.57.0 eslint-scope: 5.1.1 - semver: 7.6.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -4838,19 +4838,19 @@ packages: resolution: {integrity: sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@wry/equality/0.5.7: resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} engines: {node: '>=8'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@wry/trie/0.3.2: resolution: {integrity: sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@xmldom/xmldom/0.8.10: resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} @@ -4871,16 +4871,18 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx/5.3.2_acorn@8.11.3: + /acorn-jsx/5.3.2_acorn@8.12.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.3 + acorn: 8.12.1 - /acorn-walk/8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + /acorn-walk/8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.1 /acorn/7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} @@ -4888,8 +4890,8 @@ packages: hasBin: true dev: true - /acorn/8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + /acorn/8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -4897,16 +4899,16 @@ packages: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} - /adm-zip/0.5.12: - resolution: {integrity: sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==} - engines: {node: '>=6.0'} + /adm-zip/0.5.14: + resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==} + engines: {node: '>=12.0'} dev: true /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -4914,7 +4916,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -4923,7 +4925,7 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: false @@ -4942,7 +4944,7 @@ packages: ajv: optional: true dependencies: - ajv: 8.12.0 + ajv: 8.16.0 dev: true /ajv/6.12.6: @@ -4953,8 +4955,8 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv/8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + /ajv/8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -5213,8 +5215,8 @@ packages: fsevents: 2.3.2 dev: false - /aws-sdk/2.1599.0: - resolution: {integrity: sha512-jPb1LAN+s1TLTK+VR3TTJLr//sb3AhhT60Bm9jxB5G/fVeeRczXtBtixNpQ00gksQdkstILYLc9S6MuKMsksxA==} + /aws-sdk/2.1654.0: + resolution: {integrity: sha512-b5ryvXipBJod9Uh1GUfQNgi5tIIiluxJbyqr/hZ/mr5U8WxrrfjVq3nGnx5JjevFKYRqXIywhumsVyanfACzFA==} engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: @@ -5243,8 +5245,8 @@ packages: uuid: 3.3.2 xml2js: 0.4.19 - /axios/1.6.8: - resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + /axios/1.7.2: + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} dependencies: follow-redirects: 1.15.6 form-data: 4.0.0 @@ -5317,25 +5319,25 @@ packages: dependencies: balanced-match: 1.0.2 - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + /braces/3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 /browser-stdout/1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist/4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist/4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001610 - electron-to-chromium: 1.4.736 + caniuse-lite: 1.0.30001640 + electron-to-chromium: 1.4.816 node-releases: 2.0.14 - update-browserslist-db: 1.0.13_browserslist@4.23.0 + update-browserslist-db: 1.1.0_browserslist@4.23.1 dev: true /buffer-alloc-unsafe/1.1.0: @@ -5442,13 +5444,14 @@ packages: /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + dev: true /camelcase/6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001610: - resolution: {integrity: sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==} + /caniuse-lite/1.0.30001640: + resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==} dev: true /cardinal/2.1.1: @@ -5470,7 +5473,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 2.39.1 '@aws-cdk/cx-api': 2.39.1 archiver: 5.3.2 - aws-sdk: 2.1599.0 + aws-sdk: 2.1654.0 glob: 7.2.3 mime: 2.6.0 yargs: 16.2.0 @@ -5485,17 +5488,17 @@ packages: '@cdktf/hcl2cdk': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@inquirer/prompts': 2.3.1 - '@sentry/node': 7.110.1 + '@sentry/node': 7.118.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 - codemaker: 1.97.0 + codemaker: 1.101.0 constructs: 10.3.0 cross-spawn: 7.0.3 https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.4.3 - jsii-pacmak: 1.97.0 + jsii: 5.4.25 + jsii-pacmak: 1.101.0 minimatch: 5.1.6 node-fetch: 2.7.0 pidtree: 0.6.0 @@ -5504,13 +5507,14 @@ packages: xml-js: 1.6.11 yargs: 17.7.2 yoga-layout-prebuilt: 1.10.0 - zod: 3.22.4 + zod: 3.23.8 transitivePeerDependencies: - '@types/react' - bufferutil - debug - encoding - ink + - jsii-rosetta - react - supports-color - utf-8-validate @@ -5520,10 +5524,7 @@ packages: peerDependencies: constructs: ^10.0.25 dependencies: - archiver: 5.3.2 constructs: 10.3.0 - json-stable-stringify: 1.1.1 - semver: 7.6.0 bundledDependencies: - archiver - json-stable-stringify @@ -5559,7 +5560,7 @@ packages: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 @@ -5626,7 +5627,7 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -5641,7 +5642,7 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -5698,8 +5699,8 @@ packages: d: 1.0.2 es5-ext: 0.10.64 es6-iterator: 2.0.3 - memoizee: 0.4.15 - timers-ext: 0.1.7 + memoizee: 0.4.17 + timers-ext: 0.1.8 dev: true /cli-cursor/2.1.0: @@ -5724,8 +5725,8 @@ packages: es5-ext: 0.10.64 mute-stream: 0.0.8 process-utils: 4.0.0 - timers-ext: 0.1.7 - type: 2.7.2 + timers-ext: 0.1.8 + type: 2.7.3 dev: true /cli-progress/3.12.0: @@ -5748,7 +5749,7 @@ packages: dependencies: cli-color: 2.0.4 es5-ext: 0.10.64 - sprintf-kit: 2.0.1 + sprintf-kit: 2.0.2 supports-color: 6.1.0 dev: true @@ -5781,6 +5782,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + dev: true /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -5821,8 +5823,8 @@ packages: dependencies: convert-to-spaces: 1.0.2 - /codemaker/1.97.0: - resolution: {integrity: sha512-24ocuOL6bD9imoQqrYJOwPuL05HlEgdD8NyrtLWDUk2T94I3jwvw9pEmaj9Q4nW9tj9EEM3Ko1zV8mvPr0+mcA==} + /codemaker/1.101.0: + resolution: {integrity: sha512-bAg+N4PA8mniJrCpTYFdaFmJA+3fE1Vjgf4o1EnPc07nw6qRcJsr/D9ZZoutEsvw7UM8OmZp4qZxVzpCqRhhQQ==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -5884,15 +5886,6 @@ packages: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true - /commonmark/0.30.0: - resolution: {integrity: sha512-j1yoUo4gxPND1JWV9xj5ELih0yMv1iCWDG6eEQIPLSWLxzCXiFoyS7kvB+WwU+tZMf4snwJMMtaubV0laFpiBA==} - hasBin: true - dependencies: - entities: 2.0.3 - mdurl: 1.0.1 - minimist: 1.2.8 - string.prototype.repeat: 0.2.0 - /commonmark/0.31.0: resolution: {integrity: sha512-nuDsQ34gjmgAqjyIz6mbRWBW/XPE9wsBempAMBk2V/AA88ekztjTM46oi07J6c6Y/2Y8TdYCZi9L0pIBt/oMZw==} hasBin: true @@ -6070,7 +6063,7 @@ packages: engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 - type: 2.7.2 + type: 2.7.3 dev: true /data-view-buffer/1.0.1: @@ -6101,15 +6094,15 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 dev: true /date-format/4.0.14: resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} - /dayjs/1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + /dayjs/1.11.11: + resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} dev: true /debug/2.6.9: @@ -6122,7 +6115,7 @@ packages: dependencies: ms: 2.1.3 - /debug/4.3.4: + /debug/4.3.4_supports-color@8.1.1: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -6132,9 +6125,22 @@ packages: optional: true dependencies: ms: 2.1.2 + supports-color: 8.1.1 + dev: true - /debug/4.3.4_supports-color@8.1.1: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + /debug/4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /debug/4.3.5_supports-color@8.1.1: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -6148,6 +6154,7 @@ packages: /decamelize/1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} + dev: true /decamelize/4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} @@ -6223,8 +6230,8 @@ packages: dependencies: type-detect: 4.0.8 - /deep-eql/4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + /deep-eql/4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 @@ -6288,7 +6295,7 @@ packages: es5-ext: 0.10.64 event-emitter: 0.3.5 next-tick: 1.1.0 - timers-ext: 0.1.7 + timers-ext: 0.1.8 dev: true /define-data-property/1.1.4: @@ -6342,12 +6349,13 @@ packages: resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} engines: {node: '>=0.10.0'} - /detect-port/1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + /detect-port/1.6.1: + resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} + engines: {node: '>= 4.0.0'} hasBin: true dependencies: address: 1.2.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -6407,9 +6415,9 @@ packages: resolution: {integrity: sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw==} hasBin: true dependencies: - semver: 7.6.0 + semver: 7.6.2 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240604 + typescript: 5.6.0-dev.20240705 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -6438,10 +6446,10 @@ packages: engines: {node: '>=0.10.0'} hasBin: true dependencies: - jake: 10.8.7 + jake: 10.9.1 - /electron-to-chromium/1.4.736: - resolution: {integrity: sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==} + /electron-to-chromium/1.4.816: + resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} dev: true /emoji-regex/7.0.3: @@ -6463,9 +6471,6 @@ packages: dependencies: once: 1.4.0 - /entities/2.0.3: - resolution: {integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==} - /entities/3.0.1: resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} engines: {node: '>=0.12'} @@ -6495,7 +6500,7 @@ packages: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -6511,7 +6516,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -6609,7 +6614,7 @@ packages: es6-iterator: 2.0.3 es6-symbol: 3.1.4 event-emitter: 0.3.5 - type: 2.7.2 + type: 2.7.3 dev: true /es6-symbol/3.1.4: @@ -6660,7 +6665,7 @@ packages: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.14.0 resolve: 1.22.8 /eslint-module-utils/2.8.1_eslint@8.57.0: @@ -6691,7 +6696,7 @@ packages: eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.8.1_eslint@8.57.0 hasown: 2.0.2 - is-core-module: 2.13.1 + is-core-module: 2.14.0 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 @@ -6722,7 +6727,7 @@ packages: peerDependencies: eslint: '>=8.23.1' dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 ci-info: 3.9.0 clean-regexp: 1.0.0 eslint: 8.57.0 @@ -6735,7 +6740,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 safe-regex: 2.1.1 - semver: 7.6.0 + semver: 7.6.2 strip-indent: 3.0.0 dev: true @@ -6789,11 +6794,11 @@ packages: engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} hasBin: true dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 - debug: 4.3.4 + debug: 4.3.5 doctrine: 3.0.0 eslint-scope: 5.1.1 eslint-utils: 1.4.3 @@ -6836,7 +6841,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.0 - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 @@ -6846,7 +6851,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.5 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -6870,7 +6875,7 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: @@ -6891,7 +6896,7 @@ packages: d: 1.0.2 es5-ext: 0.10.64 event-emitter: 0.3.5 - type: 2.7.2 + type: 2.7.3 dev: true /espree/6.2.1: @@ -6907,8 +6912,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2_acorn@8.11.3 + acorn: 8.12.1 + acorn-jsx: 5.3.2_acorn@8.12.1 eslint-visitor-keys: 3.4.3 /esprima/4.0.1: @@ -7059,7 +7064,7 @@ packages: /ext/1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: - type: 2.7.2 + type: 2.7.3 dev: true /external-editor/3.1.0: @@ -7075,7 +7080,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.4 + debug: 4.3.5 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -7087,13 +7092,14 @@ packages: resolution: {integrity: sha512-RrWKFSSA/aNLP0g3o2WW1Zez7/MnMr7xkiZmoCfAGZmdkDQZ6l2KtuXHN5XjdvpRjDl8+3vf+Rrtl06Z352+Mw==} dev: true - /fancy-test/3.0.14: - resolution: {integrity: sha512-FkiDltQA8PBZzw5tUnMrP1QtwIdNQWxxbZK5C22M9wu6HfFNciwkG3D9siT4l4s1fBTDaEG+Fdkbpi9FDTxtrg==} + /fancy-test/3.0.16: + resolution: {integrity: sha512-y1xZFpyYbE2TMiT+agOW2Emv8gr73zvDrKKbcXc8L+gMyIVJFn71cc4ICfzu2zEXjHirpHpdDJN0JBX99wwDXQ==} engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.2.18 - '@types/lodash': 4.17.0 - '@types/node': 18.19.31 + '@types/lodash': 4.17.6 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7104,8 +7110,8 @@ packages: - supports-color dev: true - /fast-check/3.17.1: - resolution: {integrity: sha512-jIKXJVe6ZO0SpwEgVtEVujTf8TwjI9wMXFJCjsDHUB3RroUbXBgF4kOSz3A7MW0UR26aqsoB8i9O2mjtjERAiA==} + /fast-check/3.19.0: + resolution: {integrity: sha512-CO2JX/8/PT9bDGO1iXa5h5ey1skaKI1dvecERyhH4pp3PGjwd3KIjMAXEg79Ps9nclsdt4oPbfqiAnLU0EwrAQ==} engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 @@ -7128,7 +7134,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -7233,8 +7239,8 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /fill-range/7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 @@ -7260,8 +7266,8 @@ packages: pkg-dir: 4.2.0 dev: true - /find-my-way-ts/0.1.1: - resolution: {integrity: sha512-nXUdq29JRQ1tYa1/n+DHTVChMARJHz+gi7sDZibwQukzHP7Hrr6s+sxKbaIM8xB3LzhSBJy5yLb0JhIUmHmOiA==} + /find-my-way-ts/0.1.4: + resolution: {integrity: sha512-naNl2YZ8m9LlYtPZathQBjXQQ8069uYBFq8We6w9AEGddJErVh0JZw8jd/C/2W9Ib3BjTnu+YN0/rR+ytWxNdw==} dependencies: fast-querystring: 1.1.2 dev: false @@ -7286,6 +7292,7 @@ packages: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + dev: true /find-up/5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -7345,8 +7352,8 @@ packages: signal-exit: 3.0.7 dev: true - /foreground-child/3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + /foreground-child/3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 @@ -7367,15 +7374,15 @@ packages: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.12.1 + qs: 6.12.2 dev: true /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - /fp-ts/2.16.5: - resolution: {integrity: sha512-N8T8PwMSeTKKtkm9lkj/zSTAnPC/aJIIrQhnHxxkL0KLsRCNUPANksJOlMXxcKKCo7H1ORP3No9EMD+fP0tsdA==} + /fp-ts/2.16.7: + resolution: {integrity: sha512-Xiux+4mHHPj32/mrqN3XIIqEKk/MousgoC2FIaCwehpPjBI4oDrLvQEyQ/2T1sbTe0s/YIQqF98z+uHJLVoS9Q==} dev: false /fresh/0.5.2: @@ -7441,8 +7448,8 @@ packages: es5-ext: 0.10.64 event-emitter: 0.3.5 ignore: 5.3.1 - memoizee: 0.4.15 - type: 2.7.2 + memoizee: 0.4.17 + type: 2.7.3 dev: true /fsevents/2.3.2: @@ -7556,16 +7563,17 @@ packages: dependencies: is-glob: 4.0.3 - /glob/10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} + /glob/10.4.2: + resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} + engines: {node: '>=16 || 14 >=14.18'} hasBin: true dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.2 + foreground-child: 3.2.1 + jackspeak: 3.4.0 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 /glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} @@ -7580,6 +7588,7 @@ packages: /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -7615,11 +7624,12 @@ packages: dependencies: type-fest: 0.20.2 - /globalthis/1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + /globalthis/1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + gopd: 1.0.1 /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -7678,36 +7688,36 @@ packages: graphology-types: 0.24.7 obliterator: 2.0.4 - /graphql-scalars/1.23.0_graphql@16.8.1: + /graphql-scalars/1.23.0_graphql@16.9.0: resolution: {integrity: sha512-YTRNcwitkn8CqYcleKOx9IvedA8JIERn8BRq21nlKgOr4NEcTaWEG0sT+H92eF3ALTFbPgsqfft4cw+MGgv0Gg==} engines: {node: '>=10'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - graphql: 16.8.1 - tslib: 2.6.2 + graphql: 16.9.0 + tslib: 2.6.3 dev: false - /graphql-subscriptions/2.0.0_graphql@16.8.1: + /graphql-subscriptions/2.0.0_graphql@16.9.0: resolution: {integrity: sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA==} peerDependencies: graphql: ^15.7.2 || ^16.0.0 dependencies: - graphql: 16.8.1 + graphql: 16.9.0 iterall: 1.3.0 dev: false - /graphql-tag/2.12.6_graphql@16.8.1: + /graphql-tag/2.12.6_graphql@16.9.0: resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} engines: {node: '>=10'} peerDependencies: 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 dependencies: - graphql: 16.8.1 - tslib: 2.6.2 + graphql: 16.9.0 + tslib: 2.6.3 - /graphql/16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + /graphql/16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} /has-bigints/1.0.2: @@ -7796,7 +7806,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: false @@ -7814,7 +7824,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -7823,17 +7833,17 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2_supports-color@8.1.1 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true - /https-proxy-agent/7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + /https-proxy-agent/7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: false @@ -7891,6 +7901,7 @@ packages: /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -7901,8 +7912,8 @@ packages: /ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - /ini/4.1.2: - resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==} + /ini/4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false @@ -7990,7 +8001,7 @@ packages: type-fest: 0.12.0 widest-line: 3.1.0 wrap-ansi: 6.2.0 - ws: 7.5.9 + ws: 7.5.10 yoga-layout-prebuilt: 1.10.0 transitivePeerDependencies: - bufferutil @@ -8116,8 +8127,9 @@ packages: dependencies: ci-info: 2.0.0 - /is-core-module/2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + /is-core-module/2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 @@ -8305,12 +8317,12 @@ packages: /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /isomorphic-ws/4.0.1_ws@7.5.9: + /isomorphic-ws/4.0.1_ws@7.5.10: resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} peerDependencies: ws: '*' dependencies: - ws: 7.5.9 + ws: 7.5.10 dev: true /isomorphic-ws/5.0.0_ws@8.12.0: @@ -8337,7 +8349,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -8370,7 +8382,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.4 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -8388,16 +8400,16 @@ packages: /iterall/1.3.0: resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} - /jackspeak/2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + /jackspeak/3.4.0: + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - /jake/10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + /jake/10.9.1: + resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} engines: {node: '>=10'} hasBin: true dependencies: @@ -8414,8 +8426,8 @@ packages: resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} engines: {node: '>= 0.6.0'} - /jose/4.15.5: - resolution: {integrity: sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==} + /jose/4.15.9: + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -8442,72 +8454,72 @@ packages: engines: {node: '>=4'} hasBin: true - /jsii-pacmak/1.97.0: - resolution: {integrity: sha512-ehaQS/hrWN+alBDN6BaYMocuIbZno1OiXhemW0tqQw0RZeH3noFaBIus78cbVz2uE0JXpWCqZf89VF32Uu5jeQ==} + /jsii-pacmak/1.101.0: + resolution: {integrity: sha512-07a04KtOj+Kmx+5XQVD1JG6QOh6JNqFWh4bbzMDKiFx7JoHhQnLq07b/OlUpCuP7J7Q9WaXXYM59EUQpXO07wg==} engines: {node: '>= 14.17.0'} hasBin: true + peerDependencies: + jsii-rosetta: ^1.101.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 clone: 2.1.2 - codemaker: 1.97.0 - commonmark: 0.30.0 + codemaker: 1.101.0 + commonmark: 0.31.0 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.97.0 - jsii-rosetta: 1.97.0 - semver: 7.6.0 + jsii-reflect: 1.101.0 + semver: 7.6.2 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - /jsii-reflect/1.97.0: - resolution: {integrity: sha512-E1oV/kliliFiqR9TxX2H5jgUObtq300Jk0kXBJKq06A/kXQk1rmCIoxnV5VFAxyhnPkmhgudpUIuzWh6STUdJg==} + /jsii-pacmak/1.101.0_jsii-rosetta@5.4.24: + resolution: {integrity: sha512-07a04KtOj+Kmx+5XQVD1JG6QOh6JNqFWh4bbzMDKiFx7JoHhQnLq07b/OlUpCuP7J7Q9WaXXYM59EUQpXO07wg==} engines: {node: '>= 14.17.0'} hasBin: true + peerDependencies: + jsii-rosetta: ^1.101.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 - chalk: 4.1.2 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 + clone: 2.1.2 + codemaker: 1.101.0 + commonmark: 0.31.0 + escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - oo-ascii-tree: 1.97.0 + jsii-reflect: 1.101.0 + jsii-rosetta: 5.4.24 + semver: 7.6.2 + spdx-license-list: 6.9.0 + xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-rosetta/1.97.0: - resolution: {integrity: sha512-cxHGvwMrH7lt+O24afEI2ljMbCOtTBCRwQU7Bia87nLkYNpysfFrrz+vUGZ1yi/7DOxhQShm1i4VGJJ8UhvEAg==} + /jsii-reflect/1.101.0: + resolution: {integrity: sha512-ZCFb+laktj/ekNadUYksf+jLZq4fjoQeNe344GwslJOaemGjgAeqy0atV2H8nvTYU8ubszFApUPpdoRvtxgdPw==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 - '@xmldom/xmldom': 0.8.10 - commonmark: 0.30.0 - fast-glob: 3.3.2 - jsii: 1.97.0 - semver: 7.6.0 - semver-intersect: 1.5.0 - stream-json: 1.8.0 - typescript: 3.9.10 - workerpool: 6.5.1 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 + chalk: 4.1.2 + fs-extra: 10.1.0 + oo-ascii-tree: 1.101.0 yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - /jsii-rosetta/5.4.2: - resolution: {integrity: sha512-Bo+8lLuRQ0YiXiNImJ6XLrmAY/GzildnYd1B5MLlc+IpjbgFbynhFIyGjYAVf4+/VLFJRoOCJtZ40sM+ua8Ecw==} + /jsii-rosetta/5.4.24: + resolution: {integrity: sha512-KFeyqpIqbA6eDfmC9DdsG13kSANev47amXrH+ngx8WhXTre8D11V65BiSWlyBdvuUFvmGaN8eUd66+dyPcxndA==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 '@xmldom/xmldom': 0.8.10 chalk: 4.1.2 commonmark: 0.31.0 fast-glob: 3.3.2 - jsii: 5.4.3 - semver: 7.6.0 + jsii: 5.4.25 + semver: 7.6.2 semver-intersect: 1.5.0 stream-json: 1.8.0 typescript: 5.4.5 @@ -8516,73 +8528,32 @@ packages: transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1039: - resolution: {integrity: sha512-3lBjyxBy5UpPGK8bXFmVRzaoK6caDQ5DO40Qbyv3LOWtrsuUQmuVI2/5wRwNtfg6sFzOFD3+kE3LZuNXo7QE/Q==} + /jsii-srcmak/0.1.1173: + resolution: {integrity: sha512-UvrCJwRZyaW0mQg3Ky5utH31dngKMfKJetfh4JSLsKJM7AM+gJ+UvEbqd18ikMgD72KS3VQKgrwmLVF34GEu+g==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.3.34 - jsii-pacmak: 1.97.0 + jsii: 5.4.25 + jsii-pacmak: 1.101.0_jsii-rosetta@5.4.24 + jsii-rosetta: 5.4.24 ncp: 2.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - supports-color - - /jsii/1.97.0: - resolution: {integrity: sha512-C3GA2Q50DkHnFozg7HKel7ZaBMCUKb/dzgH2ykfrbuJ/C/KebkPkqY/XRf95zGB42mzagPfawSLDFQiGGueQ9w==} - engines: {node: '>= 14.17.0'} - hasBin: true - dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 - case: 1.6.3 - chalk: 4.1.2 - fast-deep-equal: 3.1.3 - fs-extra: 10.1.0 - log4js: 6.9.1 - semver: 7.6.0 - semver-intersect: 1.5.0 - sort-json: 2.0.1 - spdx-license-list: 6.9.0 - typescript: 3.9.10 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - - /jsii/5.3.34: - resolution: {integrity: sha512-vJc+DwAdkr1k66vn2YlybJyyv7fiCV8jOccXmdazZ7Ob+lbED0UTYZDTGFwnqj2feP17maIj1R0MaiDqxjsjKw==} - engines: {node: '>= 18.12.0'} - hasBin: true - dependencies: - '@jsii/check-node': 1.96.0 - '@jsii/spec': 1.97.0 - case: 1.6.3 - chalk: 4.1.2 - downlevel-dts: 0.11.0 - fast-deep-equal: 3.1.3 - log4js: 6.9.1 - semver: 7.6.0 - semver-intersect: 1.5.0 - sort-json: 2.0.1 - spdx-license-list: 6.9.0 - typescript: 5.3.3 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.4.3: - resolution: {integrity: sha512-+alxW2wfBQBCjesy2kvMl6yML8m7hD/buIkVVQNSGt0R0ObhsLvlanS2lRWpNkdfVtDnNk/ke5UFmMSfJ/vy0Q==} + /jsii/5.4.25: + resolution: {integrity: sha512-taEVKh+SWtg0nNGzk5YrLGjWRxSnVaVfxgec4BtthwBgmaUH+QMKIIT/AM84s1WRVMWBG+GnZKgKFv+L4jKLig==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 case: 1.6.3 chalk: 4.1.2 downlevel-dts: 0.11.0 fast-deep-equal: 3.1.3 log4js: 6.9.1 - semver: 7.6.0 + semver: 7.6.2 semver-intersect: 1.5.0 sort-json: 2.0.1 spdx-license-list: 6.9.0 @@ -8629,15 +8600,6 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json-stable-stringify/1.1.1: - resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -8666,13 +8628,6 @@ packages: optionalDependencies: graceful-fs: 4.2.11 - /jsonify/0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} - - /jsonschema/1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} - dev: false - /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -8696,7 +8651,7 @@ packages: jws: 3.2.2 lodash: 4.17.21 ms: 2.1.3 - semver: 7.6.0 + semver: 7.6.2 /jssha/3.3.1: resolution: {integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==} @@ -8739,10 +8694,10 @@ packages: dependencies: '@types/express': 4.17.21 '@types/jsonwebtoken': 9.0.1 - debug: 4.3.4 - jose: 4.15.5 + debug: 4.3.5 + jose: 4.15.9 limiter: 1.1.5 - lru-memoizer: 2.2.0 + lru-memoizer: 2.3.0 transitivePeerDependencies: - supports-color @@ -8833,6 +8788,7 @@ packages: engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: true /locate-path/6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -8914,9 +8870,9 @@ packages: d: 1.0.2 es5-ext: 0.10.64 log: 6.3.1 - sprintf-kit: 2.0.1 + sprintf-kit: 2.0.2 supports-color: 8.1.1 - type: 2.7.2 + type: 2.7.3 dev: true /log-symbols/2.2.0: @@ -8941,8 +8897,8 @@ packages: duration: 0.2.2 es5-ext: 0.10.64 event-emitter: 0.3.5 - sprintf-kit: 2.0.1 - type: 2.7.2 + sprintf-kit: 2.0.2 + type: 2.7.3 uni-global: 1.0.0 dev: true @@ -8951,9 +8907,9 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.4 + debug: 4.3.5 flatted: 3.3.1 - rfdc: 1.3.1 + rfdc: 1.4.1 streamroller: 3.1.5 transitivePeerDependencies: - supports-color @@ -8979,16 +8935,10 @@ packages: engines: {node: '>=8'} dev: true - /lru-cache/10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + /lru-cache/10.3.0: + resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} engines: {node: 14 || >=16.14} - /lru-cache/4.0.2: - resolution: {integrity: sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==} - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -9007,11 +8957,11 @@ packages: dependencies: yallist: 4.0.0 - /lru-memoizer/2.2.0: - resolution: {integrity: sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==} + /lru-memoizer/2.3.0: + resolution: {integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==} dependencies: lodash.clonedeep: 4.5.0 - lru-cache: 4.0.2 + lru-cache: 6.0.0 /lru-queue/0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} @@ -9042,7 +8992,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.0 + semver: 7.6.2 dev: true /make-error/1.3.6: @@ -9063,8 +9013,9 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - /memoizee/0.4.15: - resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + /memoizee/0.4.17: + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -9073,7 +9024,7 @@ packages: is-promise: 2.2.2 lru-queue: 0.1.0 next-tick: 1.1.0 - timers-ext: 0.1.7 + timers-ext: 0.1.8 dev: true /merge-descriptors/1.0.1: @@ -9090,11 +9041,11 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + /micromatch/4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 /mime-db/1.52.0: @@ -9171,8 +9122,8 @@ packages: brace-expansion: 2.0.1 dev: false - /minimatch/9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + /minimatch/9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -9192,8 +9143,8 @@ packages: engines: {node: '>=8'} dev: true - /minipass/7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + /minipass/7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} /minizlib/2.1.2: @@ -9282,8 +9233,8 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /multipasta/0.2.0: - resolution: {integrity: sha512-MNAym1D9GTpY0/CKYJFDmaJ3TfhblfsQyyipCCSsgasMZCAyR2fCNDJhR7lACfJ0YMwQSDi5RHeIdJcsze6WMg==} + /multipasta/0.2.2: + resolution: {integrity: sha512-KKGdmXIJUmt9BV45LsbUdMnju8eCNSyF9KpbyqK2E3wQXjpPQOg52/Hc+nsmBacmEkNxLVT5h1y3ZgEXB4prXg==} dev: false /mustache/4.1.0: @@ -9298,8 +9249,8 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /nan/2.19.0: - resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + /nan/2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} /nanoid/2.1.11: resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==} @@ -9337,7 +9288,7 @@ packages: ext: 1.7.0 find-requires: 1.0.0 fs2: 0.3.9 - type: 2.7.2 + type: 2.7.3 dev: true /ncp/2.0.0: @@ -9351,7 +9302,7 @@ packages: dependencies: debug: 3.2.7 iconv-lite: 0.4.24 - sax: 1.3.0 + sax: 1.4.1 dev: false /negotiator/0.6.3: @@ -9389,7 +9340,7 @@ packages: resolution: {integrity: sha512-udrFXJ/aqPM9NmrKOcNJ67lvrs/zroNq2sbumhaMPW5JLNy/6LsWiZEwU9DiQIUHOcOCR4MPeqIG7uQNbDGExA==} engines: {node: '>= 8.0'} dependencies: - debug: 4.3.4 + debug: 4.3.5 json-stringify-safe: 5.0.1 lodash: 4.17.21 mkdirp: 0.5.6 @@ -9402,18 +9353,18 @@ packages: resolution: {integrity: sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==} engines: {node: '>= 10.13'} dependencies: - debug: 4.3.4 + debug: 4.3.5 json-stringify-safe: 5.0.1 propagate: 2.0.1 transitivePeerDependencies: - supports-color dev: true - /node-abi/3.57.0: - resolution: {integrity: sha512-Dp+A9JWxRaKuHP35H77I4kCKesDy5HUDEmScia2FyncMTOXASMyg251F5PhFoDA5uqBrDDffiLpbqnrZmNXW+g==} + /node-abi/3.65.0: + resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} engines: {node: '>=10'} dependencies: - semver: 7.6.0 + semver: 7.6.2 /node-abort-controller/3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} @@ -9518,10 +9469,10 @@ packages: dependencies: ext: 1.7.0 fs2: 0.3.9 - memoizee: 0.4.15 + memoizee: 0.4.17 node-fetch: 2.7.0 - semver: 7.6.0 - type: 2.7.2 + semver: 7.6.2 + type: 2.7.3 validate-npm-package-name: 3.0.0 transitivePeerDependencies: - encoding @@ -9584,8 +9535,9 @@ packages: resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} engines: {node: '>= 6'} - /object-inspect/1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + /object-inspect/1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} /object-is/1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} @@ -9663,8 +9615,8 @@ packages: dependencies: mimic-fn: 2.1.0 - /oo-ascii-tree/1.97.0: - resolution: {integrity: sha512-LVwQ1J6icSJ2buccnLCWdDtxxTwB0HXoB7PLPap4u90T9pAs2HqE35DpV6nV/6O1aVEO4OzwDeE2gLCUCkoGWQ==} + /oo-ascii-tree/1.101.0: + resolution: {integrity: sha512-hNE9Nfvo4HLa9/dAiaiXUm64KHUvgBa7jPftsb8gZdTv1G1wSMMnd9j7SMcRzaMbDEqi+0cfgeBSIcsKy+k0vA==} engines: {node: '>= 14.17.0'} /open/7.4.2: @@ -9700,16 +9652,16 @@ packages: word-wrap: 1.2.5 dev: true - /optionator/0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + /optionator/0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 /ora/3.4.0: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} @@ -9787,6 +9739,7 @@ packages: engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: true /p-locate/5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} @@ -9822,6 +9775,9 @@ packages: release-zalgo: 1.0.0 dev: true + /package-json-from-dist/1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + /pako/1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: true @@ -9840,7 +9796,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9897,12 +9853,12 @@ packages: /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry/1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + /path-scurry/1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 + lru-cache: 10.3.0 + minipass: 7.1.2 /path-to-regexp/0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -9935,8 +9891,8 @@ packages: /pend/1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors/1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -10008,7 +9964,7 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.57.0 + node-abi: 3.65.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -10060,8 +10016,8 @@ packages: dependencies: ext: 1.7.0 fs2: 0.3.9 - memoizee: 0.4.15 - type: 2.7.2 + memoizee: 0.4.17 + type: 2.7.3 dev: true /process/0.11.10: @@ -10136,8 +10092,8 @@ packages: dependencies: side-channel: 1.0.6 - /qs/6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + /qs/6.12.2: + resolution: {integrity: sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 @@ -10194,7 +10150,7 @@ packages: resolution: {integrity: sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==} dependencies: shell-quote: 1.8.1 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -10345,6 +10301,7 @@ packages: /require-main-filename/2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true /reserved-words/0.1.2: resolution: {integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==} @@ -10366,7 +10323,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10407,15 +10364,15 @@ packages: - supports-color dev: true - /rfdc/1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + /rfdc/1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - /rhea-promise/3.0.1: - resolution: {integrity: sha512-Fcqgml7lgoyi7fH1ClsSyFr/xwToijEN3rULFgrIcL+7EHeduxkWogFxNHjFzHf2YGScAckJDaDxS1RdlTUQYw==} + /rhea-promise/3.0.3: + resolution: {integrity: sha512-a875P5YcMkePSTEWMsnmCQS7Y4v/XvIw7ZoMtJxqtQRZsqSA6PsZxuz4vktyRykPuUgdNsA6F84dS3iEXZoYnQ==} dependencies: - debug: 3.2.7 + debug: 4.3.5 rhea: 3.0.2 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -10423,13 +10380,14 @@ packages: /rhea/3.0.2: resolution: {integrity: sha512-0G1ZNM9yWin8VLvTxyISKH6KfR6gl1TW/1+5yMKPf2r1efhkzTLze09iFtT2vpDjuWIVtSmXz8r18lk/dO8qwQ==} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: false /rimraf/2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -10437,6 +10395,7 @@ packages: /rimraf/2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -10444,16 +10403,17 @@ packages: /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 - /rimraf/5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} + /rimraf/5.0.7: + resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} + engines: {node: '>=14.18'} hasBin: true dependencies: - glob: 10.3.12 + glob: 10.4.2 dev: true /run-async/2.4.1: @@ -10484,7 +10444,7 @@ packages: /rxjs/7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: true /safe-array-concat/1.1.2: @@ -10522,8 +10482,8 @@ packages: /sax/1.2.1: resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} - /sax/1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /sax/1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} /scheduler/0.20.2: resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} @@ -10557,12 +10517,10 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver/7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + /semver/7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true - dependencies: - lru-cache: 6.0.0 /send/0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -10625,10 +10583,10 @@ packages: '@serverless/dashboard-plugin': 6.4.0_supports-color@8.1.1 '@serverless/platform-client': 4.5.1_supports-color@8.1.1 '@serverless/utils': 6.15.0 - ajv: 8.12.0 + ajv: 8.16.0 ajv-formats: 2.1.1 archiver: 5.3.0 - aws-sdk: 2.1599.0 + aws-sdk: 2.1654.0 bluebird: 3.7.2 cachedir: 2.4.0 chalk: 4.1.2 @@ -10636,7 +10594,7 @@ packages: ci-info: 3.9.0 cli-progress-footer: 2.3.3 d: 1.0.2 - dayjs: 1.11.10 + dayjs: 1.11.11 decompress: 4.2.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -10655,8 +10613,8 @@ packages: json-cycle: 1.5.0 json-refs: 3.0.15_supports-color@8.1.1 lodash: 4.17.21 - memoizee: 0.4.15 - micromatch: 4.0.5 + memoizee: 0.4.17 + micromatch: 4.0.7 node-fetch: 2.7.0 npm-registry-utilities: 1.0.0 object-hash: 2.2.0 @@ -10665,13 +10623,13 @@ packages: process-utils: 4.0.0 promise-queue: 2.2.5 require-from-string: 2.0.2 - semver: 7.6.0 + semver: 7.6.2 signal-exit: 3.0.7 strip-ansi: 6.0.1 supports-color: 8.1.1 tar: 6.2.1 - timers-ext: 0.1.7 - type: 2.7.2 + timers-ext: 0.1.8 + type: 2.7.3 untildify: 4.0.0 uuid: 8.3.2 yaml-ast-parser: 0.0.43 @@ -10684,6 +10642,7 @@ packages: /set-blocking/2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true /set-function-length/1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -10760,7 +10719,7 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -10779,12 +10738,12 @@ packages: once: 1.4.0 simple-concat: 1.0.1 - /simple-git/3.24.0_supports-color@8.1.1: - resolution: {integrity: sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==} + /simple-git/3.25.0_supports-color@8.1.1: + resolution: {integrity: sha512-KIY5sBnzc4yEcJXW7Tdv4viEz8KyG+nU0hay+DWZasvdFOYKeUZ6Xc25LUHHjw0tinPT7O1eY6pzX7pRT1K8rw==} dependencies: '@kwsites/file-exists': 1.1.1_supports-color@8.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -10913,7 +10872,7 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 + spdx-license-ids: 3.0.18 dev: true /spdx-exceptions/2.5.0: @@ -10924,11 +10883,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 + spdx-license-ids: 3.0.18 dev: true - /spdx-license-ids/3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + /spdx-license-ids/3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} dev: true /spdx-license-list/6.9.0: @@ -10944,8 +10903,9 @@ packages: /sprintf-js/1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - /sprintf-kit/2.0.1: - resolution: {integrity: sha512-2PNlcs3j5JflQKcg4wpdqpZ+AjhQJ2OZEo34NXDtlB0tIPG84xaaXhpA8XFacFiwjKA4m49UOYG83y3hbMn/gQ==} + /sprintf-kit/2.0.2: + resolution: {integrity: sha512-lnapdj6W4LflHZGKvl9eVkz5YF0xaTrqpRWVA4cNVOTedwqifIP8ooGImldzT/4IAN5KXFQAyXTdLidYVQdyag==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 dev: true @@ -10968,7 +10928,7 @@ packages: resolution: {integrity: sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==} engines: {node: '>=8.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.5 strip-ansi: 6.0.1 transitivePeerDependencies: - supports-color @@ -10985,8 +10945,8 @@ packages: engines: {node: '>=4', npm: '>=6'} dev: false - /stream-buffers/3.0.2: - resolution: {integrity: sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==} + /stream-buffers/3.0.3: + resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} engines: {node: '>= 0.10.0'} /stream-chain/2.2.5: @@ -11010,7 +10970,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.4 + debug: 4.3.5 fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -11040,9 +11000,6 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - /string.prototype.repeat/0.2.0: - resolution: {integrity: sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==} - /string.prototype.repeat/1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} dependencies: @@ -11153,7 +11110,7 @@ packages: peek-readable: 4.1.0 dev: true - /subscriptions-transport-ws/0.11.0_graphql@16.8.1: + /subscriptions-transport-ws/0.11.0_graphql@16.9.0: resolution: {integrity: sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==} deprecated: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md peerDependencies: @@ -11161,10 +11118,10 @@ packages: dependencies: backo2: 1.0.2 eventemitter3: 3.1.2 - graphql: 16.8.1 + graphql: 16.9.0 iterall: 1.3.0 symbol-observable: 1.2.0 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -11172,19 +11129,19 @@ packages: /superagent/7.1.6_supports-color@8.1.1: resolution: {integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==} engines: {node: '>=6.4.0 <13 || >=14'} - deprecated: Please downgrade to v7.1.5 if you need IE/ActiveXObject support OR upgrade to v8.0.0 as we no longer support IE and published an incorrect patch version (see https://github.com/visionmedia/superagent/issues/1731) + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 fast-safe-stringify: 2.1.1 form-data: 4.0.0 formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.12.1 + qs: 6.12.2 readable-stream: 3.6.2 - semver: 7.6.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color dev: true @@ -11247,7 +11204,7 @@ packages: resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} engines: {node: '>=10.0.0'} dependencies: - ajv: 8.12.0 + ajv: 8.16.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -11322,8 +11279,9 @@ packages: readable-stream: 2.3.8 xtend: 4.0.2 - /timers-ext/0.1.7: - resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} + /timers-ext/0.1.8: + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 next-tick: 1.1.0 @@ -11393,7 +11351,7 @@ packages: resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /ts-morph/19.0.0: resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} @@ -11402,7 +11360,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_cwiqw7fmejhb47wvqtchhjxme4: + /ts-node/10.9.2_qtieencaeb6d72le3lfodyl2z4: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -11421,9 +11379,9 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.31 - acorn: 8.11.3 - acorn-walk: 8.3.2 + '@types/node': 18.19.39 + acorn: 8.12.1 + acorn-walk: 8.3.3 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -11440,12 +11398,12 @@ packages: global-prefix: 3.0.0 minimist: 1.2.8 resolve: 1.22.8 - semver: 7.6.0 + semver: 7.6.2 strip-ansi: 6.0.1 dev: true - /tsconfck/3.0.3_typescript@5.1.6: - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} + /tsconfck/3.1.1_typescript@5.1.6: + resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -11468,8 +11426,8 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tslib/2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} /tsutils/3.21.0_typescript@5.1.6: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -11531,8 +11489,8 @@ packages: media-typer: 0.3.0 mime-types: 2.1.35 - /type/2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + /type/2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} dev: true /typed-array-buffer/1.0.2: @@ -11593,28 +11551,18 @@ packages: typed-array-byte-offset: 1.0.2 dev: true - /typescript/3.9.10: - resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} - engines: {node: '>=4.2.0'} - hasBin: true - /typescript/5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true - /typescript/5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - /typescript/5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240604: - resolution: {integrity: sha512-uwpkMy5U51ERVvVtQmDZwjYllREGrqP35JcdR5yWIoZ7ZE2I1oDsDs3mtLiiiccyHspCZ54Z741ibuP3NbACtg==} + /typescript/5.6.0-dev.20240705: + resolution: {integrity: sha512-Z1GBiSYZqdb2B4kkFvX6sDIFZzCGD7+RtHI2/ci9IIZA1CPS6qzbiB/D2RmPupSCXpQ8FRqax1RU0tlD/n70oA==} engines: {node: '>=14.17'} hasBin: true @@ -11636,15 +11584,15 @@ packages: /undici-types/5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici/6.13.0: - resolution: {integrity: sha512-Q2rtqmZWrbP8nePMq7mOJIN98M0fYvSgV89vwl/BQRT4mDOeY2GXZngfGpcBBhtky3woM7G24wZV3Q304Bv6cw==} - engines: {node: '>=18.0'} + /undici/6.19.2: + resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} + engines: {node: '>=18.17'} dev: false /uni-global/1.0.0: resolution: {integrity: sha512-WWM3HP+siTxzIWPNUg7hZ4XO8clKi6NoCAJJWnuRL+BAqyFXF8gC03WNyTefGoUXYc47uYgXxpKLIEvo65PEHw==} dependencies: - type: 2.7.2 + type: 2.7.3 dev: true /universal-user-agent/6.0.1: @@ -11667,15 +11615,15 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - /update-browserslist-db/1.0.13_browserslist@4.23.0: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db/1.1.0_browserslist@4.23.1: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 dev: true /uri-js/4.4.1: @@ -11756,7 +11704,7 @@ packages: engines: {node: '>=0.8.0'} hasBin: true dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: true @@ -11800,6 +11748,7 @@ packages: /which-module/2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: true /which-typed-array/1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} @@ -11833,7 +11782,6 @@ packages: /word-wrap/1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - dev: true /wordwrap/1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -11905,8 +11853,8 @@ packages: mkdirp: 0.5.6 dev: true - /ws/7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + /ws/7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -11930,8 +11878,8 @@ packages: optional: true dev: false - /ws/8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + /ws/8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -11947,7 +11895,7 @@ packages: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true dependencies: - sax: 1.3.0 + sax: 1.4.1 /xml2js/0.4.19: resolution: {integrity: sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==} @@ -11983,6 +11931,7 @@ packages: /y18n/4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -12007,8 +11956,8 @@ packages: engines: {node: '>= 6'} dev: false - /yaml/2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + /yaml/2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} hasBin: true dev: false @@ -12034,6 +11983,7 @@ packages: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 + dev: true /yargs-parser/20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} @@ -12083,6 +12033,7 @@ packages: which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 + dev: true /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} @@ -12144,5 +12095,5 @@ packages: compress-commons: 4.1.2 readable-stream: 3.6.2 - /zod/3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + /zod/3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 0009ed83b..3a20a6f45 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -70,7 +70,9 @@ "sinon-chai": "3.5.0", "ts-node": "^10.9.1", "typescript": "5.1.6", - "eslint-plugin-unicorn": "~44.0.2" + "eslint-plugin-unicorn": "~44.0.2", + "faker": "5.1.0", + "@types/faker": "5.1.5" }, "pnpm": { "overrides": { diff --git a/packages/framework-common-helpers/test/instances.test.ts b/packages/framework-common-helpers/test/instances.test.ts new file mode 100644 index 000000000..144feb739 --- /dev/null +++ b/packages/framework-common-helpers/test/instances.test.ts @@ -0,0 +1,59 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { createInstanceWithCalculatedProperties } from '../src' +import { ProjectionFor, ReadModelInterface, UUID } from '@boostercloud/framework-types' +import { expect } from './helpers/expect' +import { random } from 'faker' + +describe('the `Instances` helper', () => { + class PersonReadModel implements ReadModelInterface { + public constructor( + readonly id: UUID, + readonly firstName: string, + readonly lastName: string, + readonly friends: Array + ) {} + + public get fullName(): Promise { + return Promise.resolve(`${this.firstName} ${this.lastName}`) + } + } + + let rawObject: any + + beforeEach(() => { + rawObject = { + id: random.uuid(), + firstName: random.word(), + lastName: random.word(), + friends: [ + { id: random.uuid(), firstName: random.word(), lastName: random.word() }, + { id: random.uuid(), firstName: random.word(), lastName: random.word() }, + ], + } + }) + + describe('the createInstanceWithCalculatedProperties method', () => { + it('creates an instance of the read model class with the calculated properties included', async () => { + const propertiesToInclude = ['id', 'fullName'] as ProjectionFor + + const instance = await createInstanceWithCalculatedProperties(PersonReadModel, rawObject, propertiesToInclude) + + expect(instance).to.deep.equal({ + id: rawObject.id, + fullName: `${rawObject.firstName} ${rawObject.lastName}`, + }) + }) + + it('correctly supports arrays and nested objects in `propertiesToInclude`', async () => { + const propertiesToInclude = ['id', 'fullName', 'friends[].id'] as ProjectionFor + + const instance = await createInstanceWithCalculatedProperties(PersonReadModel, rawObject, propertiesToInclude) + + expect(instance).to.deep.equal({ + id: rawObject.id, + fullName: `${rawObject.firstName} ${rawObject.lastName}`, + friends: [{ id: rawObject.friends[0].id }, { id: rawObject.friends[1].id }], + }) + }) + }) +}) From 3b899a6bc06d65be4f1f2bf59f3becb67abe995e Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Fri, 5 Jul 2024 16:01:05 -0400 Subject: [PATCH 09/14] Fix broken CLI unit tests due to Node types upgrade --- packages/cli/test/commands/stub/publish.test.ts | 3 +++ packages/cli/test/services/stub-publisher.test.ts | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/packages/cli/test/commands/stub/publish.test.ts b/packages/cli/test/commands/stub/publish.test.ts index 1cb913ad3..a5c5a9061 100644 --- a/packages/cli/test/commands/stub/publish.test.ts +++ b/packages/cli/test/commands/stub/publish.test.ts @@ -19,6 +19,7 @@ describe('stub', async () => { { name: 'fake-command.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -30,6 +31,7 @@ describe('stub', async () => { { name: 'fake-event.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -41,6 +43,7 @@ describe('stub', async () => { { name: 'fake-directory', path: '/someDir', + parentPath: '/someDir', isFile: () => false, isDirectory: () => true, isBlockDevice: () => false, diff --git a/packages/cli/test/services/stub-publisher.test.ts b/packages/cli/test/services/stub-publisher.test.ts index c85ab84da..73a96ff27 100644 --- a/packages/cli/test/services/stub-publisher.test.ts +++ b/packages/cli/test/services/stub-publisher.test.ts @@ -19,6 +19,7 @@ describe('stub publisher', () => { { name: 'fake-command.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -30,6 +31,7 @@ describe('stub publisher', () => { { name: 'fake-event.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -41,6 +43,7 @@ describe('stub publisher', () => { { name: 'fake-stub.ts', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -52,6 +55,7 @@ describe('stub publisher', () => { { name: 'fake-directory-1', path: '/someDir', + parentPath: '/someDir', isFile: () => false, isDirectory: () => true, isBlockDevice: () => false, @@ -63,6 +67,7 @@ describe('stub publisher', () => { { name: 'fake-directory-2', path: '/someDir', + parentPath: '/someDir', isFile: () => false, isDirectory: () => true, isBlockDevice: () => false, @@ -160,6 +165,7 @@ describe('stub publisher', () => { { name: 'fake-file-1.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -171,6 +177,7 @@ describe('stub publisher', () => { { name: 'fake-file-2.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -195,6 +202,7 @@ describe('stub publisher', () => { { name: 'fake-directory', path: '/someDir', + parentPath: '/someDir', isFile: () => false, isDirectory: () => true, isBlockDevice: () => false, @@ -213,6 +221,7 @@ describe('stub publisher', () => { { name: 'fake-stub.ts', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, From 18fc9f3ea2e3c36afa5e1726a81a81c8ab89112d Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Mon, 8 Jul 2024 15:03:21 -0400 Subject: [PATCH 10/14] Update documentation --- website/docs/03_architecture/06_read-model.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/docs/03_architecture/06_read-model.mdx b/website/docs/03_architecture/06_read-model.mdx index afdbb919b..5ab7aa4a8 100644 --- a/website/docs/03_architecture/06_read-model.mdx +++ b/website/docs/03_architecture/06_read-model.mdx @@ -151,7 +151,11 @@ Keeping the read model untouched higly recommended in favour of returning a new ## Nested queries and calculated values using getters -You can use TypeScript getters in your read models to allow nested queries and/or return calculated values. You can write arbitrary code in a getter, but you will tipically query for related read model objects or generate a value computed based on the current read model instance or context. This greatly improves the potential of customizing your read model responses. +You can use TypeScript getters in your read models to allow nested queries and/or return calculated values. You can write arbitrary code in a getter, but you will typically query for related read model objects or generate a value computed based on the current read model instance or context. This greatly improves the potential of customizing your read model responses. + +:::info +Starting version 2.13, getters for values which are calculated using other properties of the read model need to be annotated with the `@CalculatedField` decorator and a list of those properties as dependencies. +::: Here's an example of a getter in the `UserReadModel` class that returns all `PostReadModel`s that belong to a specific `UserReadModel`: @@ -160,6 +164,7 @@ Here's an example of a getter in the `UserReadModel` class that returns all `Pos export class UserReadModel { public constructor(readonly id: UUID, readonly name: string, private postIds: UUID[]) {} + @CalculatedField(['postIds']) public get posts(): Promise { return this.postIds.map((postId) => Booster.readModel(PostReadModel) .filter({ From a484d3c70f9f7e7b0d8166cd50e9c105d60e5edf Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Mon, 8 Jul 2024 15:05:29 -0400 Subject: [PATCH 11/14] Add rush change file --- .../calculated_fields_2024-07-08-19-05.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json diff --git a/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json b/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json new file mode 100644 index 000000000..643bf882e --- /dev/null +++ b/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Improve support for calculated fields and their dependencies on read models", + "type": "minor" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file From 85ea3c15ed9f3acf080593bec19df41e4bff93fe Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Mon, 8 Jul 2024 15:16:51 -0400 Subject: [PATCH 12/14] Fix CodeQL scan warning --- packages/framework-common-helpers/src/instances.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/framework-common-helpers/src/instances.ts b/packages/framework-common-helpers/src/instances.ts index ee109d25b..c6c7d8dd6 100644 --- a/packages/framework-common-helpers/src/instances.ts +++ b/packages/framework-common-helpers/src/instances.ts @@ -80,7 +80,7 @@ function buildPropertiesMap(properties: ProjectionFor): any { parts.forEach((part) => { const isArray = part.endsWith('[]') const key = isArray ? part.slice(0, -2) : part - if (!current[key]) { + if (!Object.prototype.hasOwnProperty.call(current, key)) { current[key] = isArray ? { __isArray: true, __children: {} } : {} } current = isArray ? current[key].__children : current[key] From 56633030c1307dc0adf1bc187387e69731cbc387 Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Tue, 9 Jul 2024 12:16:26 -0400 Subject: [PATCH 13/14] Refactor processProperties method to properly support undefined values --- .../framework-common-helpers/src/instances.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/framework-common-helpers/src/instances.ts b/packages/framework-common-helpers/src/instances.ts index c6c7d8dd6..8b2fafe7d 100644 --- a/packages/framework-common-helpers/src/instances.ts +++ b/packages/framework-common-helpers/src/instances.ts @@ -113,15 +113,24 @@ async function processProperties(source: any, result: any, propertiesMap: any): } else if (typeof propertiesMap[key] === 'object' && Object.keys(propertiesMap[key]).length > 0) { const value = source[key] const resolvedValue = isPromise(value) ? await value : value - result[key] = {} - await processProperties(resolvedValue, result[key], propertiesMap[key]) - if (Object.keys(result[key]).length === 0) { - delete result[key] + if (resolvedValue === undefined || resolvedValue === null) { + result[key] = null + } else { + result[key] = {} + await processProperties(resolvedValue, result[key], propertiesMap[key]) + if (Object.keys(result[key]).length === 0) { + result[key] = null + } } } else { const value = source[key] result[key] = isPromise(value) ? await value : value } + } else { + // Handle the case when the source property is undefined + if (typeof propertiesMap[key] === 'object' && Object.keys(propertiesMap[key]).length > 0) { + result[key] = null + } } } } From 2077b2cb598e6b6259ef8e2d1b6756e8cead1f53 Mon Sep 17 00:00:00 2001 From: "Castro, Mario" Date: Fri, 19 Jul 2024 09:07:16 -0400 Subject: [PATCH 14/14] Refactor CalculatedField decorator options --- packages/framework-core/src/decorators/read-model.ts | 10 +++++++--- .../framework-core/test/decorators/read-model.test.ts | 2 +- .../src/read-models/cart-read-model.ts | 6 +++--- website/docs/03_architecture/06_read-model.mdx | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/framework-core/src/decorators/read-model.ts b/packages/framework-core/src/decorators/read-model.ts index 47a76ad04..6c9fbfee5 100644 --- a/packages/framework-core/src/decorators/read-model.ts +++ b/packages/framework-core/src/decorators/read-model.ts @@ -45,14 +45,18 @@ export function ReadModel( } } +interface CalculatedFieldOptions { + dependsOn: string[] +} + /** * Decorator to mark a property as a calculated field with dependencies. - * @param dependencies - An array of strings indicating the dependencies. + * @param options - A `CalculatedFieldOptions` object indicating the dependencies. */ -export function CalculatedField(dependencies: string[]): PropertyDecorator { +export function CalculatedField(options: CalculatedFieldOptions): PropertyDecorator { return (target: object, propertyKey: string | symbol): void => { const existingDependencies = Reflect.getMetadata('dynamic:dependencies', target.constructor) || {} - existingDependencies[propertyKey] = dependencies + existingDependencies[propertyKey] = options.dependsOn Reflect.defineMetadata('dynamic:dependencies', existingDependencies, target.constructor) } } diff --git a/packages/framework-core/test/decorators/read-model.test.ts b/packages/framework-core/test/decorators/read-model.test.ts index 9315a48e6..9cc70c422 100644 --- a/packages/framework-core/test/decorators/read-model.test.ts +++ b/packages/framework-core/test/decorators/read-model.test.ts @@ -319,7 +319,7 @@ describe('the `CalculatedField` decorator', () => { class PersonReadModel { public constructor(readonly id: UUID, readonly firstName: string, readonly lastName: string) {} - @CalculatedField(['firstName', 'lastName']) + @CalculatedField({ dependsOn: ['firstName', 'lastName'] }) public get fullName(): string { return `${this.firstName} ${this.lastName}` } diff --git a/packages/framework-integration-tests/src/read-models/cart-read-model.ts b/packages/framework-integration-tests/src/read-models/cart-read-model.ts index ce9e09866..31cc2edd7 100644 --- a/packages/framework-integration-tests/src/read-models/cart-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/cart-read-model.ts @@ -38,17 +38,17 @@ export class CartReadModel { return this.checks } - @CalculatedField(['cartItems']) + @CalculatedField({ dependsOn: ['cartItems'] }) public get cartItemsSize(): number | undefined { return this.cartItems ? this.cartItems.length : 0 } - @CalculatedField(['shippingAddress']) + @CalculatedField({ dependsOn: ['shippingAddress'] }) public get myAddress(): Promise
{ return Promise.resolve(this.shippingAddress || new Address('', '', '', '', '', '')) } - @CalculatedField(['cartItems']) + @CalculatedField({ dependsOn: ['cartItems'] }) public get lastProduct(): Promise { if (this.cartItemsSize === 0) { return Promise.resolve(undefined) diff --git a/website/docs/03_architecture/06_read-model.mdx b/website/docs/03_architecture/06_read-model.mdx index 5ab7aa4a8..8221e10a4 100644 --- a/website/docs/03_architecture/06_read-model.mdx +++ b/website/docs/03_architecture/06_read-model.mdx @@ -164,7 +164,7 @@ Here's an example of a getter in the `UserReadModel` class that returns all `Pos export class UserReadModel { public constructor(readonly id: UUID, readonly name: string, private postIds: UUID[]) {} - @CalculatedField(['postIds']) + @CalculatedField({ dependsOn: ['postIds'] }) public get posts(): Promise { return this.postIds.map((postId) => Booster.readModel(PostReadModel) .filter({