diff --git a/modules/runners/lambdas/runners/package.json b/modules/runners/lambdas/runners/package.json index d35c8953ea..a8b2676f51 100644 --- a/modules/runners/lambdas/runners/package.json +++ b/modules/runners/lambdas/runners/package.json @@ -25,6 +25,8 @@ "@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/parser": "^5.57.0", "@vercel/ncc": "^0.36.1", + "aws-sdk-client-mock": "^2.1.1", + "aws-sdk-client-mock-jest": "^2.1.1", "eslint": "^8.33.0", "eslint-plugin-prettier": "4.2.1", "jest": "^29.5", @@ -39,11 +41,11 @@ }, "dependencies": { "@aws-lambda-powertools/logger": "^1.6.0", - "@aws-sdk/client-ssm": "^3.296.0", + "@aws-sdk/client-ec2": "^3.303.0", + "@aws-sdk/client-ssm": "^3.303.0", "@octokit/auth-app": "4.0.9", "@octokit/rest": "^19.0.7", "@octokit/types": "^9.0.0", - "aws-sdk": "^2.1340.0", "cron-parser": "^4.7.1", "typescript": "^4.9.4" } diff --git a/modules/runners/lambdas/runners/src/aws/runners.d.ts b/modules/runners/lambdas/runners/src/aws/runners.d.ts new file mode 100644 index 0000000000..63c50b4327 --- /dev/null +++ b/modules/runners/lambdas/runners/src/aws/runners.d.ts @@ -0,0 +1,44 @@ +import { DefaultTargetCapacityType, SpotAllocationStrategy } from '@aws-sdk/client-ec2'; + +export type RunnerType = 'Org' | 'Repo'; + +export interface RunnerList { + instanceId: string; + launchTime?: Date; + owner?: string; + type?: string; + repo?: string; + org?: string; +} + +export interface RunnerInfo { + instanceId: string; + launchTime?: Date; + owner: string; + type: string; +} + +export interface ListRunnerFilters { + runnerType?: RunnerType; + runnerOwner?: string; + environment?: string; + statuses?: string[]; +} + +export interface RunnerInputParameters { + runnerServiceConfig: string[]; + environment: string; + runnerType: RunnerType; + runnerOwner: string; + ssmTokenPath: string; + subnets: string[]; + launchTemplateName: string; + ec2instanceCriteria: { + instanceTypes: string[]; + targetCapacityType: DefaultTargetCapacityType; + maxSpotPrice?: string; + instanceAllocationStrategy: SpotAllocationStrategy; + }; + numberOfRunners?: number; + amiIdSsmParameterName?: string; +} diff --git a/modules/runners/lambdas/runners/src/aws/runners.test.ts b/modules/runners/lambdas/runners/src/aws/runners.test.ts index fd234789e6..d1e2535fba 100644 --- a/modules/runners/lambdas/runners/src/aws/runners.test.ts +++ b/modules/runners/lambdas/runners/src/aws/runners.test.ts @@ -1,15 +1,25 @@ -import { EC2 } from 'aws-sdk'; -import { performance } from 'perf_hooks'; +import { + CreateFleetCommand, + CreateFleetCommandInput, + CreateFleetResult, + DefaultTargetCapacityType, + DescribeInstancesCommand, + DescribeInstancesResult, + EC2Client, + SpotAllocationStrategy, + TerminateInstancesCommand, +} from '@aws-sdk/client-ec2'; +import { GetParameterCommand, GetParameterResult, PutParameterCommand, SSMClient } from '@aws-sdk/client-ssm'; +import { mockClient } from 'aws-sdk-client-mock'; +import 'aws-sdk-client-mock-jest'; import ScaleError from './../scale-runners/ScaleError'; -import { RunnerInfo, RunnerInputParameters, createRunner, listEC2Runners, terminateRunner } from './runners'; +import { createRunner, listEC2Runners, terminateRunner } from './runners'; +import { RunnerInfo, RunnerInputParameters, RunnerType } from './runners.d'; -const mockEC2 = { describeInstances: jest.fn(), createFleet: jest.fn(), terminateInstances: jest.fn() }; -const mockSSM = { putParameter: jest.fn(), getParameter: jest.fn() }; -jest.mock('aws-sdk', () => ({ - EC2: jest.fn().mockImplementation(() => mockEC2), - SSM: jest.fn().mockImplementation(() => mockSSM), -})); +process.env.AWS_REGION = 'eu-east-1'; +const mockEC2Client = mockClient(EC2Client); +const mockSSMClient = mockClient(SSMClient); const LAUNCH_TEMPLATE = 'lt-1'; const ORG_NAME = 'SomeAwesomeCoder'; @@ -17,10 +27,11 @@ const REPO_NAME = `${ORG_NAME}/some-amazing-library`; const ENVIRONMENT = 'unit-test-environment'; const SSM_TOKEN_PATH = '/github-action-runners/default/runners/tokens'; const RUNNER_NAME_PREFIX = ''; +const RUNNER_TYPES: RunnerType[] = ['Repo', 'Org']; -const mockDescribeInstances = { promise: jest.fn() }; -mockEC2.describeInstances.mockImplementation(() => mockDescribeInstances); -const mockRunningInstances: AWS.EC2.DescribeInstancesResult = { +mockEC2Client.on(DescribeInstancesCommand).resolves({}); + +const mockRunningInstances: DescribeInstancesResult = { Reservations: [ { Instances: [ @@ -47,7 +58,8 @@ describe('list instances', () => { }); it('returns a list of instances', async () => { - mockDescribeInstances.promise.mockReturnValue(mockRunningInstances); + mockEC2Client.on(DescribeInstancesCommand).resolves(mockRunningInstances); + // mockDescribeInstances.promise.mockReturnValue(mockRunningInstances); const resp = await listEC2Runners(); expect(resp.length).toBe(1); expect(resp).toContainEqual({ @@ -59,15 +71,15 @@ describe('list instances', () => { }); it('calls EC2 describe instances', async () => { - mockDescribeInstances.promise.mockReturnValueOnce(mockRunningInstances); + mockEC2Client.on(DescribeInstancesCommand).resolves(mockRunningInstances); await listEC2Runners(); - expect(mockEC2.describeInstances).toBeCalled(); + expect(mockEC2Client).toHaveReceivedCommand(DescribeInstancesCommand); }); it('filters instances on repo name', async () => { - mockDescribeInstances.promise.mockReturnValueOnce(mockRunningInstances); + mockEC2Client.on(DescribeInstancesCommand).resolves(mockRunningInstances); await listEC2Runners({ runnerType: 'Repo', runnerOwner: REPO_NAME, environment: undefined }); - expect(mockEC2.describeInstances).toBeCalledWith({ + expect(mockEC2Client).toHaveReceivedCommandWith(DescribeInstancesCommand, { Filters: [ { Name: 'instance-state-name', Values: ['running', 'pending'] }, { Name: 'tag:Type', Values: ['Repo'] }, @@ -78,9 +90,9 @@ describe('list instances', () => { }); it('filters instances on org name', async () => { - mockDescribeInstances.promise.mockReturnValueOnce(mockRunningInstances); + mockEC2Client.on(DescribeInstancesCommand).resolves(mockRunningInstances); await listEC2Runners({ runnerType: 'Org', runnerOwner: ORG_NAME, environment: undefined }); - expect(mockEC2.describeInstances).toBeCalledWith({ + expect(mockEC2Client).toHaveReceivedCommandWith(DescribeInstancesCommand, { Filters: [ { Name: 'instance-state-name', Values: ['running', 'pending'] }, { Name: 'tag:Type', Values: ['Org'] }, @@ -91,9 +103,9 @@ describe('list instances', () => { }); it('filters instances on environment', async () => { - mockDescribeInstances.promise.mockReturnValueOnce(mockRunningInstances); + mockEC2Client.on(DescribeInstancesCommand).resolves(mockRunningInstances); await listEC2Runners({ environment: ENVIRONMENT }); - expect(mockEC2.describeInstances).toBeCalledWith({ + expect(mockEC2Client).toHaveReceivedCommandWith(DescribeInstancesCommand, { Filters: [ { Name: 'instance-state-name', Values: ['running', 'pending'] }, { Name: 'tag:ghr:environment', Values: [ENVIRONMENT] }, @@ -103,29 +115,16 @@ describe('list instances', () => { }); it('No instances, undefined reservations list.', async () => { - const noInstances: AWS.EC2.DescribeInstancesResult = { + const noInstances: DescribeInstancesResult = { Reservations: undefined, }; - mockDescribeInstances.promise.mockReturnValue(noInstances); - const resp = await listEC2Runners(); - expect(resp.length).toBe(0); - }); - - it('No instances, undefined instance list.', async () => { - const noInstances: AWS.EC2.DescribeInstancesResult = { - Reservations: [ - { - Instances: undefined, - }, - ], - }; - mockDescribeInstances.promise.mockReturnValueOnce(noInstances); + mockEC2Client.on(DescribeInstancesCommand).resolves(noInstances); const resp = await listEC2Runners(); expect(resp.length).toBe(0); }); it('Instances with no tags.', async () => { - const noInstances: AWS.EC2.DescribeInstancesResult = { + const noInstances: DescribeInstancesResult = { Reservations: [ { Instances: [ @@ -138,20 +137,18 @@ describe('list instances', () => { }, ], }; - mockDescribeInstances.promise.mockReturnValueOnce(noInstances); + mockEC2Client.on(DescribeInstancesCommand).resolves(noInstances); const resp = await listEC2Runners(); expect(resp.length).toBe(1); }); }); describe('terminate runner', () => { - const mockTerminateInstances = { promise: jest.fn() }; beforeEach(() => { jest.clearAllMocks(); - mockEC2.terminateInstances.mockImplementation(() => mockTerminateInstances); - mockTerminateInstances.promise.mockReturnThis(); }); it('calls terminate instances with the right instance ids', async () => { + mockEC2Client.on(TerminateInstancesCommand).resolves({}); const runner: RunnerInfo = { instanceId: 'instance-2', owner: 'owner-2', @@ -159,62 +156,58 @@ describe('terminate runner', () => { }; await terminateRunner(runner.instanceId); - expect(mockEC2.terminateInstances).toBeCalledWith({ InstanceIds: [runner.instanceId] }); + expect(mockEC2Client).toHaveReceivedCommandWith(TerminateInstancesCommand, { InstanceIds: [runner.instanceId] }); }); }); describe('create runner', () => { - const mockCreateFleet = { promise: jest.fn() }; - const mockPutParameter = { promise: jest.fn() }; - const mockGetParameter = { promise: jest.fn() }; - const defaultRunnerConfig: RunnerConfig = { - allocationStrategy: 'capacity-optimized', + allocationStrategy: SpotAllocationStrategy.CAPACITY_OPTIMIZED, capacityType: 'spot', type: 'Org', }; + const defaultExpectedFleetRequestValues: ExpectedFleetRequestValues = { type: 'Org', capacityType: 'spot', - allocationStrategy: 'capacity-optimized', + allocationStrategy: SpotAllocationStrategy.CAPACITY_OPTIMIZED, totalTargetCapacity: 1, }; beforeEach(() => { jest.clearAllMocks(); + mockEC2Client.reset(); + mockSSMClient.reset(); - mockEC2.createFleet.mockImplementation(() => mockCreateFleet); - - mockCreateFleet.promise.mockReturnValue({ - Instances: [{ InstanceIds: ['i-1234'] }], - }); - mockSSM.putParameter.mockImplementation(() => mockPutParameter); - - mockSSM.getParameter.mockImplementation(() => mockGetParameter); + //mockEC2.createFleet.mockImplementation(() => mockCreateFleet); + mockEC2Client.on(CreateFleetCommand).resolves({ Instances: [{ InstanceIds: ['i-1234'] }] }); + mockSSMClient.on(PutParameterCommand).resolves({}); + mockSSMClient.on(GetParameterCommand).resolves({}); }); - it('calls create fleet of 1 instance with the correct config for repo', async () => { - await createRunner(createRunnerConfig({ ...defaultRunnerConfig, type: 'Repo' })); - expect(mockEC2.createFleet).toBeCalledWith( - expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, type: 'Repo' }), - ); - expect(mockSSM.putParameter).toBeCalledTimes(1); + it.each(RUNNER_TYPES)('calls create fleet of 1 instance with the default config for %p', async (type: RunnerType) => { + await createRunner(createRunnerConfig({ ...defaultRunnerConfig, type: type })); + + expect(mockEC2Client).toHaveReceivedCommandWith(CreateFleetCommand, { + ...expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, type: type }), + }); + expect(mockSSMClient).toHaveReceivedCommandTimes(PutParameterCommand, 1); }); it('calls create fleet of 2 instances with the correct config for org ', async () => { const instances = [{ InstanceIds: ['i-1234', 'i-5678'] }]; - mockCreateFleet.promise.mockReturnValue({ - Instances: instances, - }); + + mockEC2Client.on(CreateFleetCommand).resolves({ Instances: instances }); await createRunner({ ...createRunnerConfig(defaultRunnerConfig), numberOfRunners: 2 }); - expect(mockEC2.createFleet).toBeCalledWith( - expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, totalTargetCapacity: 2 }), - ); - expect(mockSSM.putParameter).toBeCalledTimes(2); + expect(mockEC2Client).toHaveReceivedCommandWith(CreateFleetCommand, { + ...expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, totalTargetCapacity: 2 }), + }); + expect(mockSSMClient).toHaveReceivedCommandTimes(PutParameterCommand, 2); + for (const instance of instances[0].InstanceIds) { - expect(mockSSM.putParameter).toBeCalledWith({ + expect(mockSSMClient).toHaveReceivedCommandWith(PutParameterCommand, { Name: `${SSM_TOKEN_PATH}/${instance}`, Type: 'SecureString', Value: '--token foo --url http://github.com', @@ -222,12 +215,6 @@ describe('create runner', () => { } }); - it('calls create fleet of 1 instance with the correct config for org', async () => { - await createRunner(createRunnerConfig(defaultRunnerConfig)); - expect(mockEC2.createFleet).toBeCalledWith(expectedCreateFleetRequest(defaultExpectedFleetRequestValues)); - expect(mockSSM.putParameter).toBeCalledTimes(1); - }); - it('calls create fleet of 40 instances (ssm rate limit condition) to test time delay ', async () => { const startTime = performance.now(); const instances = [ @@ -276,20 +263,19 @@ describe('create runner', () => { ], }, ]; - mockCreateFleet.promise.mockReturnValue({ - Instances: instances, - }); + mockEC2Client.on(CreateFleetCommand).resolves({ Instances: instances }); await createRunner({ ...createRunnerConfig(defaultRunnerConfig), numberOfRunners: 40 }); const endTime = performance.now(); expect(endTime - startTime).toBeGreaterThan(1000); - expect(mockEC2.createFleet).toBeCalledWith( + expect(mockEC2Client).toHaveReceivedCommandWith( + CreateFleetCommand, expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, totalTargetCapacity: 40 }), ); - expect(mockSSM.putParameter).toBeCalledTimes(40); + expect(mockSSMClient).toHaveReceivedCommandTimes(PutParameterCommand, 40); for (const instance of instances[0].InstanceIds) { - expect(mockSSM.putParameter).toBeCalledWith({ + expect(mockSSMClient).toHaveReceivedCommandWith(PutParameterCommand, { Name: `${SSM_TOKEN_PATH}/${instance}`, Type: 'SecureString', Value: '--token foo --url http://github.com', @@ -299,47 +285,45 @@ describe('create runner', () => { it('calls create fleet of 1 instance with the on-demand capacity', async () => { await createRunner(createRunnerConfig({ ...defaultRunnerConfig, capacityType: 'on-demand' })); - expect(mockEC2.createFleet).toBeCalledWith( - expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, capacityType: 'on-demand' }), - ); - expect(mockSSM.putParameter).toBeCalledTimes(1); + expect(mockEC2Client).toHaveReceivedCommandWith(CreateFleetCommand, { + ...expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, capacityType: 'on-demand' }), + }); + expect(mockSSMClient).toHaveReceivedCommandTimes(PutParameterCommand, 1); }); it('calls run instances with the on-demand capacity', async () => { await createRunner(createRunnerConfig({ ...defaultRunnerConfig, maxSpotPrice: '0.1' })); - expect(mockEC2.createFleet).toBeCalledWith( - expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, maxSpotPrice: '0.1' }), - ); + expect(mockEC2Client).toHaveReceivedCommandWith(CreateFleetCommand, { + ...expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, maxSpotPrice: '0.1' }), + }); }); it('creates ssm parameters for each created instance', async () => { await createRunner(createRunnerConfig(defaultRunnerConfig)); - expect(mockSSM.putParameter).toBeCalledWith({ + expect(mockSSMClient).toHaveReceivedCommandWith(PutParameterCommand, { Name: `${SSM_TOKEN_PATH}/i-1234`, - Value: '--token foo --url http://github.com', Type: 'SecureString', + Value: '--token foo --url http://github.com', }); }); it('does not create ssm parameters when no instance is created', async () => { - mockCreateFleet.promise.mockReturnValue({ - Instances: [], - }); + mockEC2Client.on(CreateFleetCommand).resolves({ Instances: [] }); await expect(createRunner(createRunnerConfig(defaultRunnerConfig))).rejects.toThrowError(Error); - expect(mockSSM.putParameter).not.toBeCalled(); + expect(mockSSMClient).not.toHaveReceivedCommand(PutParameterCommand); }); it('uses ami id from ssm parameter when ami id ssm param is specified', async () => { - const paramValue: AWS.SSM.GetParameterResult = { + const paramValue: GetParameterResult = { Parameter: { Value: 'ami-123', }, }; - mockGetParameter.promise.mockReturnValue(paramValue); + mockSSMClient.on(GetParameterCommand).resolves(paramValue); await createRunner(createRunnerConfig({ ...defaultRunnerConfig, amiIdSsmParameterName: 'my-ami-id-param' })); const expectedRequest = expectedCreateFleetRequest({ ...defaultExpectedFleetRequestValues, imageId: 'ami-123' }); - expect(mockEC2.createFleet).toBeCalledWith(expectedRequest); - expect(mockSSM.getParameter).toBeCalledWith({ + expect(mockEC2Client).toHaveReceivedCommandWith(CreateFleetCommand, expectedRequest); + expect(mockSSMClient).toHaveReceivedCommandWith(GetParameterCommand, { Name: 'my-ami-id-param', }); }); @@ -347,93 +331,94 @@ describe('create runner', () => { describe('create runner with errors', () => { const defaultRunnerConfig: RunnerConfig = { - allocationStrategy: 'capacity-optimized', + allocationStrategy: SpotAllocationStrategy.CAPACITY_OPTIMIZED, capacityType: 'spot', type: 'Repo', }; const defaultExpectedFleetRequestValues: ExpectedFleetRequestValues = { type: 'Repo', capacityType: 'spot', - allocationStrategy: 'capacity-optimized', + allocationStrategy: SpotAllocationStrategy.CAPACITY_OPTIMIZED, totalTargetCapacity: 1, }; beforeEach(() => { jest.clearAllMocks(); + mockEC2Client.reset(); + mockSSMClient.reset(); - const mockPutParameter = { promise: jest.fn() }; - - mockSSM.putParameter.mockImplementation(() => mockPutParameter); - - const mockGetParameter = { promise: jest.fn() }; - - mockSSM.getParameter.mockImplementation(() => mockGetParameter); + mockSSMClient.on(PutParameterCommand).resolves({}); + mockSSMClient.on(GetParameterCommand).resolves({}); + mockEC2Client.on(CreateFleetCommand).resolves({ Instances: [] }); }); it('test ScaleError with one error.', async () => { createFleetMockWithErrors(['UnfulfillableCapacity']); await expect(createRunner(createRunnerConfig(defaultRunnerConfig))).rejects.toBeInstanceOf(ScaleError); - expect(mockEC2.createFleet).toBeCalledWith(expectedCreateFleetRequest(defaultExpectedFleetRequestValues)); - expect(mockSSM.putParameter).not.toBeCalled(); + expect(mockEC2Client).toHaveReceivedCommandWith( + CreateFleetCommand, + expectedCreateFleetRequest(defaultExpectedFleetRequestValues), + ); + expect(mockSSMClient).not.toHaveReceivedCommand(PutParameterCommand); }); it('test ScaleError with multiple error.', async () => { createFleetMockWithErrors(['UnfulfillableCapacity', 'SomeError']); await expect(createRunner(createRunnerConfig(defaultRunnerConfig))).rejects.toBeInstanceOf(ScaleError); - expect(mockEC2.createFleet).toBeCalledWith(expectedCreateFleetRequest(defaultExpectedFleetRequestValues)); - expect(mockSSM.putParameter).not.toBeCalled(); + expect(mockEC2Client).toHaveReceivedCommandWith( + CreateFleetCommand, + expectedCreateFleetRequest(defaultExpectedFleetRequestValues), + ); + expect(mockSSMClient).not.toHaveReceivedCommand(PutParameterCommand); }); it('test default Error', async () => { createFleetMockWithErrors(['NonMappedError']); await expect(createRunner(createRunnerConfig(defaultRunnerConfig))).rejects.toBeInstanceOf(Error); - expect(mockEC2.createFleet).toBeCalledWith(expectedCreateFleetRequest(defaultExpectedFleetRequestValues)); - expect(mockSSM.putParameter).not.toBeCalled(); + expect(mockEC2Client).toHaveReceivedCommandWith( + CreateFleetCommand, + expectedCreateFleetRequest(defaultExpectedFleetRequestValues), + ); + expect(mockSSMClient).not.toHaveReceivedCommand(PutParameterCommand); }); it('test now error is thrown if an instance is created', async () => { createFleetMockWithErrors(['NonMappedError'], ['i-123']); expect(await createRunner(createRunnerConfig(defaultRunnerConfig))).resolves; - expect(mockEC2.createFleet).toBeCalledWith(expectedCreateFleetRequest(defaultExpectedFleetRequestValues)); - expect(mockSSM.putParameter).toBeCalled(); + expect(mockEC2Client).toHaveReceivedCommandWith( + CreateFleetCommand, + expectedCreateFleetRequest(defaultExpectedFleetRequestValues), + ); + expect(mockSSMClient).toHaveReceivedCommand(PutParameterCommand); }); it('test error by create fleet call is thrown.', async () => { - mockEC2.createFleet.mockImplementation(() => { - return { - promise: jest.fn().mockImplementation(() => { - throw Error(''); - }), - }; - }); + mockEC2Client.on(CreateFleetCommand).rejects(new Error('Some error')); await expect(createRunner(createRunnerConfig(defaultRunnerConfig))).rejects.toBeInstanceOf(Error); - expect(mockEC2.createFleet).toBeCalledWith(expectedCreateFleetRequest(defaultExpectedFleetRequestValues)); - expect(mockSSM.putParameter).not.toBeCalled(); + expect(mockEC2Client).toHaveReceivedCommandWith( + CreateFleetCommand, + expectedCreateFleetRequest(defaultExpectedFleetRequestValues), + ); + expect(mockSSMClient).not.toHaveReceivedCommand(PutParameterCommand); }); it('test error in ami id lookup from ssm parameter', async () => { - mockSSM.getParameter.mockImplementation(() => { - return { - promise: jest.fn().mockImplementation(() => { - throw Error('Wow, such transient'); - }), - }; - }); + mockSSMClient.on(GetParameterCommand).rejects(new Error('Some error')); await expect( createRunner(createRunnerConfig({ ...defaultRunnerConfig, amiIdSsmParameterName: 'my-ami-id-param' })), ).rejects.toBeInstanceOf(Error); - expect(mockEC2.createFleet).not.toBeCalled(); - expect(mockSSM.putParameter).not.toBeCalled(); + expect(mockEC2Client).not.toHaveReceivedCommand(CreateFleetCommand); + expect(mockSSMClient).not.toHaveReceivedCommand(PutParameterCommand); }); }); function createFleetMockWithErrors(errors: string[], instances?: string[]) { - let result: AWS.EC2.CreateFleetResult = { + let result: CreateFleetResult = { Errors: errors.map((e) => ({ ErrorCode: e })), }; @@ -448,15 +433,13 @@ function createFleetMockWithErrors(errors: string[], instances?: string[]) { }; } - mockEC2.createFleet.mockImplementation(() => { - return { promise: jest.fn().mockReturnValue(result) }; - }); + mockEC2Client.on(CreateFleetCommand).resolves(result); } interface RunnerConfig { - type: 'Repo' | 'Org'; - capacityType: EC2.DefaultTargetCapacityType; - allocationStrategy: EC2.AllocationStrategy; + type: RunnerType; + capacityType: DefaultTargetCapacityType; + allocationStrategy: SpotAllocationStrategy; maxSpotPrice?: string; amiIdSsmParameterName?: string; } @@ -482,15 +465,15 @@ function createRunnerConfig(runnerConfig: RunnerConfig): RunnerInputParameters { interface ExpectedFleetRequestValues { type: 'Repo' | 'Org'; - capacityType: EC2.DefaultTargetCapacityType; - allocationStrategy: EC2.AllocationStrategy; + capacityType: DefaultTargetCapacityType; + allocationStrategy: SpotAllocationStrategy; maxSpotPrice?: string; totalTargetCapacity: number; imageId?: string; } -function expectedCreateFleetRequest(expectedValues: ExpectedFleetRequestValues): AWS.EC2.CreateFleetRequest { - const request: AWS.EC2.CreateFleetRequest = { +function expectedCreateFleetRequest(expectedValues: ExpectedFleetRequestValues): CreateFleetCommandInput { + const request: CreateFleetCommandInput = { LaunchTemplateConfigs: [ { LaunchTemplateSpecification: { @@ -540,7 +523,7 @@ function expectedCreateFleetRequest(expectedValues: ExpectedFleetRequestValues): }; if (expectedValues.imageId) { - for (const config of request.LaunchTemplateConfigs) { + for (const config of request?.LaunchTemplateConfigs || []) { if (config.Overrides) { for (const override of config.Overrides) { override.ImageId = expectedValues.imageId; diff --git a/modules/runners/lambdas/runners/src/aws/runners.ts b/modules/runners/lambdas/runners/src/aws/runners.ts index 7656abc04f..349cf88328 100644 --- a/modules/runners/lambdas/runners/src/aws/runners.ts +++ b/modules/runners/lambdas/runners/src/aws/runners.ts @@ -1,67 +1,38 @@ -import { EC2, SSM } from 'aws-sdk'; +import { + CreateFleetCommand, + CreateFleetResult, + DescribeInstancesCommand, + DescribeInstancesResult, + EC2Client, + FleetLaunchTemplateOverridesRequest, + TerminateInstancesCommand, +} from '@aws-sdk/client-ec2'; +import { SSM } from '@aws-sdk/client-ssm'; import moment from 'moment'; import { createChildLogger } from '../logger'; import ScaleError from './../scale-runners/ScaleError'; +import * as Runners from './runners.d'; const logger = createChildLogger('runners'); -export interface RunnerList { - instanceId: string; - launchTime?: Date; - owner?: string; - type?: string; - repo?: string; - org?: string; -} - -export interface RunnerInfo { - instanceId: string; - launchTime?: Date; - owner: string; - type: string; -} - -export interface ListRunnerFilters { - runnerType?: 'Org' | 'Repo'; - runnerOwner?: string; - environment?: string; - statuses?: string[]; -} - -export interface RunnerInputParameters { - runnerServiceConfig: string[]; - environment: string; - runnerType: 'Org' | 'Repo'; - runnerOwner: string; - ssmTokenPath: string; - subnets: string[]; - launchTemplateName: string; - ec2instanceCriteria: { - instanceTypes: string[]; - targetCapacityType: EC2.DefaultTargetCapacityType; - maxSpotPrice?: string; - instanceAllocationStrategy: EC2.SpotAllocationStrategy; - }; - numberOfRunners?: number; - amiIdSsmParameterName?: string; -} - interface Ec2Filter { Name: string; Values: string[]; } -export async function listEC2Runners(filters: ListRunnerFilters | undefined = undefined): Promise { +export async function listEC2Runners( + filters: Runners.ListRunnerFilters | undefined = undefined, +): Promise { const ec2Filters = constructFilters(filters); - const runners: RunnerList[] = []; + const runners: Runners.RunnerList[] = []; for (const filter of ec2Filters) { runners.push(...(await getRunners(filter))); } return runners; } -function constructFilters(filters?: ListRunnerFilters): Ec2Filter[][] { +function constructFilters(filters?: Runners.ListRunnerFilters): Ec2Filter[][] { const ec2Statuses = filters?.statuses ? filters.statuses : ['running', 'pending']; const ec2Filters: Ec2Filter[][] = []; const ec2FiltersBase = [{ Name: 'instance-state-name', Values: ec2Statuses }]; @@ -83,24 +54,24 @@ function constructFilters(filters?: ListRunnerFilters): Ec2Filter[][] { return ec2Filters; } -async function getRunners(ec2Filters: Ec2Filter[]): Promise { - const ec2 = new EC2(); - const runners: RunnerList[] = []; +async function getRunners(ec2Filters: Ec2Filter[]): Promise { + const ec2 = new EC2Client({ region: process.env.AWS_REGION }); + const runners: Runners.RunnerList[] = []; let nextToken; let hasNext = true; while (hasNext) { - const runningInstances: EC2.DescribeInstancesResult = await ec2 - .describeInstances({ Filters: ec2Filters, NextToken: nextToken }) - .promise(); - hasNext = runningInstances.NextToken ? true : false; - nextToken = runningInstances.NextToken; - runners.push(...getRunnerInfo(runningInstances)); + const instances: DescribeInstancesResult = await ec2.send( + new DescribeInstancesCommand({ Filters: ec2Filters, NextToken: nextToken }), + ); + hasNext = instances.NextToken ? true : false; + nextToken = instances.NextToken; + runners.push(...getRunnerInfo(instances)); } return runners; } -function getRunnerInfo(runningInstances: EC2.DescribeInstancesResult) { - const runners: RunnerList[] = []; +function getRunnerInfo(runningInstances: DescribeInstancesResult) { + const runners: Runners.RunnerList[] = []; if (runningInstances.Reservations) { for (const r of runningInstances.Reservations) { if (r.Instances) { @@ -121,12 +92,8 @@ function getRunnerInfo(runningInstances: EC2.DescribeInstancesResult) { } export async function terminateRunner(instanceId: string): Promise { - const ec2 = new EC2(); - await ec2 - .terminateInstances({ - InstanceIds: [instanceId], - }) - .promise(); + const ec2 = new EC2Client({ region: process.env.AWS_REGION }); + await ec2.send(new TerminateInstancesCommand({ InstanceIds: [instanceId] })); logger.info(`Runner ${instanceId} has been terminated.`); } @@ -134,22 +101,15 @@ function generateFleetOverrides( subnetIds: string[], instancesTypes: string[], amiId?: string, -): EC2.FleetLaunchTemplateOverridesListRequest { - type Override = { - SubnetId: string; - InstanceType: string; - ImageId?: string; - }; - const result: EC2.FleetLaunchTemplateOverridesListRequest = []; +): FleetLaunchTemplateOverridesRequest[] { + const result: FleetLaunchTemplateOverridesRequest[] = []; subnetIds.forEach((s) => { instancesTypes.forEach((i) => { - const item: Override = { + const item: FleetLaunchTemplateOverridesRequest = { SubnetId: s, InstanceType: i, + ImageId: amiId, }; - if (amiId) { - item.ImageId = amiId; - } result.push(item); }); }); @@ -168,7 +128,7 @@ function removeTokenForLogging(config: string[]): string[] { return result; } -export async function createRunner(runnerParameters: RunnerInputParameters): Promise { +export async function createRunner(runnerParameters: Runners.RunnerInputParameters): Promise { logger.debug('Runner configuration.', { runner: { configuration: { @@ -178,18 +138,15 @@ export async function createRunner(runnerParameters: RunnerInputParameters): Pro }, }); - const ec2 = new EC2(); - const ssm = new SSM(); + const ec2Clinnt = new EC2Client({ region: process.env.AWS_REGION }); + const ssmClient = new SSM({ region: process.env.AWS_REGION }); let amiIdOverride = undefined; if (runnerParameters.amiIdSsmParameterName) { - logger.debug(`Looking up runner AMI ID from SSM parameter: ${runnerParameters.amiIdSsmParameterName}`); try { - const result: AWS.SSM.GetParameterResult = await ssm - .getParameter({ Name: runnerParameters.amiIdSsmParameterName }) - .promise(); - amiIdOverride = result.Parameter?.Value; + amiIdOverride = (await ssmClient.getParameter({ Name: runnerParameters.amiIdSsmParameterName })).Parameter?.Value; + logger.debug(`AMI override SSM parameter (${runnerParameters.amiIdSsmParameterName}) set to: ${amiIdOverride}`); } catch (e) { logger.error( `Failed to lookup runner AMI ID from SSM parameter: ${runnerParameters.amiIdSsmParameterName}. ` + @@ -202,46 +159,45 @@ export async function createRunner(runnerParameters: RunnerInputParameters): Pro const numberOfRunners = runnerParameters.numberOfRunners ? runnerParameters.numberOfRunners : 1; - let fleet: AWS.EC2.CreateFleetResult; + let fleet: CreateFleetResult; try { // see for spec https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html - fleet = await ec2 - .createFleet({ - LaunchTemplateConfigs: [ - { - LaunchTemplateSpecification: { - LaunchTemplateName: runnerParameters.launchTemplateName, - Version: '$Default', - }, - Overrides: generateFleetOverrides( - runnerParameters.subnets, - runnerParameters.ec2instanceCriteria.instanceTypes, - amiIdOverride, - ), + const createFleetCommand = new CreateFleetCommand({ + LaunchTemplateConfigs: [ + { + LaunchTemplateSpecification: { + LaunchTemplateName: runnerParameters.launchTemplateName, + Version: '$Default', }, - ], - SpotOptions: { - MaxTotalPrice: runnerParameters.ec2instanceCriteria.maxSpotPrice, - AllocationStrategy: runnerParameters.ec2instanceCriteria.instanceAllocationStrategy, + Overrides: generateFleetOverrides( + runnerParameters.subnets, + runnerParameters.ec2instanceCriteria.instanceTypes, + amiIdOverride, + ), }, - TargetCapacitySpecification: { - TotalTargetCapacity: numberOfRunners, - DefaultTargetCapacityType: runnerParameters.ec2instanceCriteria.targetCapacityType, + ], + SpotOptions: { + MaxTotalPrice: runnerParameters.ec2instanceCriteria.maxSpotPrice, + AllocationStrategy: runnerParameters.ec2instanceCriteria.instanceAllocationStrategy, + }, + TargetCapacitySpecification: { + TotalTargetCapacity: numberOfRunners, + DefaultTargetCapacityType: runnerParameters.ec2instanceCriteria.targetCapacityType, + }, + TagSpecifications: [ + { + ResourceType: 'instance', + Tags: [ + { Key: 'ghr:Application', Value: 'github-action-runner' }, + { Key: 'ghr:created_by', Value: numberOfRunners === 1 ? 'scale-up-lambda' : 'pool-lambda' }, + { Key: 'Type', Value: runnerParameters.runnerType }, + { Key: 'Owner', Value: runnerParameters.runnerOwner }, + ], }, - TagSpecifications: [ - { - ResourceType: 'instance', - Tags: [ - { Key: 'ghr:Application', Value: 'github-action-runner' }, - { Key: 'ghr:created_by', Value: numberOfRunners === 1 ? 'scale-up-lambda' : 'pool-lambda' }, - { Key: 'Type', Value: runnerParameters.runnerType }, - { Key: 'Owner', Value: runnerParameters.runnerOwner }, - ], - }, - ], - Type: 'instant', - }) - .promise(); + ], + Type: 'instant', + }); + fleet = await ec2Clinnt.send(createFleetCommand); } catch (e) { logger.warn('Create fleet request failed.', { error: e as Error }); throw e; @@ -283,13 +239,11 @@ export async function createRunner(runnerParameters: RunnerInputParameters): Pro const isDelay = instances.length >= ssmParameterStoreMaxThroughput ? true : false; for (const instance of instances) { - await ssm - .putParameter({ - Name: `${runnerParameters.ssmTokenPath}/${instance}`, - Value: runnerParameters.runnerServiceConfig.join(' '), - Type: 'SecureString', - }) - .promise(); + await ssmClient.putParameter({ + Name: `${runnerParameters.ssmTokenPath}/${instance}`, + Value: runnerParameters.runnerServiceConfig.join(' '), + Type: 'SecureString', + }); if (isDelay) { // Delay to prevent AWS ssm rate limits by being within the max throughput limit diff --git a/modules/runners/lambdas/runners/src/scale-runners/scale-down.test.ts b/modules/runners/lambdas/runners/src/scale-runners/scale-down.test.ts index 9caea3f849..9f82aaa62d 100644 --- a/modules/runners/lambdas/runners/src/scale-runners/scale-down.test.ts +++ b/modules/runners/lambdas/runners/src/scale-runners/scale-down.test.ts @@ -3,8 +3,9 @@ import { mocked } from 'jest-mock'; import moment from 'moment'; import nock from 'nock'; +import { RunnerInfo, RunnerList } from '../aws/runners.d'; import * as ghAuth from '../gh-auth/gh-auth'; -import { RunnerInfo, RunnerList, listEC2Runners, terminateRunner } from './../aws/runners'; +import { listEC2Runners, terminateRunner } from './../aws/runners'; import { githubCache } from './cache'; import { scaleDown } from './scale-down'; diff --git a/modules/runners/lambdas/runners/src/scale-runners/scale-down.ts b/modules/runners/lambdas/runners/src/scale-runners/scale-down.ts index 109fe302d0..ef351bc47f 100644 --- a/modules/runners/lambdas/runners/src/scale-runners/scale-down.ts +++ b/modules/runners/lambdas/runners/src/scale-runners/scale-down.ts @@ -3,7 +3,8 @@ import moment from 'moment'; import { createGithubAppAuth, createGithubInstallationAuth, createOctoClient } from '../gh-auth/gh-auth'; import { createChildLogger } from '../logger'; -import { RunnerInfo, RunnerList, bootTimeExceeded, listEC2Runners, terminateRunner } from './../aws/runners'; +import { bootTimeExceeded, listEC2Runners, terminateRunner } from './../aws/runners'; +import { RunnerInfo, RunnerList } from './../aws/runners.d'; import { GhRunners, githubCache } from './cache'; import { ScalingDownConfig, getIdleRunnerCount } from './scale-down-config'; diff --git a/modules/runners/lambdas/runners/src/scale-runners/scale-up.test.ts b/modules/runners/lambdas/runners/src/scale-runners/scale-up.test.ts index 73c3eed508..5a3ea531e5 100644 --- a/modules/runners/lambdas/runners/src/scale-runners/scale-up.test.ts +++ b/modules/runners/lambdas/runners/src/scale-runners/scale-up.test.ts @@ -3,7 +3,8 @@ import { mocked } from 'jest-mock'; import nock from 'nock'; import * as ghAuth from '../gh-auth/gh-auth'; -import { RunnerInputParameters, createRunner, listEC2Runners } from './../aws/runners'; +import { createRunner, listEC2Runners } from './../aws/runners'; +import { RunnerInputParameters } from './../aws/runners.d'; import ScaleError from './ScaleError'; import * as scaleUpModule from './scale-up'; diff --git a/modules/runners/lambdas/runners/src/scale-runners/scale-up.ts b/modules/runners/lambdas/runners/src/scale-runners/scale-up.ts index dc1108d6a8..62714ad80e 100644 --- a/modules/runners/lambdas/runners/src/scale-runners/scale-up.ts +++ b/modules/runners/lambdas/runners/src/scale-runners/scale-up.ts @@ -3,7 +3,8 @@ import yn from 'yn'; import { createGithubAppAuth, createGithubInstallationAuth, createOctoClient } from '../gh-auth/gh-auth'; import { addPersistentContextToChildLogger, createChildLogger } from '../logger'; -import { RunnerInputParameters, createRunner, listEC2Runners } from './../aws/runners'; +import { createRunner, listEC2Runners } from './../aws/runners'; +import { RunnerInputParameters } from './../aws/runners.d'; import ScaleError from './ScaleError'; const logger = createChildLogger('scale-up'); diff --git a/modules/runners/lambdas/runners/yarn.lock b/modules/runners/lambdas/runners/yarn.lock index 30cb46dfc8..7d6de3939c 100644 --- a/modules/runners/lambdas/runners/yarn.lock +++ b/modules/runners/lambdas/runners/yarn.lock @@ -69,559 +69,616 @@ "@aws-lambda-powertools/commons" "^1.6.0" lodash.merge "^4.6.2" -"@aws-sdk/abort-controller@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.296.0.tgz#0e34a93366ee59eb5d24ea164e1cc2687e2071de" - integrity sha512-gNUFBlBw6+sEMfDjPVa83iscpQwXBS4uoiZXnfeQ6s6tnaxqQpJDrBBmNvYqDEXNdaAJX4FhayEwkSvtir/f3A== +"@aws-sdk/abort-controller@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.303.0.tgz#985d6cd65babdf0872b3f0224b0e151a2c1ab8c2" + integrity sha512-LzNzpeyTppcmV/6SAQI3T/huOkMrUnFveplgVNwJxw+rVqmqmGV6z6vpg+oRICRDcjXWYiSiaClxxSVvOy0sDQ== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/client-ssm@^3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ssm/-/client-ssm-3.296.0.tgz#7a179a544dadec54d9fed41b43e22bc09f6de0f9" - integrity sha512-t3HdkDXZ1VZXItxtEKNDAJueOTPsaXDIYeM4gTJKfggqevrhBT8a8cv4gieg9h1KnyTdSesCun6b7gPsLGrb7Q== +"@aws-sdk/client-ec2@^3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ec2/-/client-ec2-3.303.0.tgz#c17907e47b25a392871cbf8e6c042ff4d3553fd5" + integrity sha512-x7IC1IxWX5R7QB0ZzkU7trgqDR+4N8Ne5d1Yj+mVdsTSLrGW79W7slgOJNKwPapL4UvLyz+EfRZaiXZ9mtzQfA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.296.0" - "@aws-sdk/config-resolver" "3.296.0" - "@aws-sdk/credential-provider-node" "3.296.0" - "@aws-sdk/fetch-http-handler" "3.296.0" - "@aws-sdk/hash-node" "3.296.0" - "@aws-sdk/invalid-dependency" "3.296.0" - "@aws-sdk/middleware-content-length" "3.296.0" - "@aws-sdk/middleware-endpoint" "3.296.0" - "@aws-sdk/middleware-host-header" "3.296.0" - "@aws-sdk/middleware-logger" "3.296.0" - "@aws-sdk/middleware-recursion-detection" "3.296.0" - "@aws-sdk/middleware-retry" "3.296.0" - "@aws-sdk/middleware-serde" "3.296.0" - "@aws-sdk/middleware-signing" "3.296.0" - "@aws-sdk/middleware-stack" "3.296.0" - "@aws-sdk/middleware-user-agent" "3.296.0" - "@aws-sdk/node-config-provider" "3.296.0" - "@aws-sdk/node-http-handler" "3.296.0" - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/smithy-client" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/url-parser" "3.296.0" - "@aws-sdk/util-base64" "3.295.0" - "@aws-sdk/util-body-length-browser" "3.295.0" - "@aws-sdk/util-body-length-node" "3.295.0" - "@aws-sdk/util-defaults-mode-browser" "3.296.0" - "@aws-sdk/util-defaults-mode-node" "3.296.0" - "@aws-sdk/util-endpoints" "3.296.0" - "@aws-sdk/util-retry" "3.296.0" - "@aws-sdk/util-user-agent-browser" "3.296.0" - "@aws-sdk/util-user-agent-node" "3.296.0" - "@aws-sdk/util-utf8" "3.295.0" - "@aws-sdk/util-waiter" "3.296.0" + "@aws-sdk/client-sts" "3.303.0" + "@aws-sdk/config-resolver" "3.303.0" + "@aws-sdk/credential-provider-node" "3.303.0" + "@aws-sdk/fetch-http-handler" "3.303.0" + "@aws-sdk/hash-node" "3.303.0" + "@aws-sdk/invalid-dependency" "3.303.0" + "@aws-sdk/middleware-content-length" "3.303.0" + "@aws-sdk/middleware-endpoint" "3.303.0" + "@aws-sdk/middleware-host-header" "3.303.0" + "@aws-sdk/middleware-logger" "3.303.0" + "@aws-sdk/middleware-recursion-detection" "3.303.0" + "@aws-sdk/middleware-retry" "3.303.0" + "@aws-sdk/middleware-sdk-ec2" "3.303.0" + "@aws-sdk/middleware-serde" "3.303.0" + "@aws-sdk/middleware-signing" "3.303.0" + "@aws-sdk/middleware-stack" "3.303.0" + "@aws-sdk/middleware-user-agent" "3.303.0" + "@aws-sdk/node-config-provider" "3.303.0" + "@aws-sdk/node-http-handler" "3.303.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/smithy-client" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/url-parser" "3.303.0" + "@aws-sdk/util-base64" "3.303.0" + "@aws-sdk/util-body-length-browser" "3.303.0" + "@aws-sdk/util-body-length-node" "3.303.0" + "@aws-sdk/util-defaults-mode-browser" "3.303.0" + "@aws-sdk/util-defaults-mode-node" "3.303.0" + "@aws-sdk/util-endpoints" "3.303.0" + "@aws-sdk/util-retry" "3.303.0" + "@aws-sdk/util-user-agent-browser" "3.303.0" + "@aws-sdk/util-user-agent-node" "3.303.0" + "@aws-sdk/util-utf8" "3.303.0" + "@aws-sdk/util-waiter" "3.303.0" + fast-xml-parser "4.1.2" tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/client-sso-oidc@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.296.0.tgz#0edd5a3a065215cbf3e04e6f48b41b31531bf109" - integrity sha512-GRycCVdlFICvWwv9z6Mc/2BvSBOvchWO7UTklvbKXeDn6D05C+02PfxeoocMTc4r8/eFoEQWs67h5u/lPpyHDw== +"@aws-sdk/client-ssm@^3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ssm/-/client-ssm-3.303.0.tgz#67d5f99c162025a63f08f3bb1f781388268ef75b" + integrity sha512-IQ6nmiMJ8qKklOMWdxy/haU+mfi1S9NWBlGpEEEbxtVonyX+UCScTzypSfcDEFwgwZaRHrzU1+5ELoovepGFRA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.296.0" - "@aws-sdk/fetch-http-handler" "3.296.0" - "@aws-sdk/hash-node" "3.296.0" - "@aws-sdk/invalid-dependency" "3.296.0" - "@aws-sdk/middleware-content-length" "3.296.0" - "@aws-sdk/middleware-endpoint" "3.296.0" - "@aws-sdk/middleware-host-header" "3.296.0" - "@aws-sdk/middleware-logger" "3.296.0" - "@aws-sdk/middleware-recursion-detection" "3.296.0" - "@aws-sdk/middleware-retry" "3.296.0" - "@aws-sdk/middleware-serde" "3.296.0" - "@aws-sdk/middleware-stack" "3.296.0" - "@aws-sdk/middleware-user-agent" "3.296.0" - "@aws-sdk/node-config-provider" "3.296.0" - "@aws-sdk/node-http-handler" "3.296.0" - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/smithy-client" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/url-parser" "3.296.0" - "@aws-sdk/util-base64" "3.295.0" - "@aws-sdk/util-body-length-browser" "3.295.0" - "@aws-sdk/util-body-length-node" "3.295.0" - "@aws-sdk/util-defaults-mode-browser" "3.296.0" - "@aws-sdk/util-defaults-mode-node" "3.296.0" - "@aws-sdk/util-endpoints" "3.296.0" - "@aws-sdk/util-retry" "3.296.0" - "@aws-sdk/util-user-agent-browser" "3.296.0" - "@aws-sdk/util-user-agent-node" "3.296.0" - "@aws-sdk/util-utf8" "3.295.0" + "@aws-sdk/client-sts" "3.303.0" + "@aws-sdk/config-resolver" "3.303.0" + "@aws-sdk/credential-provider-node" "3.303.0" + "@aws-sdk/fetch-http-handler" "3.303.0" + "@aws-sdk/hash-node" "3.303.0" + "@aws-sdk/invalid-dependency" "3.303.0" + "@aws-sdk/middleware-content-length" "3.303.0" + "@aws-sdk/middleware-endpoint" "3.303.0" + "@aws-sdk/middleware-host-header" "3.303.0" + "@aws-sdk/middleware-logger" "3.303.0" + "@aws-sdk/middleware-recursion-detection" "3.303.0" + "@aws-sdk/middleware-retry" "3.303.0" + "@aws-sdk/middleware-serde" "3.303.0" + "@aws-sdk/middleware-signing" "3.303.0" + "@aws-sdk/middleware-stack" "3.303.0" + "@aws-sdk/middleware-user-agent" "3.303.0" + "@aws-sdk/node-config-provider" "3.303.0" + "@aws-sdk/node-http-handler" "3.303.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/smithy-client" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/url-parser" "3.303.0" + "@aws-sdk/util-base64" "3.303.0" + "@aws-sdk/util-body-length-browser" "3.303.0" + "@aws-sdk/util-body-length-node" "3.303.0" + "@aws-sdk/util-defaults-mode-browser" "3.303.0" + "@aws-sdk/util-defaults-mode-node" "3.303.0" + "@aws-sdk/util-endpoints" "3.303.0" + "@aws-sdk/util-retry" "3.303.0" + "@aws-sdk/util-user-agent-browser" "3.303.0" + "@aws-sdk/util-user-agent-node" "3.303.0" + "@aws-sdk/util-utf8" "3.303.0" + "@aws-sdk/util-waiter" "3.303.0" tslib "^2.5.0" + uuid "^8.3.2" -"@aws-sdk/client-sso@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.296.0.tgz#97c2061b2f98cda0e5c65e8f13408f15dac7ae7d" - integrity sha512-0P0x++jhlmhzViFPOHvTb7+Z6tSV9aONwB8CchIseg2enSPBbGfml7y5gQu1jdOTDS6pBUmrPZ+9sOI4/GvAfA== +"@aws-sdk/client-sso-oidc@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.303.0.tgz#e05b53a2fbd439375c8494bdad168deb28313a12" + integrity sha512-oOdDcBjxGiJ6mFWUMVr+A1hAzGRpcZ+oLAhCakpvpXCUG50PZSBFP+vOQXgHY/XNolqDg+IHq60oE9HoPzGleg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.296.0" - "@aws-sdk/fetch-http-handler" "3.296.0" - "@aws-sdk/hash-node" "3.296.0" - "@aws-sdk/invalid-dependency" "3.296.0" - "@aws-sdk/middleware-content-length" "3.296.0" - "@aws-sdk/middleware-endpoint" "3.296.0" - "@aws-sdk/middleware-host-header" "3.296.0" - "@aws-sdk/middleware-logger" "3.296.0" - "@aws-sdk/middleware-recursion-detection" "3.296.0" - "@aws-sdk/middleware-retry" "3.296.0" - "@aws-sdk/middleware-serde" "3.296.0" - "@aws-sdk/middleware-stack" "3.296.0" - "@aws-sdk/middleware-user-agent" "3.296.0" - "@aws-sdk/node-config-provider" "3.296.0" - "@aws-sdk/node-http-handler" "3.296.0" - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/smithy-client" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/url-parser" "3.296.0" - "@aws-sdk/util-base64" "3.295.0" - "@aws-sdk/util-body-length-browser" "3.295.0" - "@aws-sdk/util-body-length-node" "3.295.0" - "@aws-sdk/util-defaults-mode-browser" "3.296.0" - "@aws-sdk/util-defaults-mode-node" "3.296.0" - "@aws-sdk/util-endpoints" "3.296.0" - "@aws-sdk/util-retry" "3.296.0" - "@aws-sdk/util-user-agent-browser" "3.296.0" - "@aws-sdk/util-user-agent-node" "3.296.0" - "@aws-sdk/util-utf8" "3.295.0" + "@aws-sdk/config-resolver" "3.303.0" + "@aws-sdk/fetch-http-handler" "3.303.0" + "@aws-sdk/hash-node" "3.303.0" + "@aws-sdk/invalid-dependency" "3.303.0" + "@aws-sdk/middleware-content-length" "3.303.0" + "@aws-sdk/middleware-endpoint" "3.303.0" + "@aws-sdk/middleware-host-header" "3.303.0" + "@aws-sdk/middleware-logger" "3.303.0" + "@aws-sdk/middleware-recursion-detection" "3.303.0" + "@aws-sdk/middleware-retry" "3.303.0" + "@aws-sdk/middleware-serde" "3.303.0" + "@aws-sdk/middleware-stack" "3.303.0" + "@aws-sdk/middleware-user-agent" "3.303.0" + "@aws-sdk/node-config-provider" "3.303.0" + "@aws-sdk/node-http-handler" "3.303.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/smithy-client" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/url-parser" "3.303.0" + "@aws-sdk/util-base64" "3.303.0" + "@aws-sdk/util-body-length-browser" "3.303.0" + "@aws-sdk/util-body-length-node" "3.303.0" + "@aws-sdk/util-defaults-mode-browser" "3.303.0" + "@aws-sdk/util-defaults-mode-node" "3.303.0" + "@aws-sdk/util-endpoints" "3.303.0" + "@aws-sdk/util-retry" "3.303.0" + "@aws-sdk/util-user-agent-browser" "3.303.0" + "@aws-sdk/util-user-agent-node" "3.303.0" + "@aws-sdk/util-utf8" "3.303.0" tslib "^2.5.0" -"@aws-sdk/client-sts@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.296.0.tgz#98aee362858f2cad775ee037f1bb8f259d4bf4fc" - integrity sha512-ew7hSVNpitnLCIRVhnI2L1HZB/yYpRQFReR62fOqCUnpKqm6WGga37bnvgYbY5y0Rv23C0VHARovwunVg1gabA== +"@aws-sdk/client-sso@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.303.0.tgz#727fea832f57d437cbe213bf77bcd400c47fef3b" + integrity sha512-LZ+Z6vGnEdqmxx0dqtZP97n5VX5uUKu4lJmDR3sdGolxAUqCY1FxHDZd9DzCFXR8rwoJK4VJTL+exzeVp4Ly/g== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.296.0" - "@aws-sdk/credential-provider-node" "3.296.0" - "@aws-sdk/fetch-http-handler" "3.296.0" - "@aws-sdk/hash-node" "3.296.0" - "@aws-sdk/invalid-dependency" "3.296.0" - "@aws-sdk/middleware-content-length" "3.296.0" - "@aws-sdk/middleware-endpoint" "3.296.0" - "@aws-sdk/middleware-host-header" "3.296.0" - "@aws-sdk/middleware-logger" "3.296.0" - "@aws-sdk/middleware-recursion-detection" "3.296.0" - "@aws-sdk/middleware-retry" "3.296.0" - "@aws-sdk/middleware-sdk-sts" "3.296.0" - "@aws-sdk/middleware-serde" "3.296.0" - "@aws-sdk/middleware-signing" "3.296.0" - "@aws-sdk/middleware-stack" "3.296.0" - "@aws-sdk/middleware-user-agent" "3.296.0" - "@aws-sdk/node-config-provider" "3.296.0" - "@aws-sdk/node-http-handler" "3.296.0" - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/smithy-client" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/url-parser" "3.296.0" - "@aws-sdk/util-base64" "3.295.0" - "@aws-sdk/util-body-length-browser" "3.295.0" - "@aws-sdk/util-body-length-node" "3.295.0" - "@aws-sdk/util-defaults-mode-browser" "3.296.0" - "@aws-sdk/util-defaults-mode-node" "3.296.0" - "@aws-sdk/util-endpoints" "3.296.0" - "@aws-sdk/util-retry" "3.296.0" - "@aws-sdk/util-user-agent-browser" "3.296.0" - "@aws-sdk/util-user-agent-node" "3.296.0" - "@aws-sdk/util-utf8" "3.295.0" + "@aws-sdk/config-resolver" "3.303.0" + "@aws-sdk/fetch-http-handler" "3.303.0" + "@aws-sdk/hash-node" "3.303.0" + "@aws-sdk/invalid-dependency" "3.303.0" + "@aws-sdk/middleware-content-length" "3.303.0" + "@aws-sdk/middleware-endpoint" "3.303.0" + "@aws-sdk/middleware-host-header" "3.303.0" + "@aws-sdk/middleware-logger" "3.303.0" + "@aws-sdk/middleware-recursion-detection" "3.303.0" + "@aws-sdk/middleware-retry" "3.303.0" + "@aws-sdk/middleware-serde" "3.303.0" + "@aws-sdk/middleware-stack" "3.303.0" + "@aws-sdk/middleware-user-agent" "3.303.0" + "@aws-sdk/node-config-provider" "3.303.0" + "@aws-sdk/node-http-handler" "3.303.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/smithy-client" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/url-parser" "3.303.0" + "@aws-sdk/util-base64" "3.303.0" + "@aws-sdk/util-body-length-browser" "3.303.0" + "@aws-sdk/util-body-length-node" "3.303.0" + "@aws-sdk/util-defaults-mode-browser" "3.303.0" + "@aws-sdk/util-defaults-mode-node" "3.303.0" + "@aws-sdk/util-endpoints" "3.303.0" + "@aws-sdk/util-retry" "3.303.0" + "@aws-sdk/util-user-agent-browser" "3.303.0" + "@aws-sdk/util-user-agent-node" "3.303.0" + "@aws-sdk/util-utf8" "3.303.0" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.303.0.tgz#1cdfeef723ca351e25067d5263af9901a85089d3" + integrity sha512-oda7mOfGyJZe62DZ5BVH3L84yeDM0Ja/fSpTjwV9hqFqzgtW83TCpiNegcJmvmGWDYaPmE2qpfDPqPzymB0sBg== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.303.0" + "@aws-sdk/credential-provider-node" "3.303.0" + "@aws-sdk/fetch-http-handler" "3.303.0" + "@aws-sdk/hash-node" "3.303.0" + "@aws-sdk/invalid-dependency" "3.303.0" + "@aws-sdk/middleware-content-length" "3.303.0" + "@aws-sdk/middleware-endpoint" "3.303.0" + "@aws-sdk/middleware-host-header" "3.303.0" + "@aws-sdk/middleware-logger" "3.303.0" + "@aws-sdk/middleware-recursion-detection" "3.303.0" + "@aws-sdk/middleware-retry" "3.303.0" + "@aws-sdk/middleware-sdk-sts" "3.303.0" + "@aws-sdk/middleware-serde" "3.303.0" + "@aws-sdk/middleware-signing" "3.303.0" + "@aws-sdk/middleware-stack" "3.303.0" + "@aws-sdk/middleware-user-agent" "3.303.0" + "@aws-sdk/node-config-provider" "3.303.0" + "@aws-sdk/node-http-handler" "3.303.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/smithy-client" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/url-parser" "3.303.0" + "@aws-sdk/util-base64" "3.303.0" + "@aws-sdk/util-body-length-browser" "3.303.0" + "@aws-sdk/util-body-length-node" "3.303.0" + "@aws-sdk/util-defaults-mode-browser" "3.303.0" + "@aws-sdk/util-defaults-mode-node" "3.303.0" + "@aws-sdk/util-endpoints" "3.303.0" + "@aws-sdk/util-retry" "3.303.0" + "@aws-sdk/util-user-agent-browser" "3.303.0" + "@aws-sdk/util-user-agent-node" "3.303.0" + "@aws-sdk/util-utf8" "3.303.0" fast-xml-parser "4.1.2" tslib "^2.5.0" -"@aws-sdk/config-resolver@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.296.0.tgz#be6971d182ef53de21140b6fa00f15e86aa9fd4b" - integrity sha512-Ecdp7fmIitHo49NRCyIEHb9xlI43J7qkvhcwaKGGqN5jvoh0YhR2vNr195wWG8Ip/9PwsD4QV4g/XT5EY7XkMA== +"@aws-sdk/config-resolver@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.303.0.tgz#0cb7c7c11c2f0786a2400af773aabd2a9507669a" + integrity sha512-uGZ47jcH86AwWcjZjuOL5jK5qE4izrEol8oF7KY214kjmavbKQstyUqmcwL2lr/YpDNFkCYgUxWRpduqVm8zmw== dependencies: - "@aws-sdk/signature-v4" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" "@aws-sdk/util-config-provider" "3.295.0" - "@aws-sdk/util-middleware" "3.296.0" + "@aws-sdk/util-middleware" "3.303.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-env@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.296.0.tgz#9812fc635876cba5650cd6d1f30c70f34b41dcde" - integrity sha512-eDWSU3p04gytkkVXnYn05YzrP5SEaj/DQiafd4y+iBl8IFfF3zM6982rs6qFhvpwrHeSbLqHNfKR1HDWVwfG5g== +"@aws-sdk/credential-provider-env@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.303.0.tgz#65ec25f5470ee2b04bba608d49f5e3a603c9575e" + integrity sha512-rtXumfF4cGrVk9fWACeLCfdpmlzlDUkzwSR60/3enC5Antcxl3fFY5T1BzNFvz0mB0zcwm4kaAwIcljX67DNRA== dependencies: - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-imds@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.296.0.tgz#200ea2af352451cdd99584baac846bb86cb636b1" - integrity sha512-DXqksHyT/GVVYbPGknMARKi6Rk6cqCHJUAejePIx5cz1SCKlDrV704hykafHIjaDoy/Zeoj1wzjfwy83sJfDCg== +"@aws-sdk/credential-provider-imds@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.303.0.tgz#40450f1e523f4b15ea0db1420b2373a8f272ddfb" + integrity sha512-ruomcFkKUpJkZb87em698//A0AVpt1KN9dn8N8eVyOuvZzebVxSW4AJoVgOKd5Av4PVcZgEqRX0kOOVp0iTrWg== dependencies: - "@aws-sdk/node-config-provider" "3.296.0" - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/url-parser" "3.296.0" + "@aws-sdk/node-config-provider" "3.303.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/url-parser" "3.303.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-ini@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.296.0.tgz#c2afe7c064e6dd6f7f3900870a2c1b9b98f00fa5" - integrity sha512-U0ecY0GX2jeDAgmTzaVO9YgjlLUfb8wgZSu1OwbOxCJscL/5eFkhcF0/xJQXDbRgcj4H4dlquqeSWsBVl/PgvQ== - dependencies: - "@aws-sdk/credential-provider-env" "3.296.0" - "@aws-sdk/credential-provider-imds" "3.296.0" - "@aws-sdk/credential-provider-process" "3.296.0" - "@aws-sdk/credential-provider-sso" "3.296.0" - "@aws-sdk/credential-provider-web-identity" "3.296.0" - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/shared-ini-file-loader" "3.296.0" - "@aws-sdk/types" "3.296.0" +"@aws-sdk/credential-provider-ini@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.303.0.tgz#a4bf44827fee4f65faf16aa863a0f0cebab1c163" + integrity sha512-4J50F6fEjQmAstSQOpJFG+rnbEqtwA7nDG6PxNm98VSTH2mYJV0YgBdvydfBKrKINAT4xYZta5Sc4WEIpSo0TA== + dependencies: + "@aws-sdk/credential-provider-env" "3.303.0" + "@aws-sdk/credential-provider-imds" "3.303.0" + "@aws-sdk/credential-provider-process" "3.303.0" + "@aws-sdk/credential-provider-sso" "3.303.0" + "@aws-sdk/credential-provider-web-identity" "3.303.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/shared-ini-file-loader" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-node@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.296.0.tgz#62c5a1600f5b60013c474476d943b831e56b17f0" - integrity sha512-oCkmh2b1DQhHkhd/qA9jiSIOkrBBK7cMg1/PVIgLw8e15NkzUHBObLJ/ZQw6ZzCxZzjlMYaFv9oCB8hyO8txmA== - dependencies: - "@aws-sdk/credential-provider-env" "3.296.0" - "@aws-sdk/credential-provider-imds" "3.296.0" - "@aws-sdk/credential-provider-ini" "3.296.0" - "@aws-sdk/credential-provider-process" "3.296.0" - "@aws-sdk/credential-provider-sso" "3.296.0" - "@aws-sdk/credential-provider-web-identity" "3.296.0" - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/shared-ini-file-loader" "3.296.0" - "@aws-sdk/types" "3.296.0" +"@aws-sdk/credential-provider-node@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.303.0.tgz#0fe017e7ed2985a168fd2bff3c57d0a35b42d201" + integrity sha512-OlKb7O2jDtrzkzLT/PUb5kxuGGTIyPn2alXzGT+7LdJ9/tP8KlqSVMtnH2UYPPdcc/daK16+MRNL5ylxmnRJ7Q== + dependencies: + "@aws-sdk/credential-provider-env" "3.303.0" + "@aws-sdk/credential-provider-imds" "3.303.0" + "@aws-sdk/credential-provider-ini" "3.303.0" + "@aws-sdk/credential-provider-process" "3.303.0" + "@aws-sdk/credential-provider-sso" "3.303.0" + "@aws-sdk/credential-provider-web-identity" "3.303.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/shared-ini-file-loader" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-process@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.296.0.tgz#d18399dc70306240d8b96b8de1eeba545457f92f" - integrity sha512-AY7sTX2dGi8ripuCpcJLYHOZB2wJ6NnseyK/kK5TfJn/pgboKwuGtz0hkJCVprNWomKa6IpHksm7vLQ4O2E+UA== +"@aws-sdk/credential-provider-process@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.303.0.tgz#ee04ab23bec26aa9d6540d8280714b1c41600c11" + integrity sha512-1pxDYRscGlERAjFE5hSF1KQdcyOGzssuRTdLvez4I/mSIOAJLMmBAnmHGI/DME2LzDVrC9dklA6LHSC2sn3quQ== dependencies: - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/shared-ini-file-loader" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/shared-ini-file-loader" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-sso@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.296.0.tgz#c26648e9a16d25eadfe1c8125e507afa3f723566" - integrity sha512-zPFHDX/niXfcQrKQhmBv1XPYEe4b7im4vRKrzjYXgDRpG2M3LP0KaWIwN6Ap+GRYBNBthen86vhTlmKGzyU5YA== - dependencies: - "@aws-sdk/client-sso" "3.296.0" - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/shared-ini-file-loader" "3.296.0" - "@aws-sdk/token-providers" "3.296.0" - "@aws-sdk/types" "3.296.0" +"@aws-sdk/credential-provider-sso@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.303.0.tgz#df776289d0076b1bbb62945952eb8dbf32926945" + integrity sha512-/szzM1BzZGjHwV4mSiZo65cyDleJqnxM9Y4autg55mb3dFwcCiMGI6TGbdegumrNZZlCTeTA1lIhA9PdT4gDAQ== + dependencies: + "@aws-sdk/client-sso" "3.303.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/shared-ini-file-loader" "3.303.0" + "@aws-sdk/token-providers" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-web-identity@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.296.0.tgz#91323cc41aea384e755f053b44e51a1d101ecd38" - integrity sha512-Rl6Ohoekxe+pccA55XXQDW5wApbg3rGWr6FkmPRcg7Ld6Vfe+HL8OtfsFf83/0eoFerevbif+00BdknXWT05LA== +"@aws-sdk/credential-provider-web-identity@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.303.0.tgz#f83cf1cb50794b13b2772b4d8930a3f315e5f531" + integrity sha512-qi5CP4ocseqdj3kMi0vgLx8XrdanLNvCAfgiEF6LjUJI88R2snZAYNUSd+Y2n04mKAalns+mUwfUN2JyL66d5g== dependencies: - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/fetch-http-handler@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.296.0.tgz#067426b5e1b6edf375abb61070fd918f44e59493" - integrity sha512-wHuKQ+PGKQkYGVuIGscbcbbASl8yIVOSC+QTrZQ4PNsMDvQd9ey2npsmxZk1Z2ULaxY+qYtZCmByyGc8k51TtQ== +"@aws-sdk/fetch-http-handler@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.303.0.tgz#ea3fb86f4e33896ca95d4e96cada891b978a99f4" + integrity sha512-Bc6C86/KQOSWPa741h9QEVcApyignYV5vC5+zZjmKkcyPxrVxTmL3kTJidpVOtVfCmTIrNN/WhAVDzLBbh1ycQ== dependencies: - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/querystring-builder" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/util-base64" "3.295.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/querystring-builder" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/util-base64" "3.303.0" tslib "^2.5.0" -"@aws-sdk/hash-node@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.296.0.tgz#ccf08fe0154d1e83bccd9cb4015a6f41245b8e44" - integrity sha512-01Sgxm0NE3rtEznLY8vx1bfNsIeM5Sk5SjY9RXqnvCf9EyaKH9x5FMS/DX/SgDdIYi3aXbTwiwScNVCNBzOIQA== +"@aws-sdk/hash-node@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.303.0.tgz#aaaf3ce0d596284a98d6a6d4b67da2e7d6392664" + integrity sha512-jSo4A/JxTabZ9jHrx7nhKIXnOmvPg/SSYnoHaFdVS5URJrNt1w+nSvW1wLGMEMOvu5+NU3bldBBSb+h0Ocwv1A== dependencies: - "@aws-sdk/types" "3.296.0" - "@aws-sdk/util-buffer-from" "3.295.0" - "@aws-sdk/util-utf8" "3.295.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/util-buffer-from" "3.303.0" + "@aws-sdk/util-utf8" "3.303.0" tslib "^2.5.0" -"@aws-sdk/invalid-dependency@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.296.0.tgz#d3f7d059be44e9a3de2111f82df9f9b560fd1634" - integrity sha512-dmy4fUds0woHGjxwziaSYCLtb/SOfoEeQjW0GFvHj+YGFyY5hJzna4C759Tt8X5obh1evUXlQcH+FL7TS+7tRQ== +"@aws-sdk/invalid-dependency@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.303.0.tgz#0e3844d4e4a26879f6fa3f9469386b67976ab4aa" + integrity sha512-RXNcLxOrUJaMMqk5uIYEf6X9XCMockT27bS8Dde/0ms015VOo8Wn2hHU9wEmGeFvLccC2UU4gPzvmj74w70q2Q== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/is-array-buffer@3.295.0": - version "3.295.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.295.0.tgz#09de3d0fb9fb9d28c9edc48e86ca546d34fd8c98" - integrity sha512-SCIt10cr5dud7hvwveU4wkLjvkGssJ3GrcbHCds2NwI+JHmpcaaNYLAqi305JAuT29T36U5ssTFDSmrrEOcfag== +"@aws-sdk/is-array-buffer@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.303.0.tgz#8cc85c805e679ad8468e5551fddb6ed92fc14548" + integrity sha512-IitBTr+pou7v5BrYLFH/SbIf3g1LIgMhcI3bDXBq2FjzmDftj4bW8BOmg05b9YKf2TrrggvJ4yk/jH+yYFXoJQ== dependencies: tslib "^2.5.0" -"@aws-sdk/middleware-content-length@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.296.0.tgz#7e7fa9c6b7618f0021387fe4ee3e977a06c7b514" - integrity sha512-e7lJm3kkC2pWZdIw23gpMUk1GrpRTBRqhdFfVwyduXw6Wo4nBYv8Z5MOYy3/SlpjE1BDCaPBoZ3O19cO3arHxg== +"@aws-sdk/middleware-content-length@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.303.0.tgz#16281fb3ba2a018a657ee07fdd29fea27d54cc07" + integrity sha512-0UL5TWSL1JRpjT6gjGsZXfia5oL7vxzj+CfMCqkP6gjVF69eRcgu426Xc6TJwDcr6jIFPeamDBTLyt9ZAAr6hg== dependencies: - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-endpoint@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.296.0.tgz#df65c578ea6b216cd722b4e4a6baeaf28214333f" - integrity sha512-t8gc7FHr6KkFD35eSzv3VEYl2vNqzAHbux5Bn0su6TJbaTxXiQKcf2jZDTAh7LzUyrB1LH39mNN+at7r3Qm/3g== - dependencies: - "@aws-sdk/middleware-serde" "3.296.0" - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/signature-v4" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/url-parser" "3.296.0" - "@aws-sdk/util-config-provider" "3.295.0" - "@aws-sdk/util-middleware" "3.296.0" +"@aws-sdk/middleware-endpoint@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.303.0.tgz#bf3443fce9818ce606d2ecbe54e5c9bacba742cc" + integrity sha512-z2i8LJ6YTKbqXh9rY/KbXihvhq6P0JVI6SnkwT2hesJp0Nfldx85jsaLzj1+ioNKlQ+51u9UmBnO404DgNCAbg== + dependencies: + "@aws-sdk/middleware-serde" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/url-parser" "3.303.0" + "@aws-sdk/util-middleware" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-host-header@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.296.0.tgz#e5c0f548c68751669f036e2a4637b05705629085" - integrity sha512-V47dFtfkX5lXWv9GDp71gZVCRws4fEdQ9QF9BQ/2UMSNrYjQLg6mFe7NibH+IJoNOid2FIwWIl94Eos636VGYQ== +"@aws-sdk/middleware-host-header@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.303.0.tgz#817a71465525cac86670e00d55ccce7e071ca7cd" + integrity sha512-LUyhtjbuosrD0QAsBZJwT3yp146I7Xjehf42OP3dWbRuklMEilI0Res5K2/nknf3/ZKUj6sf7BbJoU8E+SpRiQ== dependencies: - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-logger@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.296.0.tgz#5d8d7e688697bdb2470751ded15b7be7728e5461" - integrity sha512-LzfEEFyBR9LXdWwLdtBrmi1vLdzgdJNntEgzqktVF8LwaCyY+9xIE6TGu/2V+9fJHAwECxjOC1eQbNQdAZ0Tmw== +"@aws-sdk/middleware-logger@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.303.0.tgz#207a94bcbf8cd11b703f6d67654c2d2f2237f208" + integrity sha512-y2sqmmBdm4gXUL4SyN+ucfO/sxtOEDj2sB12ArRpDGyerfNLhAf7xpL4lXkjPx/7wTIjlBWoO2G/yK6t00P6fA== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-recursion-detection@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.296.0.tgz#776d4a1f32ae745896fc3b46fd40b7937f5b47b9" - integrity sha512-UG7TLDPz9ImQG0uVklHTxE9Us7rTImwN+6el6qZCpoTBuGeXgOkfb0/p8izJyFgY/hMUR4cZqs7IdCDUkxQF3w== +"@aws-sdk/middleware-recursion-detection@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.303.0.tgz#d1c3e16fbb1d19f95802e870c25959e44ea90ab6" + integrity sha512-z3MTsZMtPg6hYWl6a0o07q7zgsDXPYeP14XFVMc8NXqiAyNcm/OYwanpXyNjsEKI/X0nlpJ/Rs+IRCbaIqV9Mw== dependencies: - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-retry@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.296.0.tgz#71d4b9213cbbf28f7c156b30fa333b04fd1f0123" - integrity sha512-Tz3gDZm5viQg7BG5bF9Cg0qbm4+Ur3a7wcGkj1XHQdzGDYR76gxvU0bfnSNUmWRz3kaVNyISyXSOUygG0cbhbw== - dependencies: - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/service-error-classification" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/util-middleware" "3.296.0" - "@aws-sdk/util-retry" "3.296.0" +"@aws-sdk/middleware-retry@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.303.0.tgz#f4b25a8a3b52937abbf2ccd05ee149fe0d8207a1" + integrity sha512-wxlqrdGOrCm2Jsra7YyfLyO34YRB/FNlXzwuJiZkqoAb/40ZAuFcWqDv41SP44y8liFXqfsMGuywJ7mK2cHvnA== + dependencies: + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/service-error-classification" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/util-middleware" "3.303.0" + "@aws-sdk/util-retry" "3.303.0" tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/middleware-sdk-sts@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.296.0.tgz#19c29a7e916af16c51132339c71af526a3ec4c10" - integrity sha512-0EnHtiRzcRcXaF6zEgcRGUtVgX0RqczwlGXjtryHcxiqU/+adqbRuckC7bdMF4Zva6GVPS25XppvGF4M+UzAEw== - dependencies: - "@aws-sdk/middleware-signing" "3.296.0" - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/signature-v4" "3.296.0" - "@aws-sdk/types" "3.296.0" +"@aws-sdk/middleware-sdk-ec2@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-ec2/-/middleware-sdk-ec2-3.303.0.tgz#1d0f7aa92e74c5e5832d2bc693bbb4a0ce33cc55" + integrity sha512-fGi2bT6gSwXlQy3AiNEnnG0MN29+YvzHL5u6VGyUqsNU+UO/VRB51AEZMaaOLgIS9dhavWGvCLYDA8UFYjCf4A== + dependencies: + "@aws-sdk/middleware-endpoint" "3.303.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/signature-v4" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/util-format-url" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-serde@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.296.0.tgz#489454861c21446100dfc609d73073b4d164a864" - integrity sha512-xk2PpWAAX758oUTGkGBAncpOr7ddIXisjD2Y2r9DDXuE4JMho2x6zcrVSiYsGIQ6MHZ9XNJKBVDiK9PA4iQWGQ== +"@aws-sdk/middleware-sdk-sts@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.303.0.tgz#728077cc28ee9173ecddd11a4a0213c2f3d0d9e0" + integrity sha512-igp7htNCUPhVL9Q6rJSgcx3qy/P2l2KAiS0oozOTaTXt3h0LbOusSXtwyA7qvLYeRthnw6msVW+rVBAW3Vo+3g== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/middleware-signing" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-signing@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.296.0.tgz#44816a5c7244f812587f8e8f970a5e51b4cca373" - integrity sha512-wyiG+WPDvugGTIPpKchGOdvvpcMZEN2IfP6iK//QAqGXsC6rDm5+SNZ3+elvduZjPUdVA06W0CcFYBAkVz8D7Q== - dependencies: - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/signature-v4" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/util-middleware" "3.296.0" +"@aws-sdk/middleware-serde@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.303.0.tgz#498766aa4adadbb7c18314608e04a483b213834f" + integrity sha512-mmZozwYKgUgXkJrLVqgIYoOQ8DfKZS3pBBT3ZxWzv5Hz5M3oRqFgfVYljkeDM2CTvBweHpqVRTWqPDMcZisucg== + dependencies: + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-stack@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.296.0.tgz#4c95d9aeb655270710f3e1fd2af39a6b8a760e33" - integrity sha512-Rgo7/mdk9tt4qa9+pzG3AoGNhuj7NmnF5H+3DoPm75h58BYP8hKbKobdPGgI2rZLPtO3PGgmyw/4K4tQJPIZ8g== +"@aws-sdk/middleware-signing@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.303.0.tgz#f18ede6a143679a9a4941e3a604837f67a6034a2" + integrity sha512-rrLQcS2wFsUGj9Kyx78LRgRS8jwiixz/Nyv06SmcKhP680sweETpQz/EA+wcVEVRXmUI6vs4NtqXz36dU0X8Nw== dependencies: + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/signature-v4" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/util-middleware" "3.303.0" tslib "^2.5.0" -"@aws-sdk/middleware-user-agent@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.296.0.tgz#e2fb57b8427b7b347a971d93cf4fe92831221640" - integrity sha512-L7jacxSt6gxX1gD3tQtfwHqBDk5rT2wWD3rxBa6rs7f81b9ObgY/sPT2IgRT7JNCVzvKLYFxJaTklDj65mY1SQ== +"@aws-sdk/middleware-stack@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.303.0.tgz#af14d8eae7a0faaed959e8c0388366f140cb86dc" + integrity sha512-6KmdroXLexzILGxF/Xq0cGBs+B8Ipm1pff8qnWCT6KldYp+Q40bVcJrExkVHDN1uOsOxu20ixW2yujOKS356zg== dependencies: - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/types" "3.296.0" - "@aws-sdk/util-endpoints" "3.296.0" tslib "^2.5.0" -"@aws-sdk/node-config-provider@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.296.0.tgz#d333190ed96881cebb266f5ed968f1da50c5501d" - integrity sha512-S/tYcuw9ACOWRmRe5oUkmutQ+TApjVs0yDl504DKs74f3p4kRgI/MGWkBiR3mcfThHaxu81z0gkRL2qfW2SDwg== +"@aws-sdk/middleware-user-agent@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.303.0.tgz#35a9df0bb7306762179e27ec418be6b5dfffba33" + integrity sha512-ZVMVNxPRn2jXog3V4xWokSYoQxTKAdKlNoCfjqFplsF70r8sXfgZtOMF5ZhGo+Hgsx7GqpR/NWPKJtZD2nigpg== dependencies: - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/shared-ini-file-loader" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/util-endpoints" "3.303.0" tslib "^2.5.0" -"@aws-sdk/node-http-handler@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.296.0.tgz#163e71eec6524746d2a93681bd353c5bdf870ae2" - integrity sha512-D15jjPqYSNhEq58BwkmIpD3VwqG4bL5acAaNu5wWAI4S4236JlG+nmpi3gEeE25z1KCwtBl7G30fVRgXYJ2CWA== +"@aws-sdk/node-config-provider@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.303.0.tgz#ba8f17b7cafc224fddddee20c22535dd89399f6d" + integrity sha512-Ywbo9+2SkbdmNgCoxYJrv+YrFDtBH7hHtn2ywtzP4t57d4t0V/LNrNQsrAsXxqy48OS5r2ovOLHiqJS5jp1oyw== dependencies: - "@aws-sdk/abort-controller" "3.296.0" - "@aws-sdk/protocol-http" "3.296.0" - "@aws-sdk/querystring-builder" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/shared-ini-file-loader" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/property-provider@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.296.0.tgz#10dae9edcdfa8ef97d1781c2f7fdf34f8545831c" - integrity sha512-kjczxE9Od5LoAKQOmxVWISJ9oPG3aCsB+2+NdI+k9EJFDXUUdMcVV3Skei5uHGgKLMsI6CZy8ezZx6YxOSLSew== +"@aws-sdk/node-http-handler@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.303.0.tgz#d131f5789f5214542e0f9fa31b86fad53a465cda" + integrity sha512-5Te+mwBIOiQr2nM7/SNVFkvYHOH/CswOmUMV4Gxc7YjuervhrYvVFs2P+lL+c8rfiVMTLWjnJ6JiL2JdJfYgnQ== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/abort-controller" "3.303.0" + "@aws-sdk/protocol-http" "3.303.0" + "@aws-sdk/querystring-builder" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/protocol-http@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.296.0.tgz#064d7ceb739f9721bde89b23545a35704b8b7dc7" - integrity sha512-0U1Z/+tpwdRiSToWo1bpdkbTzjbLugTnd02ATjvK4B7zi363SUGlKfoWgV+v7FU/22CIUI1ZIe7XzXvq5rJfjA== +"@aws-sdk/property-provider@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.303.0.tgz#a46d0a4c5e7c281de2738ca617f258ccb403787e" + integrity sha512-d1qbn0pCz+jvB0dcWMWuIlWYM8dWCg3185ngMgUQxkgUk7/kEbwGBsmT+xtZAMQcwcgPkSm8qeATEQ7ToiH8eQ== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/querystring-builder@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.296.0.tgz#18ef70d03e1abf76e75db0603cb5e9d30fe04814" - integrity sha512-+ZrZdTRaVI1R1xKQNrTwuiRoPateUaJ/DNw/myJpTPt+ZRg0H7LKBGaJYwL4pl5l/z1UM/E1fOttSfSW7GHxfw== +"@aws-sdk/protocol-http@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.303.0.tgz#2bf0ced8b5a264e2191237e74de370bff7891113" + integrity sha512-eqblSsdmKBzgNl06dUnL4toq/OQgZyxVsxHCz2nI/xBk5lI/qAZIJyEgP2GmP8aoWwneAq33roG0VLZoxQ8exg== dependencies: - "@aws-sdk/types" "3.296.0" - "@aws-sdk/util-uri-escape" "3.295.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/querystring-parser@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.296.0.tgz#9c708831e27a06afc0e01f33db1cbfbfbcae5cb9" - integrity sha512-nLNZKVQfK42euv7101cE5qfg17YCtGcfccx3B5XSAzvyTROR46kwYqbEvYSsWisbZoRhbQc905gB/5E0U5HDIw== +"@aws-sdk/querystring-builder@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.303.0.tgz#75308ba0635595056138942c12d30222c33a579c" + integrity sha512-0eMp2gd7Ro0svJ6YVnp9cUiGtrc1d/HynyMfbDkLkqWJAnHMz7Oc1GjK5YyL1hdxm0W+JWZCPR0SovLiaboKDw== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" + "@aws-sdk/util-uri-escape" "3.303.0" tslib "^2.5.0" -"@aws-sdk/service-error-classification@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.296.0.tgz#3596bcb45c0ae8619e214ac1ce5351eeee502135" - integrity sha512-YIsWSQ38e1+FqXz3CMrkKS0JD8OLlHf6I72PJhbfegePpQQFqi9R8OREjP5V7UR9Z972yruv4i96ROH6SCtmoA== +"@aws-sdk/querystring-parser@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.303.0.tgz#0a5e17b9e1e98ae7bc5bf19f2e7939e5d90a3669" + integrity sha512-KNJSQiTFiA7W5eYCox8bLGM7kghC3Azad86HQhdsYO0jCoPxcgj8MeP6T7fPTIC4WcTwcWb7T1MpzoeBiKMOTQ== + dependencies: + "@aws-sdk/types" "3.303.0" + tslib "^2.5.0" -"@aws-sdk/shared-ini-file-loader@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.296.0.tgz#49ef62821ad19aa674edcd688b2c87b229e20b9a" - integrity sha512-S31VfdiruN2trayoeB7HifsEB+WXhtfECosj90K903rzfyX+Eo+uUoK9O07UotxJ2gB3MBQ7R8pNnZio3Lb66w== +"@aws-sdk/service-error-classification@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.303.0.tgz#31201ca94870cc2ae73e60a2e3c235a0fd79638d" + integrity sha512-eO13PzdtRO9C+g3tyFOpIblX2SbDrIbg2bNtB8JOfjVi3E1b5VsSTXXU/cKV+lbZ9XMzMn3VzGSvpo6AjzfpxA== + +"@aws-sdk/shared-ini-file-loader@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.303.0.tgz#a6ada5fc4df9be84bcd562ba997b8ca93325d0e4" + integrity sha512-yI84mnnh3pdQtIOo+oGWofaI0rvfhp3DOavB8KHIkQr+RcjF+fxsqbelRfVb25gx7yEWPNCMB8wM+HhklSEFJg== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/signature-v4@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.296.0.tgz#15d3a5712cb767cb93be9791f80ace9edcbeb440" - integrity sha512-NQyJ/FClty4VmF1WoV4rOkbN0Unn0zevzy8iJrYhqxE3Sc7lySM4Btnsd4Iqelm2dR6l+jNRApGgD8NvoGjGig== +"@aws-sdk/signature-v4@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.303.0.tgz#7f9e9b65291a8d790d674e1f6126072212149b1d" + integrity sha512-muw5yclLOgXPHIxv60mhO6R0GVjKbf+M6E/cWvIEVGq8Ke+mLMYNFYNdKP/f/8JgTtW2xwQ7pIK3U8x284ZqPw== dependencies: - "@aws-sdk/is-array-buffer" "3.295.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/is-array-buffer" "3.303.0" + "@aws-sdk/types" "3.303.0" "@aws-sdk/util-hex-encoding" "3.295.0" - "@aws-sdk/util-middleware" "3.296.0" - "@aws-sdk/util-uri-escape" "3.295.0" - "@aws-sdk/util-utf8" "3.295.0" + "@aws-sdk/util-middleware" "3.303.0" + "@aws-sdk/util-uri-escape" "3.303.0" + "@aws-sdk/util-utf8" "3.303.0" tslib "^2.5.0" -"@aws-sdk/smithy-client@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.296.0.tgz#8a534da9405ba2144bbf41d27feda91b52407a4b" - integrity sha512-HEpsLNozGe9XOWouq5A1TFw5KhFodi8tZqYVNEbSpLoRR+EQKf6OCRvKIRkOn7FnnaOasOR1n7S0D51UG6/irw== +"@aws-sdk/smithy-client@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.303.0.tgz#bc15c5ca7b917a85895cf5446336c7987bd31a29" + integrity sha512-WDTC9ODdpRAXo8+Mtr5hsPJeR3y3LxfZZFg5dplJgkaxV+MFdnsUCxZfAZMnxcGy5Q2qTzlLLNk9CpadS72v+g== dependencies: - "@aws-sdk/middleware-stack" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/middleware-stack" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/token-providers@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.296.0.tgz#1e9b09e2ace5a469a4c908efdc1c8321e978a367" - integrity sha512-yC1ku7A5S+o/CLlgbgDB2bx8+Wq43qj8xfohmTuIhpiP2m/NyUiRVv6S6ARONLI6bVeo1T2/BFk5Q9DfE2xzAQ== +"@aws-sdk/token-providers@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.303.0.tgz#1b4b8e128785ff3309cfc06bcf1a00692e5ce157" + integrity sha512-7G7VYbqyX0v6RTD/m7XmArZToMek4jYXR/TuuGHK6ifNJeMDwkU4BcoVDj37vvTPYp6qKU5IE+bE3XmPyVWnGQ== + dependencies: + "@aws-sdk/client-sso-oidc" "3.303.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/shared-ini-file-loader" "3.303.0" + "@aws-sdk/types" "3.303.0" + tslib "^2.5.0" + +"@aws-sdk/types@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.303.0.tgz#6ac0e4ea2fec9d82e4e8a18d31f5c4767b222a21" + integrity sha512-H+Cy8JDTsK87MID6MJbV9ad5xdS9YvaLZSeveC2Zs1WNu2Rp6X9j+mg3EqDSmBKUQVAFRy2b+CSKkH3nnBMedw== dependencies: - "@aws-sdk/client-sso-oidc" "3.296.0" - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/shared-ini-file-loader" "3.296.0" - "@aws-sdk/types" "3.296.0" tslib "^2.5.0" -"@aws-sdk/types@3.296.0", "@aws-sdk/types@^3.222.0": +"@aws-sdk/types@^3.222.0": version "3.296.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.296.0.tgz#4de4a7c8e16a97e04a0cedf3c51ce96779a7f686" integrity sha512-s0wIac64rrMEo2ioUxP9IarGiiCGmelCspNcoNTPSjGl25QqjhyfQqTeGgS58qJ4fHoQb07qra39930xp1IzJg== dependencies: tslib "^2.5.0" -"@aws-sdk/url-parser@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.296.0.tgz#d063a1566ac92722cf13e86572e0ca54c33be489" - integrity sha512-nBgeGF+ziuDSLz+y8UAl6zL2tXxDwh3wqeXFe9ZcR4YW71BWuh+vEqEsaEMutOrfnJacCrYKTs9TkIOW41cEGg== +"@aws-sdk/url-parser@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.303.0.tgz#65ff9e7825f7626727d692c38bbd51dc5a21a7a9" + integrity sha512-PXMXGhr89s0MiPTf8Ft/v3sPzh2geSrFhTVSO/01blfBQqtuu0JMqORhLheOdi16AhQNVlYHDW2tWdx7/T+KsA== dependencies: - "@aws-sdk/querystring-parser" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/querystring-parser" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/util-base64@3.295.0": - version "3.295.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.295.0.tgz#99046cac5ab052252f9bd3340dc9c0e7cf483570" - integrity sha512-z1r40BsBiOTALnzASvLb4qutGwPpL+jH2UKTCV5WJLXZFMzRnpZaRfeZGE8lMJ/i0+jv9H9G1FmVzE8UgB4rhw== +"@aws-sdk/util-base64@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.303.0.tgz#653281b7c1abfafc3f7a4c6f3b00d0733a4c455a" + integrity sha512-oj+p/GHHPcZEKjiiOHU/CyNQeh8i+8dfMMzU+VGdoK5jHaVG8h2b+V7GPf7I4wDkG2ySCK5b5Jw5NUHwdTJ13Q== dependencies: - "@aws-sdk/util-buffer-from" "3.295.0" + "@aws-sdk/util-buffer-from" "3.303.0" tslib "^2.5.0" -"@aws-sdk/util-body-length-browser@3.295.0": - version "3.295.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.295.0.tgz#eb0400b7bec4fd5969fe18ce0ddf552db8a2e441" - integrity sha512-NbG4/RSHV1VueStPRclSo5zRjNUmcDlNAs29sniZF+YaN0+Ad7hEdu/YgJw39shBfUaurz2Wv0pufU3cxE5Tng== +"@aws-sdk/util-body-length-browser@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.303.0.tgz#837cd63e59c1fda1d6a657a5c08fff7758ce4dc7" + integrity sha512-T643m0pKzgjAvPFy4W8zL+aszG3T22U8hb6stlMvT0z++Smv8QfIvkIkXjWyH2KlOt5GKliHwdOv8SAi0FSMJQ== dependencies: tslib "^2.5.0" -"@aws-sdk/util-body-length-node@3.295.0": - version "3.295.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.295.0.tgz#587761de7cd79c91ca033de9545527a502e61133" - integrity sha512-dvGf8VBmrT66lM0n6P/h7wnlHS4Atafyivyl8f4TUCMvRdpqryvvrtnX6yYcq3T7VKQmas/2SOlgDvcrhGXaiw== +"@aws-sdk/util-body-length-node@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.303.0.tgz#56c66486a9416e6497227e1ed3618b8bd7a0d710" + integrity sha512-/hS8z6e18Le60hJr2TUIFoUjUiAsnQsuDn6DxX74GXhMOHeSwZDJ9jHF39quYkNMmAE37GrVH4MI9vE0pN27qw== dependencies: tslib "^2.5.0" -"@aws-sdk/util-buffer-from@3.295.0": - version "3.295.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.295.0.tgz#616f0643a205733e03d4b00d1f00ba16b112c5aa" - integrity sha512-5ezVEITQnrQKn+CU9qfZHgRp2nrrbX0Clmlm9aiNjAEQEPHY33tWl0t6n8h8yU+IpGiNRMWBVC4aSJaE5NA1mA== +"@aws-sdk/util-buffer-from@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.303.0.tgz#4ec18ecdf380d3434a80d9f9762264725516651a" + integrity sha512-hUU+NW+SW6RNojtAKnnmz+tDShVKlEx2YsS4a5fSfrKRUes+zWz10cxVX0RQfysd3R6tdSHhbjsSj8eCIybheg== dependencies: - "@aws-sdk/is-array-buffer" "3.295.0" + "@aws-sdk/is-array-buffer" "3.303.0" tslib "^2.5.0" "@aws-sdk/util-config-provider@3.295.0": @@ -631,34 +688,43 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-defaults-mode-browser@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.296.0.tgz#c87fcf217de8b827b2c4f8604eeaa109719741ea" - integrity sha512-R+nzc0PuTMaOG3LV4FoS5W7oMAqqr8G1IyI+A4Q5iem6YDMF157qV5h6wpIt3A8n9YfjyssLsAT/WPfyv/M79w== +"@aws-sdk/util-defaults-mode-browser@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.303.0.tgz#c0bf85c5f8941334ca29b591b86d05eeddf508f4" + integrity sha512-jtZgCKelFe4/SHDHQu9ydbYttxSfqSlQojA5qxTJxLvzryIB+/GTHQ+sYWyMyzaD489W9elt1/cSsXd4LtPK0A== dependencies: - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/types" "3.303.0" bowser "^2.11.0" tslib "^2.5.0" -"@aws-sdk/util-defaults-mode-node@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.296.0.tgz#1c09f936eadc0e82ec519951d4b49c119c6e9b23" - integrity sha512-zsIYynqjBE2xlzpJsT3lb5gy06undSgYq9ziId7QaHFagqtrecHI2ZMcu2tBFcONpu9NPj3nqJB+kJUAnBc8sQ== - dependencies: - "@aws-sdk/config-resolver" "3.296.0" - "@aws-sdk/credential-provider-imds" "3.296.0" - "@aws-sdk/node-config-provider" "3.296.0" - "@aws-sdk/property-provider" "3.296.0" - "@aws-sdk/types" "3.296.0" +"@aws-sdk/util-defaults-mode-node@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.303.0.tgz#951301d11da24876126b6337fccbe65c95837f9c" + integrity sha512-c86iyot/u9bCVcy/rlWL+0kdR51c7C2d2yDXvO9iFCdMKAs28Hw1ijGczVmOcUQ61zKNFSGYx+VekHXN9IWYOg== + dependencies: + "@aws-sdk/config-resolver" "3.303.0" + "@aws-sdk/credential-provider-imds" "3.303.0" + "@aws-sdk/node-config-provider" "3.303.0" + "@aws-sdk/property-provider" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" -"@aws-sdk/util-endpoints@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.296.0.tgz#ed4b77d92bb39b3b80d6e36a1a8a7eb3e7f19cda" - integrity sha512-YraGGLJepXM6HCTaqEGTFf8RFRBdJ0C6uG5k0kVhiXmYxBkeupn8J07CVp9jfWqcPYWElAnMGVEZKU1OjRo4HQ== +"@aws-sdk/util-endpoints@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.303.0.tgz#03b4866faf9bc4302044a309e416e31fc59747bd" + integrity sha512-dPg9+l3VY3nclWFiWAVNWek5lQwgdtY8oRYOgCeyntce9FlNrPQgCRTVr36D0iQ0aNCs0GWzfjgL+rIdCF66/w== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" + tslib "^2.5.0" + +"@aws-sdk/util-format-url@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.303.0.tgz#d5ef3394f5e1bae04c1409102cb11d813ac477f1" + integrity sha512-H4/fSJRaUsadg/cybTxTFCL17mCwkRrA2CLwRA15YebEf8JsBo+y2mCLpaGaN6FDCKkhUqYViTn5duiLqEXIYw== + dependencies: + "@aws-sdk/querystring-builder" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" "@aws-sdk/util-hex-encoding@3.295.0": @@ -675,44 +741,44 @@ dependencies: tslib "^2.3.0" -"@aws-sdk/util-middleware@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.296.0.tgz#cc7162e3c84ae67a16841910244a97c4b0c02bfc" - integrity sha512-MNWU+doVuX+mIehEManP6OP+f08T33qQpHoBqKIeKpn3TjZjMHG7ujACTkJiEOHUrnwTov7h0Sm+3OZwk3kh9w== +"@aws-sdk/util-middleware@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.303.0.tgz#7cb6c5628dad9876fe5fb938163e49e3eab1a24c" + integrity sha512-HAfBcbZw1+pY3dIEDM4jVpH1ViFcGH5s0q1dr+x4rcLGpMM3B4dH0HUgDPtycG8sw+nk+9jGgiEtgaCNOpJLGA== dependencies: tslib "^2.5.0" -"@aws-sdk/util-retry@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.296.0.tgz#271f8bd2d05f5e6e200b5fe9b7aa09ba6e49e0dc" - integrity sha512-0mh7SqOMjuJ4vE423SzA/AfCLM68jykbfpEBkTmfqkpjkeQSW+UXHAUdXsMmfzIneiq7go5Z548F868C3cZnwQ== +"@aws-sdk/util-retry@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.303.0.tgz#e0d08c93347c4d4e684d01b86a1038774f8eece8" + integrity sha512-RWwRNjoWMcpDouz69wPuFXWFVzwYtUkTbJfa46SjKl1IwqMHS4f9yjJfCwJIoLOW9M/o2JB7nD0Ij3gqqzajLw== dependencies: - "@aws-sdk/service-error-classification" "3.296.0" + "@aws-sdk/service-error-classification" "3.303.0" tslib "^2.5.0" -"@aws-sdk/util-uri-escape@3.295.0": - version "3.295.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.295.0.tgz#c8ffb883d5398b3659fbf209391ecbbb1ff5888d" - integrity sha512-1H5DcyIoXF8XcPBWf7wzHt0l+TW2EoR8Oq4gsVrPTQkHMTVclC2Yn8EF3gc4arwVBzwLulI9LMBE2L8fexGfTQ== +"@aws-sdk/util-uri-escape@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.303.0.tgz#3101c27e0bf630fdcb288704d72412f75fa74bb8" + integrity sha512-N3ULNuHCL3QzAlCTY+XRRkRQTYCTU8RRuzFCJX0pDpz9t2K+tLT7DbxqupWGNFGl5Xlulf1Is14J3BP/Dx91rA== dependencies: tslib "^2.5.0" -"@aws-sdk/util-user-agent-browser@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.296.0.tgz#d8050ebaa25bc988ba4bafc11e9e967fdc7e6850" - integrity sha512-MGGG+09VkF0N+8KEht8NNE6Q7bqmddgqLkUbvzSky0y18UPEZyq9LTC4JZtzDDOzf/swgbq2IQ/5wtB81iouog== +"@aws-sdk/util-user-agent-browser@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.303.0.tgz#3e0e9e17d0b6c3702e242ce0d66315d6392167a1" + integrity sha512-Kex3abpUrTX9z129jiI8sfjIUmQDwiWjhkvBkPmrwjFY/sZcnOcXj5nP2iwJ+k6CnA5ZK5PjZ6P62t+eJ5MTXw== dependencies: - "@aws-sdk/types" "3.296.0" + "@aws-sdk/types" "3.303.0" bowser "^2.11.0" tslib "^2.5.0" -"@aws-sdk/util-user-agent-node@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.296.0.tgz#2335b229931cc0b2624f2853d794318eb617c35d" - integrity sha512-AMWac8aIBnaa9nxAEpZ752j29a/UQTViRfR5gnCX38ECBKGfOQMpgYnee5HdlMr4GHJj0WkOzQxBtInW4pV58g== +"@aws-sdk/util-user-agent-node@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.303.0.tgz#318a9e06516ad94df53e6801ccccecfb7f05ab0e" + integrity sha512-QYUg8F/Ho6AsVZaSSRMf/LWoEPDyOwgKZBw3AbKoH6RxAdAsdL1SXz5t4A6jHakP9TLVN2Yw2WRbHDe4LATASQ== dependencies: - "@aws-sdk/node-config-provider" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/node-config-provider" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" "@aws-sdk/util-utf8-browser@^3.0.0": @@ -722,21 +788,21 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-utf8@3.295.0": - version "3.295.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.295.0.tgz#4d855e229ba18ee3893d588f231a8e6c9905389e" - integrity sha512-ITN8v3F63ZkA4sdmCtSbS/mhav4F0MEAiXDAUXtMJLNqVtaVcyQST4i9vNmPpIVthAPAtP0QjyF2tq/Di8bxtQ== +"@aws-sdk/util-utf8@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.303.0.tgz#c6a3caacfc3f5460132379d586dc9c2a08b8f45e" + integrity sha512-tZXVuMOIONPOuOGBs/XRdzxv6jUvTM620dRFFIHZwlGiW8bo0x0LlonrzDAJZA4e9ZwmxJIj8Ji13WVRBGvZWg== dependencies: - "@aws-sdk/util-buffer-from" "3.295.0" + "@aws-sdk/util-buffer-from" "3.303.0" tslib "^2.5.0" -"@aws-sdk/util-waiter@3.296.0": - version "3.296.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.296.0.tgz#5322f03870f5d09421e5ee7901344806864386d3" - integrity sha512-L57uIC74VyTjAdCH0wQqtvJtwK4+gIT/51K/BJHEqVg6C1pOwgrdT6dHC3q8b+gdOrZ6Ff/vTEfh7FZmVcPPjg== +"@aws-sdk/util-waiter@3.303.0": + version "3.303.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.303.0.tgz#7ee51fa6bbbb59fd2bed0284a0624d7fc466f8bc" + integrity sha512-rh1NtjORXAgHyp5GY96cf48Vhhd+t8k/DFKaiuSEkIydcxJABUbNdP/U7EurGMq5kyozyMB2a+cHULeXsh0YFQ== dependencies: - "@aws-sdk/abort-controller" "3.296.0" - "@aws-sdk/types" "3.296.0" + "@aws-sdk/abort-controller" "3.303.0" + "@aws-sdk/types" "3.303.0" tslib "^2.5.0" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": @@ -1207,6 +1273,13 @@ "@types/node" "*" jest-mock "^29.5.0" +"@jest/expect-utils@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== + dependencies: + jest-get-type "^28.0.2" + "@jest/expect-utils@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" @@ -1274,6 +1347,13 @@ strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + dependencies: + "@sinclair/typebox" "^0.24.1" + "@jest/schemas@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" @@ -1331,6 +1411,18 @@ slash "^3.0.0" write-file-atomic "^4.0.2" +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + dependencies: + "@jest/schemas" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@jest/types@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" @@ -1592,11 +1684,23 @@ dependencies: "@octokit/openapi-types" "^16.0.0" +"@sinclair/typebox@^0.24.1": + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== + "@sinclair/typebox@^0.25.16": version "0.25.21" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + "@sinonjs/commons@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" @@ -1611,6 +1715,27 @@ dependencies: "@sinonjs/commons" "^2.0.0" +"@sinonjs/fake-timers@^9.1.2": + version "9.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/samsam@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-7.0.1.tgz#5b5fa31c554636f78308439d220986b9523fc51f" + integrity sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw== + dependencies: + "@sinonjs/commons" "^2.0.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== + "@trivago/prettier-plugin-sort-imports@^4.1.1": version "4.1.1" resolved "https://registry.yarnpkg.com/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.1.1.tgz#71c3c1ae770c3738b6fc85710714844477574ffd" @@ -1746,6 +1871,14 @@ dependencies: "@types/istanbul-lib-report" "*" +"@types/jest@^28.1.3": + version "28.1.8" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" + integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== + dependencies: + expect "^28.0.0" + pretty-format "^28.0.0" + "@types/jest@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.0.tgz#337b90bbcfe42158f39c2fb5619ad044bbb518ac" @@ -1809,6 +1942,18 @@ "@types/mime" "*" "@types/node" "*" +"@types/sinon@^10.0.10": + version "10.0.13" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.13.tgz#60a7a87a70d9372d0b7b38cc03e825f46981fb83" + integrity sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ== + dependencies: + "@types/sinonjs__fake-timers" "*" + +"@types/sinonjs__fake-timers@*": + version "8.1.2" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" + integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== + "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -2011,26 +2156,22 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sdk@^2.1340.0: - version "2.1340.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1340.0.tgz#2a64158bd4f350f85f8063440880b38bd92081ae" - integrity sha512-5amtFHWmJz+x0mKcwKJUBm2nKOJjO0MzzuVhrHFnmDWsUqP1VUsTxENoRdGitwoCH/o+MttLmf1/+lvgkYzbiw== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.16.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - util "^0.12.4" - uuid "8.0.0" - xml2js "0.4.19" +aws-sdk-client-mock-jest@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/aws-sdk-client-mock-jest/-/aws-sdk-client-mock-jest-2.1.1.tgz#95527a21fbc3bebf62edb7ef6d5448436d9df39f" + integrity sha512-z1rpv2ACN1WSGU8u73sJVC0pHPuJfHyITAE88Luz6ph6w47YIkgG0G2latoSmvqJwanv1gJYFk+1VPHJdco1Ig== + dependencies: + "@types/jest" "^28.1.3" + tslib "^2.1.0" + +aws-sdk-client-mock@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/aws-sdk-client-mock/-/aws-sdk-client-mock-2.1.1.tgz#52e5e580fd5654492f9b477153928e373034798e" + integrity sha512-UuxXmICU4nmXTRm2BzLZdXmnyI+5NEBb5McRDkObasXVxXChvLm0Ci/PGENh4sCD+Es64SJiz70mtY48JROk0A== + dependencies: + "@types/sinon" "^10.0.10" + sinon "^14.0.2" + tslib "^2.1.0" babel-jest@^29.5.0: version "29.5.0" @@ -2097,11 +2238,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - before-after-hook@^2.2.0: version "2.2.3" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" @@ -2171,23 +2307,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -2366,6 +2485,11 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== +diff-sequences@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" + integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== + diff-sequences@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" @@ -2376,6 +2500,11 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2574,11 +2703,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -2599,6 +2723,17 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== +expect@^28.0.0: + version "28.1.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== + dependencies: + "@jest/expect-utils" "^28.1.3" + jest-get-type "^28.0.2" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + expect@^29.0.0, expect@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" @@ -2705,13 +2840,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2737,15 +2865,6 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -2806,13 +2925,6 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -2833,18 +2945,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -2862,16 +2962,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -ieee754@1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" @@ -2906,19 +2996,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3: +inherits@2: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2931,11 +3013,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-callable@^1.1.3: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" @@ -2958,13 +3035,6 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -2992,21 +3062,10 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-typed-array@^1.1.10, is-typed-array@^1.1.3: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -isarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isexe@^2.0.0: version "2.0.0" @@ -3140,6 +3199,16 @@ jest-config@^29.5.0: slash "^3.0.0" strip-json-comments "^3.1.1" +jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== + dependencies: + chalk "^4.0.0" + diff-sequences "^28.1.1" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + jest-diff@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" @@ -3180,6 +3249,11 @@ jest-environment-node@^29.5.0: jest-mock "^29.5.0" jest-util "^29.5.0" +jest-get-type@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" + integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== + jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" @@ -3212,6 +3286,16 @@ jest-leak-detector@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" +jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== + dependencies: + chalk "^4.0.0" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + jest-matcher-utils@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" @@ -3222,6 +3306,21 @@ jest-matcher-utils@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-message-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" @@ -3370,6 +3469,18 @@ jest-snapshot@^29.5.0: pretty-format "^29.5.0" semver "^7.3.5" +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + jest-util@^29.0.0, jest-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" @@ -3428,11 +3539,6 @@ jest@^29.5: import-local "^3.0.2" jest-cli "^29.5.0" -jmespath@0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" - integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== - js-sdsl@^4.1.4: version "4.2.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" @@ -3498,6 +3604,11 @@ jsonwebtoken@^9.0.0: ms "^2.1.1" semver "^7.3.8" +just-extend@^4.0.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" + integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== + jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -3552,6 +3663,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -3670,6 +3786,17 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +nise@^5.1.2: + version "5.1.4" + resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" + integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== + dependencies: + "@sinonjs/commons" "^2.0.0" + "@sinonjs/fake-timers" "^10.0.2" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + path-to-regexp "^1.7.0" + nock@^13.3.0: version "13.3.0" resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.0.tgz#b13069c1a03f1ad63120f994b04bfd2556925768" @@ -3805,6 +3932,13 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -3849,6 +3983,16 @@ prettier@2.8.4: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== +pretty-format@^28.0.0, pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== + dependencies: + "@jest/schemas" "^28.1.3" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^18.0.0" + pretty-format@^29.0.0, pretty-format@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" @@ -3871,11 +4015,6 @@ propagate@^2.0.0: resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -3886,11 +4025,6 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c" integrity sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw== -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -3980,16 +4114,6 @@ safe-buffer@^5.0.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -sax@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - integrity sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== - -sax@>=0.6.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - semver@7.x, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" @@ -4019,6 +4143,18 @@ signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +sinon@^14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-14.0.2.tgz#585a81a3c7b22cf950762ac4e7c28eb8b151c46f" + integrity sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w== + dependencies: + "@sinonjs/commons" "^2.0.0" + "@sinonjs/fake-timers" "^9.1.2" + "@sinonjs/samsam" "^7.0.1" + diff "^5.0.0" + nise "^5.1.2" + supports-color "^7.2.0" + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -4128,7 +4264,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -4257,7 +4393,7 @@ tslib@^1.11.1, tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.3.0, tslib@^2.3.1, tslib@^2.5.0: +tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== @@ -4276,7 +4412,7 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@4.0.8: +type-detect@4.0.8, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -4324,30 +4460,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - integrity sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ== - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -util@^0.12.4: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - -uuid@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" - integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== - uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -4387,18 +4499,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-typed-array@^1.1.2: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -4433,19 +4533,6 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -xml2js@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ== - xtend@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"