diff --git a/README.md b/README.md index 9f54d2a..9d19291 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ import { DynamoStreamHandler } from '@lifeomic/delta'; const stream = new DynamoStreamHandler({ logger, - unmarshall: (object) => { - /* ... unmarshall from unknown stream format -> your custom type ... */ + parse: (item) => { + // parse the item using your custom logic, e.g. using zod or ajv. return { id: object.id }; }, createRunContext: () => { @@ -27,7 +27,7 @@ const stream = new DynamoStreamHandler({ }) .onInsert(async (ctx, entity) => { // INSERT actions receive a single strongly typed new entities - // (entities are typed based on the `unmarshall` function) + // (entities are typed based on the `parse` function) entity.id; // `ctx` contains the nice result of `createRunContext` @@ -67,9 +67,6 @@ const context = { } const harness = stream.harness({ - marshall: () => { - /* marshall from your custom type -> stream format */ - }, /* optionally override the logger */ logger, createRunContext: () => { @@ -103,7 +100,7 @@ import { SQSMessageHandler } from '@lifeomic/delta'; const queue = new SQSMessageHandler({ logger, parseMessage: (message) => { - /* ... unmarshall from message string -> your custom type ... */ + /* ... parse from message string -> your custom type ... */ return JSON.parse(message); }, createRunContext: () => { @@ -137,7 +134,7 @@ const context = { const harness = queue.harness({ stringifyMessage: (message) => { - /* marshall from your custom type -> string */ + /* stringify from your custom type -> string */ return JSON.stringify(message) }, /* optionally override the logger */ diff --git a/package.json b/package.json index 2437d2d..ef49b6d 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "build": "node build.js" }, "devDependencies": { + "@aws-sdk/client-dynamodb": "^3.369.0", "@lifeomic/eslint-config-standards": "^2.1.1", "@lifeomic/jest-config": "^1.1.2", "@lifeomic/logging": "^4.0.0", @@ -37,9 +38,11 @@ "prettier": "^2.5.1", "semantic-release": "^19.0.2", "ts-jest": "^27.1.3", - "typescript": "^4.5.5" + "typescript": "^4.5.5", + "zod": "^3.21.4" }, "dependencies": { + "@aws-sdk/util-dynamodb": "^3.369.0", "@types/aws-lambda": "^8.10.92", "uuid": "^8.3.2" }, diff --git a/src/dynamo-streams.test.ts b/src/dynamo-streams.test.ts index 0d9878b..33ceea4 100644 --- a/src/dynamo-streams.test.ts +++ b/src/dynamo-streams.test.ts @@ -1,10 +1,13 @@ import { LoggerInterface } from '@lifeomic/logging'; import { v4 as uuid } from 'uuid'; import { DynamoStreamHandler } from './dynamo-streams'; +import { marshall } from '@aws-sdk/util-dynamodb'; +import { z } from 'zod'; + +const TestSchema = z.object({ id: z.string(), name: z.string().optional() }); const testSerializer = { - unmarshall: (object: any) => object.marshalled, - marshall: (object: any) => ({ marshalled: object }), + parse: (object: any) => TestSchema.parse(object), }; const logger: jest.Mocked = { @@ -29,7 +32,7 @@ describe('DynamoStreamHandler', () => { test('responds to HTTP health checks', async () => { const lambda = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({}), }).lambda(); @@ -48,7 +51,7 @@ describe('DynamoStreamHandler', () => { test('responds to healthCheck events', async () => { const lambda = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({}), }).lambda(); @@ -66,7 +69,7 @@ describe('DynamoStreamHandler', () => { test('handles insert events', async () => { const lambda = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ logger, dataSources }), }) .onInsert((ctx, entity) => { @@ -79,7 +82,7 @@ describe('DynamoStreamHandler', () => { Records: [ { eventName: 'INSERT', - dynamodb: { NewImage: { marshalled: { id: 'new-insert' } } as any }, + dynamodb: { NewImage: { id: { S: 'new-insert' } } }, }, ], }, @@ -96,7 +99,7 @@ describe('DynamoStreamHandler', () => { test('handles modify events', async () => { const lambda = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ logger, dataSources }), }) .onModify((ctx, oldEntity, newEntity) => { @@ -110,8 +113,8 @@ describe('DynamoStreamHandler', () => { { eventName: 'MODIFY', dynamodb: { - OldImage: { marshalled: { id: 'old-modify' } } as any, - NewImage: { marshalled: { id: 'new-modify' } } as any, + OldImage: marshall({ id: 'old-modify' }) as any, + NewImage: marshall({ id: 'new-modify' }) as any, }, }, ], @@ -130,7 +133,7 @@ describe('DynamoStreamHandler', () => { test('handles remove events', async () => { const lambda = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ logger, dataSources }), }) .onRemove((ctx, entity) => { @@ -144,7 +147,7 @@ describe('DynamoStreamHandler', () => { { eventName: 'REMOVE', dynamodb: { - OldImage: { marshalled: { id: 'old-remove' } } as any, + OldImage: marshall({ id: 'old-remove' }) as any, }, }, ], @@ -162,7 +165,7 @@ describe('DynamoStreamHandler', () => { test('handles a variety of events', async () => { const lambda = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ logger, dataSources }), }) // onInsert twice to test same event through multiple actions @@ -186,37 +189,27 @@ describe('DynamoStreamHandler', () => { { eventName: 'INSERT', dynamodb: { - NewImage: { - marshalled: { id: 'new-insert-varied-lambda' }, - } as any, + NewImage: marshall({ id: 'new-insert-varied-lambda' }) as any, }, }, { eventName: 'MODIFY', dynamodb: { - OldImage: { - marshalled: { id: 'old-modify-varied-lambda' }, - } as any, - NewImage: { - marshalled: { id: 'new-modify-varied-lambda' }, - } as any, + OldImage: marshall({ id: 'old-modify-varied-lambda' }) as any, + NewImage: marshall({ id: 'new-modify-varied-lambda' }) as any, }, }, { eventName: 'REMOVE', dynamodb: { - OldImage: { - marshalled: { id: 'old-remove-varied-lambda' }, - } as any, + OldImage: marshall({ id: 'old-remove-varied-lambda' }) as any, }, }, // A second remove event to test multiple events through a single action { eventName: 'REMOVE', dynamodb: { - OldImage: { - marshalled: { id: 'old-remove-varied-lambda-second' }, - } as any, + OldImage: marshall({ id: 'old-remove-varied-lambda-second' }), }, }, ], @@ -250,13 +243,13 @@ describe('DynamoStreamHandler', () => { test('sends insert event', async () => { const { sendEvent } = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ dataSources }), }) .onInsert((ctx, entity) => { ctx.dataSources.doSomething(entity); }) - .harness({ marshall: testSerializer.marshall }); + .harness(); await sendEvent({ records: [{ type: 'insert', entity: { id: 'new-insert' } }], @@ -271,13 +264,13 @@ describe('DynamoStreamHandler', () => { test('sends modify event', async () => { const { sendEvent } = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ dataSources }), }) .onModify((ctx, oldEntity, newEntity) => { ctx.dataSources.doSomething(oldEntity, newEntity); }) - .harness({ marshall: testSerializer.marshall }); + .harness(); await sendEvent({ records: [ @@ -299,13 +292,13 @@ describe('DynamoStreamHandler', () => { test('sends remove event', async () => { const { sendEvent } = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ dataSources }), }) .onRemove((ctx, entity) => { ctx.dataSources.doSomething(entity); }) - .harness({ marshall: testSerializer.marshall }); + .harness(); await sendEvent({ records: [{ type: 'remove', entity: { id: 'old-remove' } }], @@ -320,7 +313,7 @@ describe('DynamoStreamHandler', () => { test('sends a variety of events', async () => { const { sendEvent } = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ dataSources }), }) // onInsert twice to test same event through multiple actions @@ -336,7 +329,7 @@ describe('DynamoStreamHandler', () => { .onRemove((ctx, entity) => { ctx.dataSources.doSomething(entity); }) - .harness({ marshall: testSerializer.marshall }); + .harness(); await sendEvent({ records: [ @@ -387,7 +380,7 @@ describe('DynamoStreamHandler', () => { overrideLogger.child.mockImplementation(() => overrideLogger); const { sendEvent } = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ dataSources }), }) .onInsert((ctx) => { @@ -395,7 +388,6 @@ describe('DynamoStreamHandler', () => { ctx.dataSources.doSomething((ctx as any).testValue); }) .harness({ - marshall: testSerializer.marshall, logger: overrideLogger as any, createRunContext: () => ({ dataSources, testValue }), }); @@ -414,12 +406,12 @@ describe('DynamoStreamHandler', () => { test('generates a correlation id', async () => { const { sendEvent } = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: (ctx) => { expect(typeof ctx.correlationId === 'string').toBe(true); return {}; }, - }).harness({ marshall: () => ({}) }); + }).harness(); await sendEvent({ records: [] }); @@ -433,7 +425,7 @@ describe('DynamoStreamHandler', () => { describe('error scenarios', () => { const lambda = new DynamoStreamHandler({ logger, - unmarshall: testSerializer.unmarshall, + parse: testSerializer.parse, createRunContext: () => ({ logger, dataSources }), }).lambda(); @@ -467,7 +459,10 @@ describe('DynamoStreamHandler', () => { await lambda( { Records: [ - { eventName: 'MODIFY', dynamodb: { OldImage: { marshalled: {} } } }, + { + eventName: 'MODIFY', + dynamodb: { OldImage: { id: { S: 'test-id' } } }, + }, ], }, {} as any, @@ -484,7 +479,10 @@ describe('DynamoStreamHandler', () => { await lambda( { Records: [ - { eventName: 'MODIFY', dynamodb: { NewImage: { marshalled: {} } } }, + { + eventName: 'MODIFY', + dynamodb: { NewImage: { id: { S: 'test-id' } } }, + }, ], }, {} as any, diff --git a/src/dynamo-streams.ts b/src/dynamo-streams.ts index a129151..d2f9759 100644 --- a/src/dynamo-streams.ts +++ b/src/dynamo-streams.ts @@ -1,6 +1,7 @@ import { LoggerInterface } from '@lifeomic/logging'; import { v4 as uuid } from 'uuid'; import { DynamoDBStreamEvent, DynamoDBStreamHandler } from 'aws-lambda'; +import { marshall, unmarshall } from '@aws-sdk/util-dynamodb'; import { BaseContext, withHealthCheckHandling } from './utils'; export type DynamoStreamHandlerConfig = { @@ -9,10 +10,12 @@ export type DynamoStreamHandlerConfig = { */ logger: LoggerInterface; /** - * A function for unmarshalling images from the stream - * format -> your custom type. + * A function for parsing images from the stream into your custom type. + * + * The `object` parameter is an _already unmarshalled_ version of the Dynamo + * record. */ - unmarshall: (object: any) => Entity; + parse: (object: unknown) => Entity; /** * Create a "context" for the lambda execution. (e.g. "data sources") */ @@ -42,17 +45,12 @@ type InternalActionList = { }; /* -- Test Harness Types -- */ -export type DynamoStreamHandlerHarnessConfig = { +export type DynamoStreamHandlerHarnessConfig = { /** * An optional override for the logger. */ logger?: LoggerInterface; - /** - * A function for marshalling entities into stream-compatible objects. - */ - marshall: (entity: Entity) => any; - /** * An optional override for creating the run context. */ @@ -100,7 +98,7 @@ export class DynamoStreamHandler { >, ): DynamoStreamHandler { const copy = new DynamoStreamHandler({ - unmarshall: this.config.unmarshall, + parse: this.config.parse, logger: overrides.logger ?? this.config.logger, createRunContext: overrides.createRunContext ?? this.config.createRunContext, @@ -186,11 +184,13 @@ export class DynamoStreamHandler { // Unmarshall the entities. const oldEntity = record.dynamodb.OldImage && - this.config.unmarshall(record.dynamodb.OldImage); + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + this.config.parse(unmarshall(record.dynamodb.OldImage as any)); const newEntity = record.dynamodb.NewImage && - this.config.unmarshall(record.dynamodb.NewImage); + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + this.config.parse(unmarshall(record.dynamodb.NewImage as any)); // Handle INSERT events -- invoke the INSERT actions in order. if (record.eventName === 'INSERT') { @@ -253,15 +253,10 @@ export class DynamoStreamHandler { * Returns a test harness for exercising the handler, with an optional * overriden context. */ - harness({ - logger, - marshall, - createRunContext, - }: DynamoStreamHandlerHarnessConfig< - Entity, - Context - >): DynamoStreamHandlerHarnessContext { - const lambda = this.withOverrides({ logger, createRunContext }).lambda(); + harness( + options?: DynamoStreamHandlerHarnessConfig, + ): DynamoStreamHandlerHarnessContext { + const lambda = this.withOverrides(options ?? {}).lambda(); return { sendEvent: async (event) => { @@ -273,22 +268,22 @@ export class DynamoStreamHandler { return { eventName: 'INSERT', dynamodb: { - NewImage: marshall(record.entity), + NewImage: marshall(record.entity) as any, }, }; case 'modify': return { eventName: 'MODIFY', dynamodb: { - OldImage: marshall(record.oldEntity), - NewImage: marshall(record.newEntity), + OldImage: marshall(record.oldEntity) as any, + NewImage: marshall(record.newEntity) as any, }, }; case 'remove': return { eventName: 'REMOVE', dynamodb: { - OldImage: marshall(record.entity), + OldImage: marshall(record.entity) as any, }, }; } diff --git a/src/jest-utils.ts b/src/jest-utils.ts index 15c22ab..788b847 100644 --- a/src/jest-utils.ts +++ b/src/jest-utils.ts @@ -78,7 +78,7 @@ export type UseDynamoStreamHarnessContext = */ export const useDynamoStreamHarness = ( stream: DynamoStreamHandler, - config: DynamoStreamHandlerHarnessConfig, + config: DynamoStreamHandlerHarnessConfig, ): UseDynamoStreamHarnessContext => { const context: UseDynamoStreamHarnessContext = {} as any; @@ -97,7 +97,6 @@ export const useDynamoStreamHarness = ( const harnessContext = stream.harness({ logger, - marshall: config.marshall, createRunContext: () => runContext, }); diff --git a/yarn.lock b/yarn.lock index 62e840a..a73a39e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,455 @@ dependencies: "@jridgewell/trace-mapping" "^0.3.0" +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/client-dynamodb@^3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.369.0.tgz#bc5b9bb7d61c98e76a5913770d7e9a26f5e001ea" + integrity sha512-BBE8ktqqgXvG4r1yWmRZYR/gqaebtmeWFQMwbr0hTMLEw5joeVWLHywLHd4uNMS9uCNEEmaSWAlVyC6LfMc7Mw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.369.0" + "@aws-sdk/credential-provider-node" "3.369.0" + "@aws-sdk/middleware-endpoint-discovery" "3.369.0" + "@aws-sdk/middleware-host-header" "3.369.0" + "@aws-sdk/middleware-logger" "3.369.0" + "@aws-sdk/middleware-recursion-detection" "3.369.0" + "@aws-sdk/middleware-signing" "3.369.0" + "@aws-sdk/middleware-user-agent" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@aws-sdk/util-endpoints" "3.369.0" + "@aws-sdk/util-user-agent-browser" "3.369.0" + "@aws-sdk/util-user-agent-node" "3.369.0" + "@smithy/config-resolver" "^1.0.1" + "@smithy/fetch-http-handler" "^1.0.1" + "@smithy/hash-node" "^1.0.1" + "@smithy/invalid-dependency" "^1.0.1" + "@smithy/middleware-content-length" "^1.0.1" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/middleware-retry" "^1.0.2" + "@smithy/middleware-serde" "^1.0.1" + "@smithy/middleware-stack" "^1.0.1" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/node-http-handler" "^1.0.2" + "@smithy/protocol-http" "^1.0.1" + "@smithy/smithy-client" "^1.0.3" + "@smithy/types" "^1.1.0" + "@smithy/url-parser" "^1.0.1" + "@smithy/util-base64" "^1.0.1" + "@smithy/util-body-length-browser" "^1.0.1" + "@smithy/util-body-length-node" "^1.0.1" + "@smithy/util-defaults-mode-browser" "^1.0.1" + "@smithy/util-defaults-mode-node" "^1.0.1" + "@smithy/util-retry" "^1.0.2" + "@smithy/util-utf8" "^1.0.1" + "@smithy/util-waiter" "^1.0.1" + tslib "^2.5.0" + uuid "^8.3.2" + +"@aws-sdk/client-sso-oidc@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.369.0.tgz#e2a12ce8904ba9b0893073fa6a97d5b1e06a7920" + integrity sha512-NOnsRrkHMss9pE68uTPMEt1KoW6eWt4ZCesJayCOiIgmIA/AhXHz06IBCYJ9eu9Xbu/55FDr4X3VCtUf7Rfh6g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/middleware-host-header" "3.369.0" + "@aws-sdk/middleware-logger" "3.369.0" + "@aws-sdk/middleware-recursion-detection" "3.369.0" + "@aws-sdk/middleware-user-agent" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@aws-sdk/util-endpoints" "3.369.0" + "@aws-sdk/util-user-agent-browser" "3.369.0" + "@aws-sdk/util-user-agent-node" "3.369.0" + "@smithy/config-resolver" "^1.0.1" + "@smithy/fetch-http-handler" "^1.0.1" + "@smithy/hash-node" "^1.0.1" + "@smithy/invalid-dependency" "^1.0.1" + "@smithy/middleware-content-length" "^1.0.1" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/middleware-retry" "^1.0.2" + "@smithy/middleware-serde" "^1.0.1" + "@smithy/middleware-stack" "^1.0.1" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/node-http-handler" "^1.0.2" + "@smithy/protocol-http" "^1.0.1" + "@smithy/smithy-client" "^1.0.3" + "@smithy/types" "^1.1.0" + "@smithy/url-parser" "^1.0.1" + "@smithy/util-base64" "^1.0.1" + "@smithy/util-body-length-browser" "^1.0.1" + "@smithy/util-body-length-node" "^1.0.1" + "@smithy/util-defaults-mode-browser" "^1.0.1" + "@smithy/util-defaults-mode-node" "^1.0.1" + "@smithy/util-retry" "^1.0.2" + "@smithy/util-utf8" "^1.0.1" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.369.0.tgz#eab8edb1470e4cced187671ca5c793bfa613fdb4" + integrity sha512-SjJd9QGT9ccHOY64qnMfvVjrneBORIx/k8OdtL0nV2wemPqCM9uAm+TYZ01E91D/+lfXS+lLMGSidSA39PMIOA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/middleware-host-header" "3.369.0" + "@aws-sdk/middleware-logger" "3.369.0" + "@aws-sdk/middleware-recursion-detection" "3.369.0" + "@aws-sdk/middleware-user-agent" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@aws-sdk/util-endpoints" "3.369.0" + "@aws-sdk/util-user-agent-browser" "3.369.0" + "@aws-sdk/util-user-agent-node" "3.369.0" + "@smithy/config-resolver" "^1.0.1" + "@smithy/fetch-http-handler" "^1.0.1" + "@smithy/hash-node" "^1.0.1" + "@smithy/invalid-dependency" "^1.0.1" + "@smithy/middleware-content-length" "^1.0.1" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/middleware-retry" "^1.0.2" + "@smithy/middleware-serde" "^1.0.1" + "@smithy/middleware-stack" "^1.0.1" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/node-http-handler" "^1.0.2" + "@smithy/protocol-http" "^1.0.1" + "@smithy/smithy-client" "^1.0.3" + "@smithy/types" "^1.1.0" + "@smithy/url-parser" "^1.0.1" + "@smithy/util-base64" "^1.0.1" + "@smithy/util-body-length-browser" "^1.0.1" + "@smithy/util-body-length-node" "^1.0.1" + "@smithy/util-defaults-mode-browser" "^1.0.1" + "@smithy/util-defaults-mode-node" "^1.0.1" + "@smithy/util-retry" "^1.0.2" + "@smithy/util-utf8" "^1.0.1" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.369.0.tgz#f635bf4ed2cc27e96f6615114134f0802f5827ed" + integrity sha512-kyZl654U27gsQX9UjiiO4CX5M6kHwzDouwbhjc5HshQld/lUbJQ4uPpAwhlbZiqnzGeB639MdAGaSwrOOw2ixw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/credential-provider-node" "3.369.0" + "@aws-sdk/middleware-host-header" "3.369.0" + "@aws-sdk/middleware-logger" "3.369.0" + "@aws-sdk/middleware-recursion-detection" "3.369.0" + "@aws-sdk/middleware-sdk-sts" "3.369.0" + "@aws-sdk/middleware-signing" "3.369.0" + "@aws-sdk/middleware-user-agent" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@aws-sdk/util-endpoints" "3.369.0" + "@aws-sdk/util-user-agent-browser" "3.369.0" + "@aws-sdk/util-user-agent-node" "3.369.0" + "@smithy/config-resolver" "^1.0.1" + "@smithy/fetch-http-handler" "^1.0.1" + "@smithy/hash-node" "^1.0.1" + "@smithy/invalid-dependency" "^1.0.1" + "@smithy/middleware-content-length" "^1.0.1" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/middleware-retry" "^1.0.1" + "@smithy/middleware-serde" "^1.0.1" + "@smithy/middleware-stack" "^1.0.1" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/node-http-handler" "^1.0.1" + "@smithy/protocol-http" "^1.1.0" + "@smithy/smithy-client" "^1.0.2" + "@smithy/types" "^1.1.0" + "@smithy/url-parser" "^1.0.1" + "@smithy/util-base64" "^1.0.1" + "@smithy/util-body-length-browser" "^1.0.1" + "@smithy/util-body-length-node" "^1.0.1" + "@smithy/util-defaults-mode-browser" "^1.0.1" + "@smithy/util-defaults-mode-node" "^1.0.1" + "@smithy/util-retry" "^1.0.1" + "@smithy/util-utf8" "^1.0.1" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-env@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.369.0.tgz#d4ae1df0f6feca14ed8c86372085f0bee266dc75" + integrity sha512-EZUXGLjnun5t5/dVYJ9yyOwPAJktOdLEQSwtw7Q9XOxaNqVFFz9EU+TwYraV4WZ3CFRNn7GEIctVlXAHVFLm/w== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-ini@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.369.0.tgz#c22fde2ac08fa6f6dca4ce02d3c23b26daa739a9" + integrity sha512-12XXd4gnrn05adio/xPF8Nxl99L2FFzksbFILDIfSni7nLDX0m2XprnkswQiCKSbfDIQQsgnnh2F+HhorLuqfQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.369.0" + "@aws-sdk/credential-provider-process" "3.369.0" + "@aws-sdk/credential-provider-sso" "3.369.0" + "@aws-sdk/credential-provider-web-identity" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@smithy/credential-provider-imds" "^1.0.1" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-node@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.369.0.tgz#690904830fa8037a425ac7f39b7af632099c2e93" + integrity sha512-vxX4s33EpRDh7OhKBDVAPxdBxVHPOOj1r7nN6f0hZLw5WPeeffSjLqw+MnFj33gSO7Htnt+Q0cAJQzeY5G8q3A== + dependencies: + "@aws-sdk/credential-provider-env" "3.369.0" + "@aws-sdk/credential-provider-ini" "3.369.0" + "@aws-sdk/credential-provider-process" "3.369.0" + "@aws-sdk/credential-provider-sso" "3.369.0" + "@aws-sdk/credential-provider-web-identity" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@smithy/credential-provider-imds" "^1.0.1" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-process@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.369.0.tgz#1517bd35212acca2888328e25862ee9fe963c309" + integrity sha512-OyasKV3mZz6TRSxczRnyZoifrtYwqGBxtr75YP37cm/JkecDshHXRcE8Jt9LyBg/93oWfKou03WVQiY9UIDJGQ== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-sso@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.369.0.tgz#e89c311668774966a359e28f70914a0eeb25124f" + integrity sha512-qXbEsmgFpGPbRVnwBYPxL53wQuue0+Z8tVu877itbrzpHm61AuQ04Hn8T1boKrr40excDuxiSrCX5oCKRG4srQ== + dependencies: + "@aws-sdk/client-sso" "3.369.0" + "@aws-sdk/token-providers" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-web-identity@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.369.0.tgz#d59881280c883efcdc8dd834a134d379e347218b" + integrity sha512-oFGxC839pQTJ6djFEBuokSi3/jNjNMVgZSpg26Z23V/r3vKRSgXfVmeus1FLYIWg0jO7KFsMPo9eVJW6auzw6w== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/endpoint-cache@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/endpoint-cache/-/endpoint-cache-3.310.0.tgz#e6f84bfcd55462966811390ef797145559bab15a" + integrity sha512-y3wipforet41EDTI0vnzxILqwAGll1KfI5qcdX9pXF/WF1f+3frcOtPiWtQEZQpy4czRogKm3BHo70QBYAZxlQ== + dependencies: + mnemonist "0.38.3" + tslib "^2.5.0" + +"@aws-sdk/middleware-endpoint-discovery@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.369.0.tgz#91c3db35c73621f9a63c22e82591d13cdadb2fb4" + integrity sha512-iNxD1ae8YIA853HBdn76tbYf2OLMJXGsRzlEDxTtnT8qWCiCAWuzsWclG/T88Cj0oYqbs1DHtDPH+Q8Eqomv3w== + dependencies: + "@aws-sdk/endpoint-cache" "3.310.0" + "@aws-sdk/types" "3.369.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-host-header@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.369.0.tgz#e77d948cb99f5aa9c6f546ad50971e34f8a42abd" + integrity sha512-ysbur68WHY7RYpGfth1Iu0+S03nSCLtIHJ+CDVYcVcyvYxaAv6y3gvfrkH9oL220uX75UVLj3tCKgAaLUBy5uA== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-logger@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.369.0.tgz#1e8e08aa5e3a33b91c4815dfed26142f715dfcf1" + integrity sha512-mp4gVRaFRRX+LEDEIlPxHOI/+k1jPPp0tuKyoyNZQS8IPOL+6bqFdPan03hkTjujeyaZOyRjpaXXat6k1HkHhw== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-recursion-detection@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.369.0.tgz#f3c1f723c05caad912a6de36be3708b231a5b663" + integrity sha512-V7TNhHRTwiKlVXiaW2CYGcm3vObWdG5zU0SN7ZxHDT27eTRYL8ncVpDnQZ65HfekXL8T9llVibBTYYvZrxLJ1g== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-sts@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.369.0.tgz#69557add85bf233d40d6f4b51245f16db018c155" + integrity sha512-Igizyt7TWy8kTitvE6o7R1Cfa4qLqijS/WxqT1cnHscQyZFFiIJVNypWeV4V19DZ9Msb/feAQdc8EWgHvZvYGA== + dependencies: + "@aws-sdk/middleware-signing" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-signing@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.369.0.tgz#8b4fc60168575055b1cb27d54dbd2bd443864c68" + integrity sha512-55qihn+9/zjsHUNvEgc4OUWQBxVlKW9C+whVhdy8H8olwAnfOH1ui9xXQ+SAyBCD9ck3vAY89VmBeQQQGZVVQw== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/protocol-http" "^1.1.0" + "@smithy/signature-v4" "^1.0.1" + "@smithy/types" "^1.1.0" + "@smithy/util-middleware" "^1.0.1" + tslib "^2.5.0" + +"@aws-sdk/middleware-user-agent@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.369.0.tgz#4d421d6cc767356eb24b60ee47cdbb179e55c312" + integrity sha512-a7Wb3s0y+blGF654GZv3nI3ZMRARAGH7iQrF2gWGtb2Qq0f3TQGHmpoHddWObYxiFWYzdXdTC3kbsAW1zRwEAA== + dependencies: + "@aws-sdk/types" "3.369.0" + "@aws-sdk/util-endpoints" "3.369.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/token-providers@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.369.0.tgz#978efa15b54264a3bc3d3e02478980d2564e460e" + integrity sha512-xIz8KbF4RMlMq0aAJbVocLB03OiqJIU5RLy+2t+bKMQ60fV4bnVINH5GxAMiFXiBIQVqfehFJlxJACtEphqQwA== + dependencies: + "@aws-sdk/client-sso-oidc" "3.369.0" + "@aws-sdk/types" "3.369.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/types@3.369.0", "@aws-sdk/types@^3.222.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.369.0.tgz#9721ff6789437f7b73532c35e399382a6535ea73" + integrity sha512-0LgII+RatF2OEFaFQcNyX72py4ZgWz+/JAv++PXv0gkIaTRnsJbSveQArNynEK+aAc/rZKWJgBvwT4FvLM2vgA== + dependencies: + "@smithy/types" "1.1.0" + tslib "^2.5.0" + +"@aws-sdk/util-dynamodb@^3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.369.0.tgz#5af68a447fd292c06734e08379f574d83ebb18ed" + integrity sha512-BNzkBQsTRdFPk5uDVyRPykhjbpdZ7Or8WJJfx2xLHrHG1zSfSceIPRmShwxBCh7+4rwgaOKhVKI+pbmArPjAQw== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-endpoints@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.369.0.tgz#99f815bcb22a9905f116827949675c0e12c30013" + integrity sha512-dkzhhMIvQRsgdomHi8fmgQ3df2cS1jeWAUIPjxV4lBikcvcF2U0CtvH9QYyMpluSNP1IYcEuONe8wfZGSrNjdg== + dependencies: + "@aws-sdk/types" "3.369.0" + tslib "^2.5.0" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40" + integrity sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-browser@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.369.0.tgz#4cc7ae1a09c0d903d3ae436871a6153e94593854" + integrity sha512-wrF0CqnfFac4sYr8jLZXz7B5NPxdW4GettH07Sl3ihO2aXsTvZ0RoyqzwF7Eve8ihbK0vCKt1S3/vZTOLw8sCg== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/types" "^1.1.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-node@3.369.0": + version "3.369.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.369.0.tgz#d6a0bbddc259600fccfc9935380a6141462b3785" + integrity sha512-RkiGyWp+YUlK4njsvqD7S08aihEW8aMNrT5OXmLGdukEUGWMAyvIcq4XS8MxA02GRPUxTUNInLltXwc1AaDpCw== + dependencies: + "@aws-sdk/types" "3.369.0" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" @@ -969,6 +1418,362 @@ dependencies: "@sinonjs/commons" "^1.7.0" +"@smithy/abort-controller@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-1.0.2.tgz#74caac052ecea15c5460438272ad8d43a6ccbc53" + integrity sha512-tb2h0b+JvMee+eAxTmhnyqyNk51UXIK949HnE14lFeezKsVJTB30maan+CO2IMwnig2wVYQH84B5qk6ylmKCuA== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/config-resolver@^1.0.1", "@smithy/config-resolver@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-1.0.2.tgz#d4f556a44292b41b5c067662a4bd5049dea40e35" + integrity sha512-8Bk7CgnVKg1dn5TgnjwPz2ebhxeR7CjGs5yhVYH3S8x0q8yPZZVWwpRIglwXaf5AZBzJlNO1lh+lUhMf2e73zQ== + dependencies: + "@smithy/types" "^1.1.1" + "@smithy/util-config-provider" "^1.0.2" + "@smithy/util-middleware" "^1.0.2" + tslib "^2.5.0" + +"@smithy/credential-provider-imds@^1.0.1", "@smithy/credential-provider-imds@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-1.0.2.tgz#7aa797c0d95448eb3dccb988b40e62db8989576f" + integrity sha512-fLjCya+JOu2gPJpCiwSUyoLvT8JdNJmOaTOkKYBZoGf7CzqR6lluSyI+eboZnl/V0xqcfcqBG4tgqCISmWS3/w== + dependencies: + "@smithy/node-config-provider" "^1.0.2" + "@smithy/property-provider" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/url-parser" "^1.0.2" + tslib "^2.5.0" + +"@smithy/eventstream-codec@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-1.0.2.tgz#06d1b6e2510cb2475a39b3a20b0c75e751917c59" + integrity sha512-eW/XPiLauR1VAgHKxhVvgvHzLROUgTtqat2lgljztbH8uIYWugv7Nz+SgCavB+hWRazv2iYgqrSy74GvxXq/rg== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^1.1.1" + "@smithy/util-hex-encoding" "^1.0.2" + tslib "^2.5.0" + +"@smithy/fetch-http-handler@^1.0.1", "@smithy/fetch-http-handler@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-1.0.2.tgz#4186ee6451de22e867f43c05236dcff43eca6e91" + integrity sha512-kynyofLf62LvR8yYphPPdyHb8fWG3LepFinM/vWUTG2Q1pVpmPCM530ppagp3+q2p+7Ox0UvSqldbKqV/d1BpA== + dependencies: + "@smithy/protocol-http" "^1.1.1" + "@smithy/querystring-builder" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/util-base64" "^1.0.2" + tslib "^2.5.0" + +"@smithy/hash-node@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-1.0.2.tgz#dc65203a348d29e45c493ead3e772e4f7dfb5bc0" + integrity sha512-K6PKhcUNrJXtcesyzhIvNlU7drfIU7u+EMQuGmPw6RQDAg/ufUcfKHz4EcUhFAodUmN+rrejhRG9U6wxjeBOQA== + dependencies: + "@smithy/types" "^1.1.1" + "@smithy/util-buffer-from" "^1.0.2" + "@smithy/util-utf8" "^1.0.2" + tslib "^2.5.0" + +"@smithy/invalid-dependency@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-1.0.2.tgz#0a9d82d1a14e5bdbdc0bd2cef5f457c85a942920" + integrity sha512-B1Y3Tsa6dfC+Vvb+BJMhTHOfFieeYzY9jWQSTR1vMwKkxsymD0OIAnEw8rD/RiDj/4E4RPGFdx9Mdgnyd6Bv5Q== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/is-array-buffer@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-1.0.2.tgz#224702a2364d698f0a36ecb2c240c0c9541ecfb6" + integrity sha512-pkyBnsBRpe+c/6ASavqIMRBdRtZNJEVJOEzhpxZ9JoAXiZYbkfaSMRA/O1dUxGdJ653GHONunnZ4xMo/LJ7utQ== + dependencies: + tslib "^2.5.0" + +"@smithy/middleware-content-length@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-1.0.2.tgz#63099f8d01b3419b65e21cfd07b0c2ef47d1f473" + integrity sha512-pa1/SgGIrSmnEr2c9Apw7CdU4l/HW0fK3+LKFCPDYJrzM0JdYpqjQzgxi31P00eAkL0EFBccpus/p1n2GF9urw== + dependencies: + "@smithy/protocol-http" "^1.1.1" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/middleware-endpoint@^1.0.1": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-1.0.3.tgz#ff4b1c0a83eb8d8b8d3937f434a95efbbf43e1cd" + integrity sha512-GsWvTXMFjSgl617PCE2km//kIjjtvMRrR2GAuRDIS9sHiLwmkS46VWaVYy+XE7ubEsEtzZ5yK2e8TKDR6Qr5Lw== + dependencies: + "@smithy/middleware-serde" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/url-parser" "^1.0.2" + "@smithy/util-middleware" "^1.0.2" + tslib "^2.5.0" + +"@smithy/middleware-retry@^1.0.1", "@smithy/middleware-retry@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-1.0.4.tgz#8e9de0713dac7f7af405477d46bd4525ca7b9ea8" + integrity sha512-G7uRXGFL8c3F7APnoIMTtNAHH8vT4F2qVnAWGAZaervjupaUQuRRHYBLYubK0dWzOZz86BtAXKieJ5p+Ni2Xpg== + dependencies: + "@smithy/protocol-http" "^1.1.1" + "@smithy/service-error-classification" "^1.0.3" + "@smithy/types" "^1.1.1" + "@smithy/util-middleware" "^1.0.2" + "@smithy/util-retry" "^1.0.4" + tslib "^2.5.0" + uuid "^8.3.2" + +"@smithy/middleware-serde@^1.0.1", "@smithy/middleware-serde@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-1.0.2.tgz#87b3a0211602ae991d9b756893eb6bf2e3e5f711" + integrity sha512-T4PcdMZF4xme6koUNfjmSZ1MLi7eoFeYCtodQNQpBNsS77TuJt1A6kt5kP/qxrTvfZHyFlj0AubACoaUqgzPeg== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/middleware-stack@^1.0.1", "@smithy/middleware-stack@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-1.0.2.tgz#d241082bf3cb315c749dda57e233039a9aed804e" + integrity sha512-H7/uAQEcmO+eDqweEFMJ5YrIpsBwmrXSP6HIIbtxKJSQpAcMGY7KrR2FZgZBi1FMnSUOh+rQrbOyj5HQmSeUBA== + dependencies: + tslib "^2.5.0" + +"@smithy/node-config-provider@^1.0.1", "@smithy/node-config-provider@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-1.0.2.tgz#2d391b96a9e10072e7e0a3698427400f4ef17ec4" + integrity sha512-HU7afWpTToU0wL6KseGDR2zojeyjECQfr8LpjAIeHCYIW7r360ABFf4EaplaJRMVoC3hD9FeltgI3/NtShOqCg== + dependencies: + "@smithy/property-provider" "^1.0.2" + "@smithy/shared-ini-file-loader" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/node-http-handler@^1.0.1", "@smithy/node-http-handler@^1.0.2", "@smithy/node-http-handler@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-1.0.3.tgz#89b556ca2bdcce7a994a9da1ea265094d76d4791" + integrity sha512-PcPUSzTbIb60VCJCiH0PU0E6bwIekttsIEf5Aoo/M0oTfiqsxHTn0Rcij6QoH6qJy6piGKXzLSegspXg5+Kq6g== + dependencies: + "@smithy/abort-controller" "^1.0.2" + "@smithy/protocol-http" "^1.1.1" + "@smithy/querystring-builder" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/property-provider@^1.0.1", "@smithy/property-provider@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-1.0.2.tgz#f99f104cbd6576c9aca9f56cb72819b4a65208e1" + integrity sha512-pXDPyzKX8opzt38B205kDgaxda6LHcTfPvTYQZnwP6BAPp1o9puiCPjeUtkKck7Z6IbpXCPUmUQnzkUzWTA42Q== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/protocol-http@^1.0.1", "@smithy/protocol-http@^1.1.0", "@smithy/protocol-http@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.1.1.tgz#10977cf71631eed4f5ad1845408920238d52cdba" + integrity sha512-mFLFa2sSvlUxm55U7B4YCIsJJIMkA6lHxwwqOaBkral1qxFz97rGffP/mmd4JDuin1EnygiO5eNJGgudiUgmDQ== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/querystring-builder@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-1.0.2.tgz#ce861f6cbd14792c83aa19b4967a19923bd0706e" + integrity sha512-6P/xANWrtJhMzTPUR87AbXwSBuz1SDHIfL44TFd/GT3hj6rA+IEv7rftEpPjayUiWRocaNnrCPLvmP31mobOyA== + dependencies: + "@smithy/types" "^1.1.1" + "@smithy/util-uri-escape" "^1.0.2" + tslib "^2.5.0" + +"@smithy/querystring-parser@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-1.0.2.tgz#559d09c46b21e6fbda71e95deda4bcd8a46bdecc" + integrity sha512-IWxwxjn+KHWRRRB+K2Ngl+plTwo2WSgc2w+DvLy0DQZJh9UGOpw40d6q97/63GBlXIt4TEt5NbcFrO30CKlrsA== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/service-error-classification@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-1.0.3.tgz#c620c1562610d3351985eb6dd04262ca2657ae67" + integrity sha512-2eglIYqrtcUnuI71yweu7rSfCgt6kVvRVf0C72VUqrd0LrV1M0BM0eYN+nitp2CHPSdmMI96pi+dU9U/UqAMSA== + +"@smithy/shared-ini-file-loader@^1.0.1", "@smithy/shared-ini-file-loader@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-1.0.2.tgz#c6e79991d87925bd18e0adae00c97da6c8ecae1e" + integrity sha512-bdQj95VN+lCXki+P3EsDyrkpeLn8xDYiOISBGnUG/AGPYJXN8dmp4EhRRR7XOoLoSs8anZHR4UcGEOzFv2jwGw== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/signature-v4@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-1.0.2.tgz#3a7b10ac66c337b404aa061e5f268f0550729680" + integrity sha512-rpKUhmCuPmpV5dloUkOb9w1oBnJatvKQEjIHGmkjRGZnC3437MTdzWej9TxkagcZ8NRRJavYnEUixzxM1amFig== + dependencies: + "@smithy/eventstream-codec" "^1.0.2" + "@smithy/is-array-buffer" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/util-hex-encoding" "^1.0.2" + "@smithy/util-middleware" "^1.0.2" + "@smithy/util-uri-escape" "^1.0.2" + "@smithy/util-utf8" "^1.0.2" + tslib "^2.5.0" + +"@smithy/smithy-client@^1.0.2", "@smithy/smithy-client@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-1.0.4.tgz#96d03d123d117a637c679a79bb8eae96e3857bd9" + integrity sha512-gpo0Xl5Nyp9sgymEfpt7oa9P2q/GlM3VmQIdm+FeH0QEdYOQx3OtvwVmBYAMv2FIPWxkMZlsPYRTnEiBTK5TYg== + dependencies: + "@smithy/middleware-stack" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/util-stream" "^1.0.2" + tslib "^2.5.0" + +"@smithy/types@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.1.0.tgz#f30a23202c97634cca5c1ac955a9bf149c955226" + integrity sha512-KzmvisMmuwD2jZXuC9e65JrgsZM97y5NpDU7g347oB+Q+xQLU6hQZ5zFNNbEfwwOJHoOvEVTna+dk1h/lW7alw== + dependencies: + tslib "^2.5.0" + +"@smithy/types@^1.1.0", "@smithy/types@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.1.1.tgz#949394a22e13e7077471bae0d18c146e5f62c456" + integrity sha512-tMpkreknl2gRrniHeBtdgQwaOlo39df8RxSrwsHVNIGXULy5XP6KqgScUw2m12D15wnJCKWxVhCX+wbrBW/y7g== + dependencies: + tslib "^2.5.0" + +"@smithy/url-parser@^1.0.1", "@smithy/url-parser@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-1.0.2.tgz#fb59be6f2283399443d9e7afe08ebf63b3c266bb" + integrity sha512-0JRsDMQe53F6EHRWksdcavKDRjyqp8vrjakg8EcCUOa7PaFRRB1SO/xGZdzSlW1RSTWQDEksFMTCEcVEKmAoqA== + dependencies: + "@smithy/querystring-parser" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/util-base64@^1.0.1", "@smithy/util-base64@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-1.0.2.tgz#6cdd5a9356dafad3c531123c12cd77d674762da0" + integrity sha512-BCm15WILJ3SL93nusoxvJGMVfAMWHZhdeDZPtpAaskozuexd0eF6szdz4kbXaKp38bFCSenA6bkUHqaE3KK0dA== + dependencies: + "@smithy/util-buffer-from" "^1.0.2" + tslib "^2.5.0" + +"@smithy/util-body-length-browser@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-1.0.2.tgz#4a9a49497634b5f25ab5ff73f1a8498010b0024a" + integrity sha512-Xh8L06H2anF5BHjSYTg8hx+Itcbf4SQZnVMl4PIkCOsKtneMJoGjPRLy17lEzfoh/GOaa0QxgCP6lRMQWzNl4w== + dependencies: + tslib "^2.5.0" + +"@smithy/util-body-length-node@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-1.0.2.tgz#bc4969022f7d9ffcb239d626d80a85138e986df6" + integrity sha512-nXHbZsUtvZeyfL4Ceds9nmy2Uh2AhWXohG4vWHyjSdmT8cXZlJdmJgnH6SJKDjyUecbu+BpKeVvSrA4cWPSOPA== + dependencies: + tslib "^2.5.0" + +"@smithy/util-buffer-from@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-1.0.2.tgz#27e19573d721962bd2443f23d4edadb8206b2cb5" + integrity sha512-lHAYIyrBO9RANrPvccnPjU03MJnWZ66wWuC5GjWWQVfsmPwU6m00aakZkzHdUT6tGCkGacXSgArP5wgTgA+oCw== + dependencies: + "@smithy/is-array-buffer" "^1.0.2" + tslib "^2.5.0" + +"@smithy/util-config-provider@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-1.0.2.tgz#4d2e867df1cc7b4010d1278bd5767ce1b679dae9" + integrity sha512-HOdmDm+3HUbuYPBABLLHtn8ittuRyy+BSjKOA169H+EMc+IozipvXDydf+gKBRAxUa4dtKQkLraypwppzi+PRw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-defaults-mode-browser@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-1.0.2.tgz#31ad7b9bce7e38fd57f4a370ee416373b4fbd432" + integrity sha512-J1u2PO235zxY7dg0+ZqaG96tFg4ehJZ7isGK1pCBEA072qxNPwIpDzUVGnLJkHZvjWEGA8rxIauDtXfB0qxeAg== + dependencies: + "@smithy/property-provider" "^1.0.2" + "@smithy/types" "^1.1.1" + bowser "^2.11.0" + tslib "^2.5.0" + +"@smithy/util-defaults-mode-node@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-1.0.2.tgz#b295fe2a18568c1e21a85b6557e2b769452b4d95" + integrity sha512-9/BN63rlIsFStvI+AvljMh873Xw6bbI6b19b+PVYXyycQ2DDQImWcjnzRlHW7eP65CCUNGQ6otDLNdBQCgMXqg== + dependencies: + "@smithy/config-resolver" "^1.0.2" + "@smithy/credential-provider-imds" "^1.0.2" + "@smithy/node-config-provider" "^1.0.2" + "@smithy/property-provider" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/util-hex-encoding@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-1.0.2.tgz#5b9f2162f2a59b2d2aa39992bd2c7f65b6616ab6" + integrity sha512-Bxydb5rMJorMV6AuDDMOxro3BMDdIwtbQKHpwvQFASkmr52BnpDsWlxgpJi8Iq7nk1Bt4E40oE1Isy/7ubHGzg== + dependencies: + tslib "^2.5.0" + +"@smithy/util-middleware@^1.0.1", "@smithy/util-middleware@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-1.0.2.tgz#c3d4c7a6cd31bde33901e54abd7700c8ca73dab3" + integrity sha512-vtXK7GOR2BoseCX8NCGe9SaiZrm9M2lm/RVexFGyPuafTtry9Vyv7hq/vw8ifd/G/pSJ+msByfJVb1642oQHKw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-retry@^1.0.1", "@smithy/util-retry@^1.0.2", "@smithy/util-retry@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-1.0.4.tgz#9d95df3884981414163d5f780d38e3529384d9ad" + integrity sha512-RnZPVFvRoqdj2EbroDo3OsnnQU8eQ4AlnZTOGusbYKybH3269CFdrZfZJloe60AQjX7di3J6t/79PjwCLO5Khw== + dependencies: + "@smithy/service-error-classification" "^1.0.3" + tslib "^2.5.0" + +"@smithy/util-stream@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-1.0.2.tgz#2d33aa5168e51d1dd7937c32a09c8334d2da44d9" + integrity sha512-qyN2M9QFMTz4UCHi6GnBfLOGYKxQZD01Ga6nzaXFFC51HP/QmArU72e4kY50Z/EtW8binPxspP2TAsGbwy9l3A== + dependencies: + "@smithy/fetch-http-handler" "^1.0.2" + "@smithy/node-http-handler" "^1.0.3" + "@smithy/types" "^1.1.1" + "@smithy/util-base64" "^1.0.2" + "@smithy/util-buffer-from" "^1.0.2" + "@smithy/util-hex-encoding" "^1.0.2" + "@smithy/util-utf8" "^1.0.2" + tslib "^2.5.0" + +"@smithy/util-uri-escape@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-1.0.2.tgz#c69a5423c9baa7a045a79372320bd40a437ac756" + integrity sha512-k8C0BFNS9HpBMHSgUDnWb1JlCQcFG+PPlVBq9keP4Nfwv6a9Q0yAfASWqUCtzjuMj1hXeLhn/5ADP6JxnID1Pg== + dependencies: + tslib "^2.5.0" + +"@smithy/util-utf8@^1.0.1", "@smithy/util-utf8@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-1.0.2.tgz#b34c27b4efbe4f0edb6560b6d4f743088302671f" + integrity sha512-V4cyjKfJlARui0dMBfWJMQAmJzoW77i4N3EjkH/bwnE2Ngbl4tqD2Y0C/xzpzY/J1BdxeCKxAebVFk8aFCaSCw== + dependencies: + "@smithy/util-buffer-from" "^1.0.2" + tslib "^2.5.0" + +"@smithy/util-waiter@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-1.0.2.tgz#3b1498a2d4b92e78eafacc8c76f314e30eb7a5e9" + integrity sha512-+jq4/Vd9ejPzR45qwYSePyjQbqYP9QqtyZYsFVyfzRnbGGC0AjswOh7txcxroafuEBExK4qE+L/QZA8wWXsJYw== + dependencies: + "@smithy/abort-controller" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -1486,6 +2291,11 @@ bottleneck@^2.18.1: resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2391,6 +3201,13 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== + dependencies: + strnum "^1.0.5" + fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -4096,6 +4913,13 @@ mkdirp@~0.5.1: dependencies: minimist "^1.2.5" +mnemonist@0.38.3: + version "0.38.3" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.3.tgz#35ec79c1c1f4357cfda2fe264659c2775ccd7d9d" + integrity sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw== + dependencies: + obliterator "^1.6.1" + modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -4442,6 +5266,11 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== +obliterator@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-1.6.1.tgz#dea03e8ab821f6c4d96a299e17aef6a3af994ef3" + integrity sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig== + once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -5347,6 +6176,11 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -5539,11 +6373,16 @@ ts-jest@^27.1.3: semver "7.x" yargs-parser "20.x" -tslib@^1.8.1: +tslib@^1.11.1, tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.3.1, tslib@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -5902,3 +6741,8 @@ yargs@^16.2.0: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" + +zod@^3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==