diff --git a/packages/actions-shared/src/aws-config/index.ts b/packages/actions-shared/src/aws-config/index.ts new file mode 100644 index 00000000000..bc11460cc41 --- /dev/null +++ b/packages/actions-shared/src/aws-config/index.ts @@ -0,0 +1,19 @@ +export const APP_AWS_REGION = process.env['AWS_REGION'] || `us-west-2` + +export const AWS_REGIONS = [ + { label: 'us-east-1', value: 'us-east-1' }, + { label: 'us-east-2', value: 'us-east-2' }, + { label: 'us-west-1', value: 'us-west-1' }, + { label: 'us-west-2', value: 'us-west-2' }, + { label: 'eu-west-1', value: 'eu-west-1' }, + { label: 'eu-west-2', value: 'eu-west-2' }, + { label: 'eu-west-3', value: 'eu-west-3' }, + { label: 'ap-southeast-1', value: 'ap-southeast-1' }, + { label: 'ap-southeast-2', value: 'ap-southeast-2' }, + { label: 'sa-east-1', value: 'sa-east-1' }, + { label: 'ap-northeast-1', value: 'ap-northeast-1' }, + { label: 'ap-northeast-2', value: 'ap-northeast-2' }, + { label: 'ap-south-1', value: 'ap-south-1' }, + { label: 'ca-central-1', value: 'ca-central-1' }, + { label: 'eu-central-1', value: 'eu-central-1' } +] diff --git a/packages/actions-shared/src/index.ts b/packages/actions-shared/src/index.ts index 1705cf33342..81df6f3ef16 100644 --- a/packages/actions-shared/src/index.ts +++ b/packages/actions-shared/src/index.ts @@ -7,3 +7,4 @@ export * from './friendbuy/sharedPurchase' export * from './friendbuy/sharedSignUp' export * from './friendbuy/util' export * from './engage/utils' +export * from './aws-config/index' diff --git a/packages/destination-actions/package.json b/packages/destination-actions/package.json index 48931107304..db7137a5042 100644 --- a/packages/destination-actions/package.json +++ b/packages/destination-actions/package.json @@ -44,6 +44,7 @@ "@aws-sdk/client-eventbridge": "^3.741.0", "@aws-sdk/client-s3": "^3.600.0", "@aws-sdk/client-sts": "3.614.0", + "@aws-sdk/client-kinesis": "3.917.0", "@bufbuild/protobuf": "^2.2.3", "@segment/a1-notation": "^2.1.4", "@segment/actions-core": "^3.161.0", diff --git a/packages/destination-actions/src/destinations/aws-kinesis/__test__/utils.test.ts b/packages/destination-actions/src/destinations/aws-kinesis/__test__/utils.test.ts deleted file mode 100644 index f1d85f6df6a..00000000000 --- a/packages/destination-actions/src/destinations/aws-kinesis/__test__/utils.test.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { validateIamRoleArnFormat } from '../utils' - -describe('validateIamRoleArnFormat', () => { - it('should return true for a valid IAM Role ARN', () => { - const validArns = [ - 'arn:aws:iam::123456789012:role/MyRole', - 'arn:aws:iam::000000000000:role/service-role/My-Service_Role', - 'arn:aws:iam::987654321098:role/path/to/MyRole', - 'arn:aws:iam::111122223333:role/MyRole-With.Special@Chars_+=,.' - ] - - for (const arn of validArns) { - expect(validateIamRoleArnFormat(arn)).toBe(true) - } - }) - - it('should return false for an ARN with invalid prefix', () => { - const invalidArn = 'arn:aws:s3::123456789012:role/MyRole' - expect(validateIamRoleArnFormat(invalidArn)).toBe(false) - }) - - it('should return false if missing account ID', () => { - const invalidArn = 'arn:aws:iam:::role/MyRole' - expect(validateIamRoleArnFormat(invalidArn)).toBe(false) - }) - - it('should return false if account ID is not 12 digits', () => { - const invalidArns = ['arn:aws:iam::12345:role/MyRole', 'arn:aws:iam::1234567890123:role/MyRole'] - for (const arn of invalidArns) { - expect(validateIamRoleArnFormat(arn)).toBe(false) - } - }) - - it('should return false if missing "role/" segment', () => { - const invalidArn = 'arn:aws:iam::123456789012:MyRole' - expect(validateIamRoleArnFormat(invalidArn)).toBe(false) - }) - - it('should return false if role name contains invalid characters', () => { - const invalidArns = [ - 'arn:aws:iam::123456789012:role/My Role', // space - 'arn:aws:iam::123456789012:role/MyRole#InvalidChar' - ] - for (const arn of invalidArns) { - expect(validateIamRoleArnFormat(arn)).toBe(false) - } - }) - - it('should return false for empty or null values', () => { - expect(validateIamRoleArnFormat('')).toBe(false) - // @ts-expect-error testing invalid input type - expect(validateIamRoleArnFormat(null)).toBe(false) - // @ts-expect-error testing invalid input type - expect(validateIamRoleArnFormat(undefined)).toBe(false) - }) -}) diff --git a/packages/destination-actions/src/destinations/aws-kinesis/__test__/index.test.ts b/packages/destination-actions/src/destinations/aws-kinesis/__tests__/index.test.ts similarity index 94% rename from packages/destination-actions/src/destinations/aws-kinesis/__test__/index.test.ts rename to packages/destination-actions/src/destinations/aws-kinesis/__tests__/index.test.ts index f8bcbf57a26..a505bf8316c 100644 --- a/packages/destination-actions/src/destinations/aws-kinesis/__test__/index.test.ts +++ b/packages/destination-actions/src/destinations/aws-kinesis/__tests__/index.test.ts @@ -1,7 +1,7 @@ import destination from '../index' import { assumeRole } from '../../../lib/AWS/sts' import { validateIamRoleArnFormat } from '../utils' -import { APP_AWS_REGION } from '../../../lib/AWS/utils' +import { APP_AWS_REGION } from '@segment/actions-shared' import type { Settings } from '../generated-types' import { createTestIntegration } from '../../../../../core/src/create-test-integration' @@ -23,10 +23,6 @@ jest.mock('@segment/actions-core', () => ({ })) })) -jest.mock('../../../lib/AWS/utils', () => ({ - APP_AWS_REGION: 'us-east-1' -})) - const testDestination = createTestIntegration(destination) describe('AWS Kinesis Destination - testAuthentication', () => { diff --git a/packages/destination-actions/src/destinations/aws-kinesis/__tests__/utils.test.ts b/packages/destination-actions/src/destinations/aws-kinesis/__tests__/utils.test.ts new file mode 100644 index 00000000000..2100c5d70aa --- /dev/null +++ b/packages/destination-actions/src/destinations/aws-kinesis/__tests__/utils.test.ts @@ -0,0 +1,141 @@ +import { validateIamRoleArnFormat, send } from '../utils' +import { Payload } from '../send/generated-types' +import { KinesisClient, PutRecordsCommand } from '@aws-sdk/client-kinesis' +import { assumeRole } from '../../../lib/AWS/sts' +import { IntegrationError } from '@segment/actions-core' +import { Logger } from '@segment/actions-core/destination-kit' + +describe('validateIamRoleArnFormat', () => { + it('should return true for a valid IAM Role ARN', () => { + const validArns = [ + 'arn:aws:iam::123456789012:role/MyRole', + 'arn:aws:iam::000000000000:role/service-role/My-Service_Role', + 'arn:aws:iam::987654321098:role/path/to/MyRole', + 'arn:aws:iam::111122223333:role/MyRole-With.Special@Chars_+=,.' + ] + + for (const arn of validArns) { + expect(validateIamRoleArnFormat(arn)).toBe(true) + } + }) + + it('should return false for an ARN with invalid prefix', () => { + const invalidArn = 'arn:aws:s3::123456789012:role/MyRole' + expect(validateIamRoleArnFormat(invalidArn)).toBe(false) + }) + + it('should return false if missing account ID', () => { + const invalidArn = 'arn:aws:iam:::role/MyRole' + expect(validateIamRoleArnFormat(invalidArn)).toBe(false) + }) + + it('should return false if account ID is not 12 digits', () => { + const invalidArns = ['arn:aws:iam::12345:role/MyRole', 'arn:aws:iam::1234567890123:role/MyRole'] + for (const arn of invalidArns) { + expect(validateIamRoleArnFormat(arn)).toBe(false) + } + }) + + it('should return false if missing "role/" segment', () => { + const invalidArn = 'arn:aws:iam::123456789012:MyRole' + expect(validateIamRoleArnFormat(invalidArn)).toBe(false) + }) + + it('should return false if role name contains invalid characters', () => { + const invalidArns = [ + 'arn:aws:iam::123456789012:role/My Role', // space + 'arn:aws:iam::123456789012:role/MyRole#InvalidChar' + ] + for (const arn of invalidArns) { + expect(validateIamRoleArnFormat(arn)).toBe(false) + } + }) + + it('should return false for empty or null values', () => { + expect(validateIamRoleArnFormat('')).toBe(false) + // @ts-expect-error testing invalid input type + expect(validateIamRoleArnFormat(null)).toBe(false) + // @ts-expect-error testing invalid input type + expect(validateIamRoleArnFormat(undefined)).toBe(false) + }) +}) + +jest.mock('@aws-sdk/client-kinesis') +jest.mock('../../../lib/AWS/sts') + +const mockSend = jest.fn() +const mockLogger: Partial = { + crit: jest.fn(), + info: jest.fn(), + warn: jest.fn() +} + +describe('Kinesis send', () => { + const mockSettings = { + iamRoleArn: 'arn:aws:iam::123456789012:role/TestRole', + iamExternalId: 'ext-id' + } + + const mockPayloads: Payload[] = [ + { + streamName: 'test-stream', + awsRegion: 'us-east-1', + partitionKey: 'pk-1', + payload: { data: 'test message' }, + max_batch_size: 500, + batch_keys: ['awsRegion'] + } + ] + + beforeEach(() => { + jest.clearAllMocks() + ;(assumeRole as jest.Mock).mockResolvedValue({ + accessKeyId: 'mockAccess', + secretAccessKey: 'mockSecret', + sessionToken: 'mockToken' + }) + ;(KinesisClient as unknown as jest.Mock).mockImplementation(() => ({ + send: mockSend + })) + }) + + it('should throw IntegrationError if partitionKey is missing', async () => { + const invalidPayload = [ + { ...mockPayloads[0], partitionKey: '' } // missing partitionKey + ] + + await expect(send(mockSettings, invalidPayload, undefined, mockLogger as Logger)).rejects.toThrow(IntegrationError) + + expect(mockLogger.crit).not.toHaveBeenCalled() + }) + + it('should create Kinesis client and send records successfully', async () => { + mockSend.mockResolvedValueOnce({ Records: [] }) + + await send(mockSettings, mockPayloads, undefined, mockLogger as Logger) + + expect(assumeRole).toHaveBeenCalledWith( + mockSettings.iamRoleArn, + mockSettings.iamExternalId, + expect.any(String) // region + ) + + expect(KinesisClient).toHaveBeenCalledWith( + expect.objectContaining({ + region: 'us-east-1', + credentials: expect.any(Object) + }) + ) + + expect(mockSend).toHaveBeenCalledWith(expect.any(PutRecordsCommand)) + }) + + it('should log and rethrow error when Kinesis send fails', async () => { + const error = new Error('Kinesis failure') + mockSend.mockRejectedValueOnce(error) + + await expect(send(mockSettings, mockPayloads, undefined, mockLogger as Logger)).rejects.toThrow('Kinesis failure') + + expect(mockLogger.crit).toHaveBeenCalledWith('Failed to send batch to Kinesis:', error) + }) +}) diff --git a/packages/destination-actions/src/destinations/aws-kinesis/index.ts b/packages/destination-actions/src/destinations/aws-kinesis/index.ts index 1641ea1979f..f7f4772f48c 100644 --- a/packages/destination-actions/src/destinations/aws-kinesis/index.ts +++ b/packages/destination-actions/src/destinations/aws-kinesis/index.ts @@ -3,7 +3,7 @@ import type { Settings } from './generated-types' import { IntegrationError } from '@segment/actions-core' import { assumeRole } from '../../lib/AWS/sts' import { validateIamRoleArnFormat } from './utils' -import { APP_AWS_REGION } from '../../lib/AWS/utils' +import { APP_AWS_REGION } from '@segment/actions-shared' import send from './send' diff --git a/packages/destination-actions/src/destinations/aws-kinesis/send/generated-types.ts b/packages/destination-actions/src/destinations/aws-kinesis/send/generated-types.ts index 0cb0d00394a..2e2c7fde29c 100644 --- a/packages/destination-actions/src/destinations/aws-kinesis/send/generated-types.ts +++ b/packages/destination-actions/src/destinations/aws-kinesis/send/generated-types.ts @@ -19,4 +19,12 @@ export interface Payload { * The AWS region where the Kinesis stream is located */ awsRegion: string + /** + * The keys to use for batching the events. + */ + batch_keys?: string[] + /** + * The maximum number of payloads to include in a batch. + */ + max_batch_size: number } diff --git a/packages/destination-actions/src/destinations/aws-kinesis/send/index.ts b/packages/destination-actions/src/destinations/aws-kinesis/send/index.ts index 62a6dee124c..3728fb1ccb2 100644 --- a/packages/destination-actions/src/destinations/aws-kinesis/send/index.ts +++ b/packages/destination-actions/src/destinations/aws-kinesis/send/index.ts @@ -1,6 +1,8 @@ import type { ActionDefinition } from '@segment/actions-core' import type { Settings } from '../generated-types' import type { Payload } from './generated-types' +import { AWS_REGIONS } from '@segment/actions-shared' +import { send } from '../utils' const action: ActionDefinition = { title: 'Send', @@ -26,18 +28,39 @@ const action: ActionDefinition = { description: 'The name of the Kinesis stream to send records to', type: 'string', required: true, - default: { '@path': '$.properties.streamName' } + disabledInputMethods: ['variable', 'function', 'freeform', 'enrichment'] }, awsRegion: { label: 'AWS Region', description: 'The AWS region where the Kinesis stream is located', type: 'string', required: true, - default: { '@path': '$.properties.awsRegion' } + choices: AWS_REGIONS, + disabledInputMethods: ['variable', 'function', 'freeform', 'enrichment'] + }, + batch_keys: { + label: 'Batch Keys', + description: 'The keys to use for batching the events.', + type: 'string', + unsafe_hidden: true, + default: ['awsRegion', 'streamName', 'partitionKey'], + multiple: true + }, + max_batch_size: { + label: 'Max Batch Size', + description: 'The maximum number of payloads to include in a batch.', + type: 'number', + required: true, + minimum: 1, + maximum: 500, + default: 500 } }, - perform: async (_request, _data) => { - // Todo implement functionality + perform: async (_requests, { settings, payload, statsContext, logger }) => { + await send(settings, [payload], statsContext, logger) + }, + performBatch: async (_requests, { settings, payload, statsContext, logger }) => { + await send(settings, payload, statsContext, logger) } } diff --git a/packages/destination-actions/src/destinations/aws-kinesis/utils.ts b/packages/destination-actions/src/destinations/aws-kinesis/utils.ts index 0a5d8006874..ffdc922fa48 100644 --- a/packages/destination-actions/src/destinations/aws-kinesis/utils.ts +++ b/packages/destination-actions/src/destinations/aws-kinesis/utils.ts @@ -1,4 +1,77 @@ +import type { Settings } from './generated-types' +import type { Payload } from './send/generated-types' +import { Logger, StatsContext } from '@segment/actions-core/destination-kit' +import { KinesisClient, PutRecordsCommand, PutRecordsRequestEntry } from '@aws-sdk/client-kinesis' +import { assumeRole } from '../../lib/AWS/sts' +import { APP_AWS_REGION } from '@segment/actions-shared' +import { NodeHttpHandler } from '@smithy/node-http-handler' +import { IntegrationError } from '@segment/actions-core' + +const KINESIS_COMMAND_TIMEOUT_MS = 5000 + export const validateIamRoleArnFormat = (arn: string): boolean => { const iamRoleArnRegex = /^arn:aws:iam::\d{12}:role\/[A-Za-z0-9+=,.@_\-/]+$/ return iamRoleArnRegex.test(arn) } + +const validatePartitionKey = (partitionKey: string): void => { + if (!partitionKey) { + throw new IntegrationError( + `Partition Key is required in the payload to send data to Kinesis.`, + 'PARTITION_KEY_MISSING', + 400 + ) + } +} + +const transformPayloads = (payloads: Payload[]): PutRecordsRequestEntry[] => { + return payloads.map((record) => ({ + Data: Buffer.from(JSON.stringify(record)), + PartitionKey: record.partitionKey + })) +} + +const createKinesisClient = async ( + iamRoleArn: string, + iamExternalId: string, + awsRegion: string +): Promise => { + const credentials = await assumeRole(iamRoleArn, iamExternalId, APP_AWS_REGION) + return new KinesisClient({ + region: awsRegion, + credentials: credentials, + requestHandler: new NodeHttpHandler({ + requestTimeout: KINESIS_COMMAND_TIMEOUT_MS // timeout in milliseconds + }) + }) +} + +export const send = async ( + settings: Settings, + payloads: Payload[], + _statsContext: StatsContext | undefined, + logger: Logger | undefined +): Promise => { + const { iamRoleArn, iamExternalId } = settings + const { streamName, awsRegion, partitionKey } = payloads[0] + validatePartitionKey(partitionKey) + const entries = transformPayloads(payloads) + + try { + const client = await createKinesisClient(iamRoleArn, iamExternalId, awsRegion) + const command = new PutRecordsCommand({ + StreamName: streamName, + Records: entries + }) + + await client.send(command) + } catch (error) { + logger?.crit('Failed to send batch to Kinesis:', error) + throw error + } + + // Todo + // 1. Handle Errors and Partial Failures from Kinesis + // 2. Add logs and metrics + // 5. Multi status response +} diff --git a/packages/destination-actions/src/lib/AWS/utils.ts b/packages/destination-actions/src/lib/AWS/utils.ts deleted file mode 100644 index 5492b40f1c8..00000000000 --- a/packages/destination-actions/src/lib/AWS/utils.ts +++ /dev/null @@ -1 +0,0 @@ -export const APP_AWS_REGION = process.env['AWS_REGION'] || `us-west-2` diff --git a/yarn.lock b/yarn.lock index 75a5c41816e..bcc4e2c58af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -173,6 +173,55 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@aws-sdk/client-kinesis@3.917.0": + version "3.917.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-kinesis/-/client-kinesis-3.917.0.tgz#36fd9e5c12f25c9aab3c6db1537a33be53d62eac" + integrity sha512-S5HVN+GmU5SgOs1ugyPHgMh8p4Yqiwygo2N1dcAC8tEDAqruIV3DRnM/KGqSHmjuZQ8JqfF5mcJXx8nK6fu7xA== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.916.0" + "@aws-sdk/credential-provider-node" "3.917.0" + "@aws-sdk/middleware-host-header" "3.914.0" + "@aws-sdk/middleware-logger" "3.914.0" + "@aws-sdk/middleware-recursion-detection" "3.914.0" + "@aws-sdk/middleware-user-agent" "3.916.0" + "@aws-sdk/region-config-resolver" "3.914.0" + "@aws-sdk/types" "3.914.0" + "@aws-sdk/util-endpoints" "3.916.0" + "@aws-sdk/util-user-agent-browser" "3.914.0" + "@aws-sdk/util-user-agent-node" "3.916.0" + "@smithy/config-resolver" "^4.4.0" + "@smithy/core" "^3.17.1" + "@smithy/eventstream-serde-browser" "^4.2.3" + "@smithy/eventstream-serde-config-resolver" "^4.3.3" + "@smithy/eventstream-serde-node" "^4.2.3" + "@smithy/fetch-http-handler" "^5.3.4" + "@smithy/hash-node" "^4.2.3" + "@smithy/invalid-dependency" "^4.2.3" + "@smithy/middleware-content-length" "^4.2.3" + "@smithy/middleware-endpoint" "^4.3.5" + "@smithy/middleware-retry" "^4.4.5" + "@smithy/middleware-serde" "^4.2.3" + "@smithy/middleware-stack" "^4.2.3" + "@smithy/node-config-provider" "^4.3.3" + "@smithy/node-http-handler" "^4.4.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/smithy-client" "^4.9.1" + "@smithy/types" "^4.8.0" + "@smithy/url-parser" "^4.2.3" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.4" + "@smithy/util-defaults-mode-node" "^4.2.6" + "@smithy/util-endpoints" "^3.2.3" + "@smithy/util-middleware" "^4.2.3" + "@smithy/util-retry" "^4.2.3" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.3" + tslib "^2.6.2" + "@aws-sdk/client-s3@^3.600.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.614.0.tgz#39620491e328d86282d0f9105fde7dd59427b4a1" @@ -370,6 +419,50 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@aws-sdk/client-sso@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.916.0.tgz#627792ab588a004fc0874a060b3466e21328b5b6" + integrity sha512-Eu4PtEUL1MyRvboQnoq5YKg0Z9vAni3ccebykJy615xokVZUdA3di2YxHM/hykDQX7lcUC62q9fVIvh0+UNk/w== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.916.0" + "@aws-sdk/middleware-host-header" "3.914.0" + "@aws-sdk/middleware-logger" "3.914.0" + "@aws-sdk/middleware-recursion-detection" "3.914.0" + "@aws-sdk/middleware-user-agent" "3.916.0" + "@aws-sdk/region-config-resolver" "3.914.0" + "@aws-sdk/types" "3.914.0" + "@aws-sdk/util-endpoints" "3.916.0" + "@aws-sdk/util-user-agent-browser" "3.914.0" + "@aws-sdk/util-user-agent-node" "3.916.0" + "@smithy/config-resolver" "^4.4.0" + "@smithy/core" "^3.17.1" + "@smithy/fetch-http-handler" "^5.3.4" + "@smithy/hash-node" "^4.2.3" + "@smithy/invalid-dependency" "^4.2.3" + "@smithy/middleware-content-length" "^4.2.3" + "@smithy/middleware-endpoint" "^4.3.5" + "@smithy/middleware-retry" "^4.4.5" + "@smithy/middleware-serde" "^4.2.3" + "@smithy/middleware-stack" "^4.2.3" + "@smithy/node-config-provider" "^4.3.3" + "@smithy/node-http-handler" "^4.4.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/smithy-client" "^4.9.1" + "@smithy/types" "^4.8.0" + "@smithy/url-parser" "^4.2.3" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.4" + "@smithy/util-defaults-mode-node" "^4.2.6" + "@smithy/util-endpoints" "^3.2.3" + "@smithy/util-middleware" "^4.2.3" + "@smithy/util-retry" "^4.2.3" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/client-sts@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.614.0.tgz#bb688944e54f147c8093e2d79b618263ee43cb19" @@ -446,6 +539,25 @@ fast-xml-parser "4.4.1" tslib "^2.6.2" +"@aws-sdk/core@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.916.0.tgz#ea11b485f837f1773e174f8a4ed82ecce9f163f7" + integrity sha512-1JHE5s6MD5PKGovmx/F1e01hUbds/1y3X8rD+Gvi/gWVfdg5noO7ZCerpRsWgfzgvCMZC9VicopBqNHCKLykZA== + dependencies: + "@aws-sdk/types" "3.914.0" + "@aws-sdk/xml-builder" "3.914.0" + "@smithy/core" "^3.17.1" + "@smithy/node-config-provider" "^4.3.3" + "@smithy/property-provider" "^4.2.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/signature-v4" "^5.3.3" + "@smithy/smithy-client" "^4.9.1" + "@smithy/types" "^4.8.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-middleware" "^4.2.3" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-env@3.609.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.609.0.tgz#b3f32e5a8ff8b541e151eadadfb60283aa3d835e" @@ -467,6 +579,17 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-env@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.916.0.tgz#c76861ec87f9edf227af62474411bf54ca04805d" + integrity sha512-3gDeqOXcBRXGHScc6xb7358Lyf64NRG2P08g6Bu5mv1Vbg9PKDyCAZvhKLkG7hkdfAM8Yc6UJNhbFxr1ud/tCQ== + dependencies: + "@aws-sdk/core" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@smithy/property-provider" "^4.2.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-http@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.614.0.tgz#2cdc07e029447182ada8ee18dcdb6bccddc57da5" @@ -498,6 +621,22 @@ "@smithy/util-stream" "^4.1.1" tslib "^2.6.2" +"@aws-sdk/credential-provider-http@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.916.0.tgz#b46e51c5cc65364c5fde752b4d016b5b747c6d89" + integrity sha512-NmooA5Z4/kPFJdsyoJgDxuqXC1C6oPMmreJjbOPqcwo6E/h2jxaG8utlQFgXe5F9FeJsMx668dtxVxSYnAAqHQ== + dependencies: + "@aws-sdk/core" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@smithy/fetch-http-handler" "^5.3.4" + "@smithy/node-http-handler" "^4.4.3" + "@smithy/property-provider" "^4.2.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/smithy-client" "^4.9.1" + "@smithy/types" "^4.8.0" + "@smithy/util-stream" "^4.5.4" + tslib "^2.6.2" + "@aws-sdk/credential-provider-ini@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.614.0.tgz#5c3e514d09d37aad167ab3571d10fb18c182ba5e" @@ -534,6 +673,25 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-ini@3.917.0": + version "3.917.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.917.0.tgz#d9255ffeaab2326e94e84a830668aa4182317294" + integrity sha512-rvQ0QamLySRq+Okc0ZqFHZ3Fbvj3tYuWNIlzyEKklNmw5X5PM1idYKlOJflY2dvUGkIqY3lUC9SC2WL+1s7KIw== + dependencies: + "@aws-sdk/core" "3.916.0" + "@aws-sdk/credential-provider-env" "3.916.0" + "@aws-sdk/credential-provider-http" "3.916.0" + "@aws-sdk/credential-provider-process" "3.916.0" + "@aws-sdk/credential-provider-sso" "3.916.0" + "@aws-sdk/credential-provider-web-identity" "3.917.0" + "@aws-sdk/nested-clients" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@smithy/credential-provider-imds" "^4.2.3" + "@smithy/property-provider" "^4.2.3" + "@smithy/shared-ini-file-loader" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-node@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.614.0.tgz#5faf5e3bf02ccb891769e4a28c784a80be42dcfc" @@ -570,6 +728,24 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-node@3.917.0": + version "3.917.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.917.0.tgz#a508038c12dc5ba177cc27ff0c26ea48d3702125" + integrity sha512-n7HUJ+TgU9wV/Z46yR1rqD9hUjfG50AKi+b5UXTlaDlVD8bckg40i77ROCllp53h32xQj/7H0yBIYyphwzLtmg== + dependencies: + "@aws-sdk/credential-provider-env" "3.916.0" + "@aws-sdk/credential-provider-http" "3.916.0" + "@aws-sdk/credential-provider-ini" "3.917.0" + "@aws-sdk/credential-provider-process" "3.916.0" + "@aws-sdk/credential-provider-sso" "3.916.0" + "@aws-sdk/credential-provider-web-identity" "3.917.0" + "@aws-sdk/types" "3.914.0" + "@smithy/credential-provider-imds" "^4.2.3" + "@smithy/property-provider" "^4.2.3" + "@smithy/shared-ini-file-loader" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-process@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.614.0.tgz#b6b9382346dfe51c8fb448595ae55b930532c897" @@ -593,6 +769,18 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-process@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.916.0.tgz#7c5aa9642a0e1c2a2791d85fe1bedfecae73672e" + integrity sha512-SXDyDvpJ1+WbotZDLJW1lqP6gYGaXfZJrgFSXIuZjHb75fKeNRgPkQX/wZDdUvCwdrscvxmtyJorp2sVYkMcvA== + dependencies: + "@aws-sdk/core" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@smithy/property-provider" "^4.2.3" + "@smithy/shared-ini-file-loader" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-sso@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.614.0.tgz#926de80b2f9288469604442bf2a395c5f2bf913d" @@ -620,6 +808,20 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-sso@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.916.0.tgz#b99ff591e758a56eefe7b05f1e77efe8f28f8c16" + integrity sha512-gu9D+c+U/Dp1AKBcVxYHNNoZF9uD4wjAKYCjgSN37j4tDsazwMEylbbZLuRNuxfbXtizbo4/TiaxBXDbWM7AkQ== + dependencies: + "@aws-sdk/client-sso" "3.916.0" + "@aws-sdk/core" "3.916.0" + "@aws-sdk/token-providers" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@smithy/property-provider" "^4.2.3" + "@smithy/shared-ini-file-loader" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-web-identity@3.609.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.609.0.tgz#d29222d6894347ee89c781ea090d388656df1d2a" @@ -642,6 +844,19 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/credential-provider-web-identity@3.917.0": + version "3.917.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.917.0.tgz#4a9bdc3dae13f5802aaa2d6e51249dfed029d9d6" + integrity sha512-pZncQhFbwW04pB0jcD5OFv3x2gAddDYCVxyJVixgyhSw7bKCYxqu6ramfq1NxyVpmm+qsw+ijwi/3cCmhUHF/A== + dependencies: + "@aws-sdk/core" "3.916.0" + "@aws-sdk/nested-clients" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@smithy/property-provider" "^4.2.3" + "@smithy/shared-ini-file-loader" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/middleware-bucket-endpoint@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.614.0.tgz#28a99d82a0e1f039fda20aa0dc375ec777bd595c" @@ -699,6 +914,16 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/middleware-host-header@3.914.0": + version "3.914.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.914.0.tgz#7e962c3d18c1ecc98606eab09a98dcf1b3402835" + integrity sha512-7r9ToySQ15+iIgXMF/h616PcQStByylVkCshmQqcdeynD/lCn2l667ynckxW4+ql0Q+Bo/URljuhJRxVJzydNA== + dependencies: + "@aws-sdk/types" "3.914.0" + "@smithy/protocol-http" "^5.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/middleware-location-constraint@3.609.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz#7ed82d71e5ddcd50683ef2bbde10d1cc2492057e" @@ -726,6 +951,15 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/middleware-logger@3.914.0": + version "3.914.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.914.0.tgz#222d50ec69447715d6954eb6db0029f11576227b" + integrity sha512-/gaW2VENS5vKvJbcE1umV4Ag3NuiVzpsANxtrqISxT3ovyro29o1RezW/Avz/6oJqjnmgz8soe9J1t65jJdiNg== + dependencies: + "@aws-sdk/types" "3.914.0" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/middleware-recursion-detection@3.609.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.609.0.tgz#b7b869aaeac021a43dbea1435eaea81e5d2460b1" @@ -746,6 +980,17 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/middleware-recursion-detection@3.914.0": + version "3.914.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.914.0.tgz#bf65759cf303f271b22770e7f9675034b4ced946" + integrity sha512-yiAjQKs5S2JKYc+GrkvGMwkUvhepXDigEXpSJqUseR/IrqHhvGNuOxDxq+8LbDhM4ajEW81wkiBbU+Jl9G82yQ== + dependencies: + "@aws-sdk/types" "3.914.0" + "@aws/lambda-invoke-store" "^0.0.1" + "@smithy/protocol-http" "^5.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/middleware-sdk-s3@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.614.0.tgz#df5ae294e6c99dbea5288c08c8c210f8e79d0208" @@ -827,6 +1072,19 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/middleware-user-agent@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.916.0.tgz#a0894ae6d70d7a81b2572ee69ed0d3049d39dfce" + integrity sha512-mzF5AdrpQXc2SOmAoaQeHpDFsK2GE6EGcEACeNuoESluPI2uYMpuuNMYrUufdnIAIyqgKlis0NVxiahA5jG42w== + dependencies: + "@aws-sdk/core" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@aws-sdk/util-endpoints" "3.916.0" + "@smithy/core" "^3.17.1" + "@smithy/protocol-http" "^5.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/nested-clients@3.750.0": version "3.750.0" resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.750.0.tgz#facfef441ad78db2f544be0eb3f1f7adb16846c1" @@ -871,6 +1129,50 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@aws-sdk/nested-clients@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.916.0.tgz#2f79b924dd6c25cc3c40f6a0453097ae7a512702" + integrity sha512-tgg8e8AnVAer0rcgeWucFJ/uNN67TbTiDHfD+zIOPKep0Z61mrHEoeT/X8WxGIOkEn4W6nMpmS4ii8P42rNtnA== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.916.0" + "@aws-sdk/middleware-host-header" "3.914.0" + "@aws-sdk/middleware-logger" "3.914.0" + "@aws-sdk/middleware-recursion-detection" "3.914.0" + "@aws-sdk/middleware-user-agent" "3.916.0" + "@aws-sdk/region-config-resolver" "3.914.0" + "@aws-sdk/types" "3.914.0" + "@aws-sdk/util-endpoints" "3.916.0" + "@aws-sdk/util-user-agent-browser" "3.914.0" + "@aws-sdk/util-user-agent-node" "3.916.0" + "@smithy/config-resolver" "^4.4.0" + "@smithy/core" "^3.17.1" + "@smithy/fetch-http-handler" "^5.3.4" + "@smithy/hash-node" "^4.2.3" + "@smithy/invalid-dependency" "^4.2.3" + "@smithy/middleware-content-length" "^4.2.3" + "@smithy/middleware-endpoint" "^4.3.5" + "@smithy/middleware-retry" "^4.4.5" + "@smithy/middleware-serde" "^4.2.3" + "@smithy/middleware-stack" "^4.2.3" + "@smithy/node-config-provider" "^4.3.3" + "@smithy/node-http-handler" "^4.4.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/smithy-client" "^4.9.1" + "@smithy/types" "^4.8.0" + "@smithy/url-parser" "^4.2.3" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.4" + "@smithy/util-defaults-mode-node" "^4.2.6" + "@smithy/util-endpoints" "^3.2.3" + "@smithy/util-middleware" "^4.2.3" + "@smithy/util-retry" "^4.2.3" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/region-config-resolver@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" @@ -895,6 +1197,16 @@ "@smithy/util-middleware" "^4.0.1" tslib "^2.6.2" +"@aws-sdk/region-config-resolver@3.914.0": + version "3.914.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.914.0.tgz#b6d2825081195ce1c634b8c92b1e19b08f140008" + integrity sha512-KlmHhRbn1qdwXUdsdrJ7S/MAkkC1jLpQ11n+XvxUUUCGAJd1gjC7AjxPZUM7ieQ2zcb8bfEzIU7al+Q3ZT0u7Q== + dependencies: + "@aws-sdk/types" "3.914.0" + "@smithy/config-resolver" "^4.4.0" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/signature-v4-multi-region@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.614.0.tgz#fabcef8b1c8ff052d48221dbff66390d6de89b4e" @@ -942,6 +1254,19 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/token-providers@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.916.0.tgz#e824fd44a553c4047b769caf22a94fd2705c9f1d" + integrity sha512-13GGOEgq5etbXulFCmYqhWtpcEQ6WI6U53dvXbheW0guut8fDFJZmEv7tKMTJgiybxh7JHd0rWcL9JQND8DwoQ== + dependencies: + "@aws-sdk/core" "3.916.0" + "@aws-sdk/nested-clients" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@smithy/property-provider" "^4.2.3" + "@smithy/shared-ini-file-loader" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/types@3.609.0", "@aws-sdk/types@^3.222.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" @@ -958,6 +1283,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/types@3.914.0": + version "3.914.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.914.0.tgz#175cf9a4b2267aafbb110fe1316e6827de951fdb" + integrity sha512-kQWPsRDmom4yvAfyG6L1lMmlwnTzm1XwMHOU+G5IFlsP4YEaMtXidDzW/wiivY0QFrhfCz/4TVmu0a2aPU57ug== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/util-arn-parser@3.568.0": version "3.568.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" @@ -992,6 +1325,17 @@ "@smithy/util-endpoints" "^3.0.1" tslib "^2.6.2" +"@aws-sdk/util-endpoints@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.916.0.tgz#ab54249b8090cd66fe14aa8518097107a2595196" + integrity sha512-bAgUQwvixdsiGNcuZSDAOWbyHlnPtg8G8TyHD6DTfTmKTHUW6tAn+af/ZYJPXEzXhhpwgJqi58vWnsiDhmr7NQ== + dependencies: + "@aws-sdk/types" "3.914.0" + "@smithy/types" "^4.8.0" + "@smithy/url-parser" "^4.2.3" + "@smithy/util-endpoints" "^3.2.3" + tslib "^2.6.2" + "@aws-sdk/util-locate-window@^3.0.0": version "3.568.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff" @@ -1019,6 +1363,16 @@ bowser "^2.11.0" tslib "^2.6.2" +"@aws-sdk/util-user-agent-browser@3.914.0": + version "3.914.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.914.0.tgz#ed29fd87f6ffba6f53615894a5e969cb9013af59" + integrity sha512-rMQUrM1ECH4kmIwlGl9UB0BtbHy6ZuKdWFrIknu8yGTRI/saAucqNTh5EI1vWBxZ0ElhK5+g7zOnUuhSmVQYUA== + dependencies: + "@aws-sdk/types" "3.914.0" + "@smithy/types" "^4.8.0" + bowser "^2.11.0" + tslib "^2.6.2" + "@aws-sdk/util-user-agent-node@3.614.0": version "3.614.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" @@ -1040,6 +1394,17 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@aws-sdk/util-user-agent-node@3.916.0": + version "3.916.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.916.0.tgz#3ab5fdb9f45345f19f426941ece71988b31bf58d" + integrity sha512-CwfWV2ch6UdjuSV75ZU99N03seEUb31FIUrXBnwa6oONqj/xqXwrxtlUMLx6WH3OJEE4zI3zt5PjlTdGcVwf4g== + dependencies: + "@aws-sdk/middleware-user-agent" "3.916.0" + "@aws-sdk/types" "3.914.0" + "@smithy/node-config-provider" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@aws-sdk/xml-builder@3.609.0": version "3.609.0" resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz#eeb3d5cde000a23cfeeefe0354b6193440dc7d87" @@ -1048,6 +1413,20 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@aws-sdk/xml-builder@3.914.0": + version "3.914.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.914.0.tgz#4e98b479856113db877d055e7b008065c50266d4" + integrity sha512-k75evsBD5TcIjedycYS7QXQ98AmOtbnxRJOPtCo0IwYRmy7UvqgS/gBL5SmrIqeV6FDSYRQMgdBxSMp6MLmdew== + dependencies: + "@smithy/types" "^4.8.0" + fast-xml-parser "5.2.5" + tslib "^2.6.2" + +"@aws/lambda-invoke-store@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz#92d792a7dda250dfcb902e13228f37a81be57c8f" + integrity sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw== + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -4320,6 +4699,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/abort-controller@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.3.tgz#4615da3012b580ac3d1f0ee7b57ed7d7880bb29b" + integrity sha512-xWL9Mf8b7tIFuAlpjKtRPnHrR8XVrwTj5NPYO/QwZPtc0SDLsPxb56V5tzi5yspSMytISHybifez+4jlrx0vkQ== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/chunked-blob-reader-native@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz#f1104b30030f76f9aadcbd3cdca4377bd1ba2695" @@ -4357,6 +4744,18 @@ "@smithy/util-middleware" "^4.0.1" tslib "^2.6.2" +"@smithy/config-resolver@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.0.tgz#9a33b7dd9b7e0475802acef53f41555257e104cd" + integrity sha512-Kkmz3Mup2PGp/HNJxhCWkLNdlajJORLSjwkcfrj0E7nu6STAEdcMR1ir5P9/xOmncx8xXfru0fbUYLlZog/cFg== + dependencies: + "@smithy/node-config-provider" "^4.3.3" + "@smithy/types" "^4.8.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-endpoints" "^3.2.3" + "@smithy/util-middleware" "^4.2.3" + tslib "^2.6.2" + "@smithy/core@^2.2.6": version "2.2.8" resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.2.8.tgz#d1edc47584497c58aec741b0a2814cdc1db7b72c" @@ -4385,6 +4784,22 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/core@^3.17.1": + version "3.17.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.17.1.tgz#644aa4046b31c82d2c17276bcef2c6b78245dfeb" + integrity sha512-V4Qc2CIb5McABYfaGiIYLTmo/vwNIK7WXI5aGveBd9UcdhbOMwcvIMxIw/DJj1S9QgOMa/7FBkarMdIC0EOTEQ== + dependencies: + "@smithy/middleware-serde" "^4.2.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/types" "^4.8.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-middleware" "^4.2.3" + "@smithy/util-stream" "^4.5.4" + "@smithy/util-utf8" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + "@smithy/credential-provider-imds@^3.1.4": version "3.1.4" resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.4.tgz#797116f68cc3ffa658469558cc014f25d9febe09" @@ -4407,6 +4822,17 @@ "@smithy/url-parser" "^4.0.1" tslib "^2.6.2" +"@smithy/credential-provider-imds@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.3.tgz#b35d0d1f1b28f415e06282999eba2d53eb10a1c5" + integrity sha512-hA1MQ/WAHly4SYltJKitEsIDVsNmXcQfYBRv2e+q04fnqtAX5qXaybxy/fhUeAMCnQIdAjaGDb04fMHQefWRhw== + dependencies: + "@smithy/node-config-provider" "^4.3.3" + "@smithy/property-provider" "^4.2.3" + "@smithy/types" "^4.8.0" + "@smithy/url-parser" "^4.2.3" + tslib "^2.6.2" + "@smithy/eventstream-codec@^3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz#4a1c72b34400631b829241151984a1ad8c4f963c" @@ -4417,6 +4843,16 @@ "@smithy/util-hex-encoding" "^3.0.0" tslib "^2.6.2" +"@smithy/eventstream-codec@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.3.tgz#dd65d9050c322f0805ba62749a3801985a2f5394" + integrity sha512-rcr0VH0uNoMrtgKuY7sMfyKqbHc4GQaQ6Yp4vwgm+Z6psPuOgL+i/Eo/QWdXRmMinL3EgFM0Z1vkfyPyfzLmjw== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^4.8.0" + "@smithy/util-hex-encoding" "^4.2.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-browser@^3.0.4": version "3.0.5" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.5.tgz#3e971afd2b8a02a098af8decc4b9e3f35296d6a2" @@ -4426,6 +4862,15 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@smithy/eventstream-serde-browser@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.3.tgz#57fb9c10daac12647a0b97ef04330d706cbe9494" + integrity sha512-EcS0kydOr2qJ3vV45y7nWnTlrPmVIMbUFOZbMG80+e2+xePQISX9DrcbRpVRFTS5Nqz3FiEbDcTCAV0or7bqdw== + dependencies: + "@smithy/eventstream-serde-universal" "^4.2.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-config-resolver@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz#f852e096d0ad112363b4685e1d441088d1fce67a" @@ -4434,6 +4879,14 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@smithy/eventstream-serde-config-resolver@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.3.tgz#ca1a7d272ae939aee303da40aa476656d785f75f" + integrity sha512-GewKGZ6lIJ9APjHFqR2cUW+Efp98xLu1KmN0jOWxQ1TN/gx3HTUPVbLciFD8CfScBj2IiKifqh9vYFRRXrYqXA== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-node@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.4.tgz#6301752ca51b3ebabcd2dec112f1dacd990de4c1" @@ -4443,6 +4896,15 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@smithy/eventstream-serde-node@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.3.tgz#f1b33bb576bf7222b6bd6bc2ad845068ccf53f16" + integrity sha512-uQobOTQq2FapuSOlmGLUeGTpvcBLE5Fc7XjERUSk4dxEi4AhTwuyHYZNAvL4EMUp7lzxxkKDFaJ1GY0ovrj0Kg== + dependencies: + "@smithy/eventstream-serde-universal" "^4.2.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-universal@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.4.tgz#6754de5b94bdc286d8ef1d6bcf22d80f6ab68f30" @@ -4452,6 +4914,15 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@smithy/eventstream-serde-universal@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.3.tgz#86194daa2cd2496e413723465360d80f32ad7252" + integrity sha512-QIvH/CKOk1BZPz/iwfgbh1SQD5Y0lpaw2kLA8zpLRRtYMPXeYUEWh+moTaJyqDaKlbrB174kB7FSRFiZ735tWw== + dependencies: + "@smithy/eventstream-codec" "^4.2.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/fetch-http-handler@^3.2.1", "@smithy/fetch-http-handler@^3.2.2": version "3.2.2" resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.2.tgz#67e29be8815dcf793d14186cae00bccaeffb963c" @@ -4474,6 +4945,17 @@ "@smithy/util-base64" "^4.0.0" tslib "^2.6.2" +"@smithy/fetch-http-handler@^5.3.4": + version "5.3.4" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.4.tgz#af6dd2f63550494c84ef029a5ceda81ef46965d3" + integrity sha512-bwigPylvivpRLCm+YK9I5wRIYjFESSVwl8JQ1vVx/XhCw0PtCi558NwTnT2DaVCl5pYlImGuQTSwMsZ+pIavRw== + dependencies: + "@smithy/protocol-http" "^5.3.3" + "@smithy/querystring-builder" "^4.2.3" + "@smithy/types" "^4.8.0" + "@smithy/util-base64" "^4.3.0" + tslib "^2.6.2" + "@smithy/hash-blob-browser@^3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz#90281c1f183d93686fb4f26107f1819644d68829" @@ -4504,6 +4986,16 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/hash-node@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.3.tgz#c85711fca84e022f05c71b921f98cb6a0f48e5ca" + integrity sha512-6+NOdZDbfuU6s1ISp3UOk5Rg953RJ2aBLNLLBEcamLjHAg1Po9Ha7QIB5ZWhdRUVuOUrT8BVFR+O2KIPmw027g== + dependencies: + "@smithy/types" "^4.8.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/hash-stream-node@^3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz#89f0290ae44b113863878e75b10c484ff48af71c" @@ -4529,6 +5021,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/invalid-dependency@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.3.tgz#4f126ddde90fe3d69d522fc37256ee853246c1ec" + integrity sha512-Cc9W5DwDuebXEDMpOpl4iERo8I0KFjTnomK2RMdhhR87GwrSmUmwMxS4P5JdRf+LsjOdIqumcerwRgYMr/tZ9Q== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/is-array-buffer@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" @@ -4550,6 +5050,13 @@ dependencies: tslib "^2.6.2" +"@smithy/is-array-buffer@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz#b0f874c43887d3ad44f472a0f3f961bcce0550c2" + integrity sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ== + dependencies: + tslib "^2.6.2" + "@smithy/md5-js@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.3.tgz#55ee40aa24075b096c39f7910590c18ff7660c98" @@ -4577,6 +5084,15 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/middleware-content-length@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.3.tgz#b7d1d79ae674dad17e35e3518db4b1f0adc08964" + integrity sha512-/atXLsT88GwKtfp5Jr0Ks1CSa4+lB+IgRnkNrrYP0h1wL4swHNb0YONEvTceNKNdZGJsye+W2HH8W7olbcPUeA== + dependencies: + "@smithy/protocol-http" "^5.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/middleware-endpoint@^3.0.5": version "3.0.5" resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.5.tgz#76e8a559e891282d3ede9ab8e228e66cbee89b21" @@ -4604,6 +5120,20 @@ "@smithy/util-middleware" "^4.0.1" tslib "^2.6.2" +"@smithy/middleware-endpoint@^4.3.5": + version "4.3.5" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.5.tgz#c22f82f83f0b5cc6c0866a2a87b65bc2e79af352" + integrity sha512-SIzKVTvEudFWJbxAaq7f2GvP3jh2FHDpIFI6/VAf4FOWGFZy0vnYMPSRj8PGYI8Hjt29mvmwSRgKuO3bK4ixDw== + dependencies: + "@smithy/core" "^3.17.1" + "@smithy/middleware-serde" "^4.2.3" + "@smithy/node-config-provider" "^4.3.3" + "@smithy/shared-ini-file-loader" "^4.3.3" + "@smithy/types" "^4.8.0" + "@smithy/url-parser" "^4.2.3" + "@smithy/util-middleware" "^4.2.3" + tslib "^2.6.2" + "@smithy/middleware-retry@^3.0.11", "@smithy/middleware-retry@^3.0.9": version "3.0.11" resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.11.tgz#4a8137a45247233aa83707ff9da3b8ee3dfefbba" @@ -4634,6 +5164,21 @@ tslib "^2.6.2" uuid "^9.0.1" +"@smithy/middleware-retry@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.5.tgz#5bdb6ba1be6a97272b79fdac99db40c5e7ab81e0" + integrity sha512-DCaXbQqcZ4tONMvvdz+zccDE21sLcbwWoNqzPLFlZaxt1lDtOE2tlVpRSwcTOJrjJSUThdgEYn7HrX5oLGlK9A== + dependencies: + "@smithy/node-config-provider" "^4.3.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/service-error-classification" "^4.2.3" + "@smithy/smithy-client" "^4.9.1" + "@smithy/types" "^4.8.0" + "@smithy/util-middleware" "^4.2.3" + "@smithy/util-retry" "^4.2.3" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + "@smithy/middleware-serde@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" @@ -4650,6 +5195,15 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/middleware-serde@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.3.tgz#a827e9c4ea9e51c79cca4d6741d582026a8b53eb" + integrity sha512-8g4NuUINpYccxiCXM5s1/V+uLtts8NcX4+sPEbvYQDZk4XoJfDpq5y2FQxfmUL89syoldpzNzA0R9nhzdtdKnQ== + dependencies: + "@smithy/protocol-http" "^5.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/middleware-stack@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz#91845c7e61e6f137fa912b623b6def719a4f6ce7" @@ -4666,6 +5220,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/middleware-stack@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.3.tgz#5a315aa9d0fd4faaa248780297c8cbacc31c2eba" + integrity sha512-iGuOJkH71faPNgOj/gWuEGS6xvQashpLwWB1HjHq1lNNiVfbiJLpZVbhddPuDbx9l4Cgl0vPLq5ltRfSaHfspA== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/node-config-provider@^3.1.4": version "3.1.4" resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz#05647bed666aa8036a1ad72323c1942e5d421be1" @@ -4686,6 +5248,16 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/node-config-provider@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.3.tgz#44140a1e6bc666bcf16faf68c35d3dae4ba8cad5" + integrity sha512-NzI1eBpBSViOav8NVy1fqOlSfkLgkUjUTlohUSgAEhHaFWA3XJiLditvavIP7OpvTjDp5u2LhtlBhkBlEisMwA== + dependencies: + "@smithy/property-provider" "^4.2.3" + "@smithy/shared-ini-file-loader" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/node-http-handler@^3.1.2", "@smithy/node-http-handler@^3.1.3": version "3.1.3" resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.3.tgz#1b729a8a2ca6b84618a1e92c53c49a1fcf3a3e5a" @@ -4708,6 +5280,17 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/node-http-handler@^4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.3.tgz#fb2d16719cb4e8df0c189e8bde60e837df5c0c5b" + integrity sha512-MAwltrDB0lZB/H6/2M5PIsISSwdI5yIh6DaBB9r0Flo9nx3y0dzl/qTMJPd7tJvPdsx6Ks/cwVzheGNYzXyNbQ== + dependencies: + "@smithy/abort-controller" "^4.2.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/querystring-builder" "^4.2.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/property-provider@^3.1.3": version "3.1.3" resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.3.tgz#afd57ea82a3f6c79fbda95e3cb85c0ee0a79f39a" @@ -4724,6 +5307,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/property-provider@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.3.tgz#a6c82ca0aa1c57f697464bee496f3fec58660864" + integrity sha512-+1EZ+Y+njiefCohjlhyOcy1UNYjT+1PwGFHCxA/gYctjg3DQWAU19WigOXAco/Ql8hZokNehpzLd0/+3uCreqQ== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/protocol-http@^4.0.3", "@smithy/protocol-http@^4.0.4": version "4.0.4" resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.0.4.tgz#f784a03460b971cf10027d0e7f6673835ed7e637" @@ -4740,6 +5331,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/protocol-http@^5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.3.tgz#55b35c18bdc0f6d86e78f63961e50ba4ff1c5d73" + integrity sha512-Mn7f/1aN2/jecywDcRDvWWWJF4uwg/A0XjFMJtj72DsgHTByfjRltSqcT9NyE9RTdBSN6X1RSXrhn/YWQl8xlw== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/querystring-builder@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" @@ -4758,6 +5357,15 @@ "@smithy/util-uri-escape" "^4.0.0" tslib "^2.6.2" +"@smithy/querystring-builder@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.3.tgz#ca273ae8c21fce01a52632202679c0f9e2acf41a" + integrity sha512-LOVCGCmwMahYUM/P0YnU/AlDQFjcu+gWbFJooC417QRB/lDJlWSn8qmPSDp+s4YVAHOgtgbNG4sR+SxF/VOcJQ== + dependencies: + "@smithy/types" "^4.8.0" + "@smithy/util-uri-escape" "^4.2.0" + tslib "^2.6.2" + "@smithy/querystring-parser@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz#272a6b83f88dfcbbec8283d72a6bde850cc00091" @@ -4774,6 +5382,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/querystring-parser@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.3.tgz#b6d7d5cd300b4083c62d9bd30915f782d01f503e" + integrity sha512-cYlSNHcTAX/wc1rpblli3aUlLMGgKZ/Oqn8hhjFASXMCXjIqeuQBei0cnq2JR8t4RtU9FpG6uyl6PxyArTiwKA== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/service-error-classification@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz#73484255060a094aa9372f6cd972dcaf97e3ce80" @@ -4788,6 +5404,13 @@ dependencies: "@smithy/types" "^4.1.0" +"@smithy/service-error-classification@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.3.tgz#ecb41dd514841eebb93e91012ae5e343040f6828" + integrity sha512-NkxsAxFWwsPsQiwFG2MzJ/T7uIR6AQNh1SzcxSUnmmIqIQMlLRQDKhc17M7IYjiuBXhrQRjQTo3CxX+DobS93g== + dependencies: + "@smithy/types" "^4.8.0" + "@smithy/shared-ini-file-loader@^3.1.4": version "3.1.4" resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz#7dceaf5a5307a2ee347ace8aba17312a1a3ede15" @@ -4804,6 +5427,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/shared-ini-file-loader@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.3.tgz#1d5162cd3a14f57e4fde56f65aa188e8138c1248" + integrity sha512-9f9Ixej0hFhroOK2TxZfUUDR13WVa8tQzhSzPDgXe5jGL3KmaM9s8XN7RQwqtEypI82q9KHnKS71CJ+q/1xLtQ== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/signature-v4@^3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-3.1.2.tgz#63fc0d4f9a955e902138fb0a57fafc96b9d4e8bb" @@ -4831,6 +5462,20 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/signature-v4@^5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.3.tgz#5ff13cfaa29cb531061c2582cb599b39e040e52e" + integrity sha512-CmSlUy+eEYbIEYN5N3vvQTRfqt0lJlQkaQUIf+oizu7BbDut0pozfDjBGecfcfWf7c62Yis4JIEgqQ/TCfodaA== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/protocol-http" "^5.3.3" + "@smithy/types" "^4.8.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-middleware" "^4.2.3" + "@smithy/util-uri-escape" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/smithy-client@^3.1.7", "@smithy/smithy-client@^3.1.9": version "3.1.9" resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.9.tgz#a0d8e867165db64c2a66762df0db279d1f8029eb" @@ -4856,6 +5501,19 @@ "@smithy/util-stream" "^4.1.2" tslib "^2.6.2" +"@smithy/smithy-client@^4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.9.1.tgz#a36e456e837121b2ded6f7d5f1f30b205c446e20" + integrity sha512-Ngb95ryR5A9xqvQFT5mAmYkCwbXvoLavLFwmi7zVg/IowFPCfiqRfkOKnbc/ZRL8ZKJ4f+Tp6kSu6wjDQb8L/g== + dependencies: + "@smithy/core" "^3.17.1" + "@smithy/middleware-endpoint" "^4.3.5" + "@smithy/middleware-stack" "^4.2.3" + "@smithy/protocol-http" "^5.3.3" + "@smithy/types" "^4.8.0" + "@smithy/util-stream" "^4.5.4" + tslib "^2.6.2" + "@smithy/types@^3.3.0": version "3.3.0" resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" @@ -4870,6 +5528,13 @@ dependencies: tslib "^2.6.2" +"@smithy/types@^4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.8.0.tgz#e6f65e712478910b74747081e6046e68159f767d" + integrity sha512-QpELEHLO8SsQVtqP+MkEgCYTFW0pleGozfs3cZ183ZBj9z3VC1CX1/wtFMK64p+5bhtZo41SeLK1rBRtd25nHQ== + dependencies: + tslib "^2.6.2" + "@smithy/url-parser@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" @@ -4888,6 +5553,15 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/url-parser@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.3.tgz#82508f273a3f074d47d0919f7ce08028c6575c2f" + integrity sha512-I066AigYvY3d9VlU3zG9XzZg1yT10aNqvCaBTw9EPgu5GrsEl1aUkcMvhkIXascYH1A8W0LQo3B1Kr1cJNcQEw== + dependencies: + "@smithy/querystring-parser" "^4.2.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/util-base64@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017" @@ -4906,6 +5580,15 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/util-base64@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.3.0.tgz#5e287b528793aa7363877c1a02cd880d2e76241d" + integrity sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ== + dependencies: + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/util-body-length-browser@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded" @@ -4920,6 +5603,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-body-length-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz#04e9fc51ee7a3e7f648a4b4bcdf96c350cfa4d61" + integrity sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg== + dependencies: + tslib "^2.6.2" + "@smithy/util-body-length-node@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d" @@ -4934,6 +5624,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-body-length-node@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz#79c8a5d18e010cce6c42d5cbaf6c1958523e6fec" + integrity sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA== + dependencies: + tslib "^2.6.2" + "@smithy/util-buffer-from@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" @@ -4958,6 +5655,14 @@ "@smithy/is-array-buffer" "^4.0.0" tslib "^2.6.2" +"@smithy/util-buffer-from@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz#7abd12c4991b546e7cee24d1e8b4bfaa35c68a9d" + integrity sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + tslib "^2.6.2" + "@smithy/util-config-provider@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe" @@ -4972,6 +5677,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-config-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz#2e4722937f8feda4dcb09672c59925a4e6286cfc" + integrity sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q== + dependencies: + tslib "^2.6.2" + "@smithy/util-defaults-mode-browser@^3.0.9": version "3.0.11" resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.11.tgz#c8a74369405f55d39492b9ec15458cc2fe56b783" @@ -4994,6 +5706,16 @@ bowser "^2.11.0" tslib "^2.6.2" +"@smithy/util-defaults-mode-browser@^4.3.4": + version "4.3.4" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.4.tgz#ed96651c32ac0de55b066fcb07a296837373212f" + integrity sha512-qI5PJSW52rnutos8Bln8nwQZRpyoSRN6k2ajyoUHNMUzmWqHnOJCnDELJuV6m5PML0VkHI+XcXzdB+6awiqYUw== + dependencies: + "@smithy/property-provider" "^4.2.3" + "@smithy/smithy-client" "^4.9.1" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/util-defaults-mode-node@^3.0.9": version "3.0.11" resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.11.tgz#288f443b65554597082858c4b6624cd362a2caaa" @@ -5020,6 +5742,19 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/util-defaults-mode-node@^4.2.6": + version "4.2.6" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.6.tgz#01b7ff4605f6f981972083fee22d036e5dc4be38" + integrity sha512-c6M/ceBTm31YdcFpgfgQAJaw3KbaLuRKnAz91iMWFLSrgxRpYm03c3bu5cpYojNMfkV9arCUelelKA7XQT36SQ== + dependencies: + "@smithy/config-resolver" "^4.4.0" + "@smithy/credential-provider-imds" "^4.2.3" + "@smithy/node-config-provider" "^4.3.3" + "@smithy/property-provider" "^4.2.3" + "@smithy/smithy-client" "^4.9.1" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/util-endpoints@^2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" @@ -5038,6 +5773,15 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/util-endpoints@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.3.tgz#8bbb80f1ad5769d9f73992c5979eea3b74d7baa9" + integrity sha512-aCfxUOVv0CzBIkU10TubdgKSx5uRvzH064kaiPEWfNIvKOtNpu642P4FP1hgOFkjQIkDObrfIDnKMKkeyrejvQ== + dependencies: + "@smithy/node-config-provider" "^4.3.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/util-hex-encoding@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6" @@ -5052,6 +5796,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-hex-encoding@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz#1c22ea3d1e2c3a81ff81c0a4f9c056a175068a7b" + integrity sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw== + dependencies: + tslib "^2.6.2" + "@smithy/util-middleware@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.3.tgz#07bf9602682f5a6c55bc2f0384303f85fc68c87e" @@ -5068,6 +5819,14 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/util-middleware@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.3.tgz#7c73416a6e3d3207a2d34a1eadd9f2b6a9811bd6" + integrity sha512-v5ObKlSe8PWUHCqEiX2fy1gNv6goiw6E5I/PN2aXg3Fb/hse0xeaAnSpXDiWl7x6LamVKq7senB+m5LOYHUAHw== + dependencies: + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/util-retry@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.3.tgz#9b2ac0dbb1c81f69812a8affa4d772bebfc0e049" @@ -5086,6 +5845,15 @@ "@smithy/types" "^4.1.0" tslib "^2.6.2" +"@smithy/util-retry@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.3.tgz#b1e5c96d96aaf971b68323ff8ba8754f914f22a0" + integrity sha512-lLPWnakjC0q9z+OtiXk+9RPQiYPNAovt2IXD3CP4LkOnd9NpUsxOjMx1SnoUVB7Orb7fZp67cQMtTBKMFDvOGg== + dependencies: + "@smithy/service-error-classification" "^4.2.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + "@smithy/util-stream@^3.0.6", "@smithy/util-stream@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.1.tgz#2fffe56d9cdf70e94a7cd690e980454b1b35ad23" @@ -5114,6 +5882,20 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/util-stream@^4.5.4": + version "4.5.4" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.4.tgz#bfc60e2714c2065b8e7e91ca921cc31c73efdbd4" + integrity sha512-+qDxSkiErejw1BAIXUFBSfM5xh3arbz1MmxlbMCKanDDZtVEQ7PSKW9FQS0Vud1eI/kYn0oCTVKyNzRlq+9MUw== + dependencies: + "@smithy/fetch-http-handler" "^5.3.4" + "@smithy/node-http-handler" "^4.4.3" + "@smithy/types" "^4.8.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/util-uri-escape@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54" @@ -5128,6 +5910,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-uri-escape@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz#096a4cec537d108ac24a68a9c60bee73fc7e3a9e" + integrity sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA== + dependencies: + tslib "^2.6.2" + "@smithy/util-utf8@^2.0.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" @@ -5152,6 +5941,14 @@ "@smithy/util-buffer-from" "^4.0.0" tslib "^2.6.2" +"@smithy/util-utf8@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz#8b19d1514f621c44a3a68151f3d43e51087fed9d" + integrity sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw== + dependencies: + "@smithy/util-buffer-from" "^4.2.0" + tslib "^2.6.2" + "@smithy/util-waiter@^3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.2.tgz#2d40c3312f3537feee763459a19acafab4c75cf3" @@ -5161,6 +5958,22 @@ "@smithy/types" "^3.3.0" tslib "^2.6.2" +"@smithy/util-waiter@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.3.tgz#4c662009db101bc60aed07815d359e90904caef2" + integrity sha512-5+nU///E5sAdD7t3hs4uwvCTWQtTR8JwKwOCSJtBRx0bY1isDo1QwH87vRK86vlFLBTISqoDA2V6xvP6nF1isQ== + dependencies: + "@smithy/abort-controller" "^4.2.3" + "@smithy/types" "^4.8.0" + tslib "^2.6.2" + +"@smithy/uuid@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.0.tgz#9fd09d3f91375eab94f478858123387df1cda987" + integrity sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw== + dependencies: + tslib "^2.6.2" + "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" @@ -11078,6 +11891,13 @@ fast-xml-parser@4.4.1: dependencies: strnum "^1.0.5" +fast-xml-parser@5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz#4809fdfb1310494e341098c25cb1341a01a9144a" + integrity sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ== + dependencies: + strnum "^2.1.0" + fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -18767,6 +19587,11 @@ strnum@^1.0.5: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== +strnum@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.1.tgz#cf2a6e0cf903728b8b2c4b971b7e36b4e82d46ab" + integrity sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw== + strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10"