From 53cefa732b9ca7c199a0cac91151344bec5e6fc5 Mon Sep 17 00:00:00 2001 From: Zach Hammer Date: Wed, 28 Feb 2024 08:38:15 -0500 Subject: [PATCH] feat!(awards): add file storage for award logos (#32) Award logos are now stored via s3 or local filesystem storage. BREAKING CHANGE: Running the awards-backend plugin now requires a `awards.storage.` configuration to run. BREAKING CHANGE: The awards-backend router now requires the following three fields from the plugin environment `{ config: Config, discovery: DiscoveryService, tokenManager: TokenManager }`. (Missed note from #31) --- .gitignore | 2 + app-config.yaml | 4 + plugins/awards-backend/README.md | 31 +- plugins/awards-backend/package.json | 7 + plugins/awards-backend/src/awards.test.ts | 61 +- plugins/awards-backend/src/awards.ts | 96 +- plugins/awards-backend/src/plugin.ts | 6 +- .../awards-backend/src/service/router.test.ts | 101 +- plugins/awards-backend/src/service/router.ts | 96 +- plugins/awards/src/api/AwardsBackendClient.ts | 17 + plugins/awards/src/api/types.ts | 1 + .../AwardEditComponent/AwardEditComponent.tsx | 66 +- .../AwardViewComponent/AwardViewComponent.tsx | 14 +- yarn.lock | 969 +++++++++++++++++- 14 files changed, 1408 insertions(+), 63 deletions(-) diff --git a/.gitignore b/.gitignore index fbf8139..f26efb3 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,5 @@ site # E2E test reports e2e-test-report/ + +packages/backend/tmp-awards-storage diff --git a/app-config.yaml b/app-config.yaml index b847cba..b88d089 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -1,3 +1,7 @@ +awards: + storage: + fs: {} + app: title: SeatGeek Backstage Plugins Demo Site baseUrl: http://127.0.0.1:3000 diff --git a/plugins/awards-backend/README.md b/plugins/awards-backend/README.md index 022d384..d346f54 100644 --- a/plugins/awards-backend/README.md +++ b/plugins/awards-backend/README.md @@ -60,7 +60,36 @@ function makeCreateEnv(config: Config) { ## Configuration -### Slack notifications +### Image storage (required) + +The awards-backend requires storage to be configured for award images. + +### Filesystem + +```yaml +awards: + storage: + fs: + # directory where files will be stored relative to the CWD where the application was started + directory: my-directory # optional: defaults to tmp-awards-storage +``` + +### S3 + +```yaml +awards: + storage: + s3: + bucket: backstage-awards # required + region: us-east-1 # required + # Omit the following fields if using IAM roles (https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/loading-node-credentials-iam.html) + accessKeyId: ${AWS_ACCESS_KEY_ID} # optional + secretAccessKey: ${AWS_SECRET_ACCESS_KEY} # optional + # For local development, pass the endpoint for your localstack server + endpoint: http://127.0.0.1:4566 # optional +``` + +### Slack notifications (optional) To enable Slack notifications, add the following to your `app-config.yaml` file: diff --git a/plugins/awards-backend/package.json b/plugins/awards-backend/package.json index 18de9ab..e538411 100644 --- a/plugins/awards-backend/package.json +++ b/plugins/awards-backend/package.json @@ -23,6 +23,7 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { + "@aws-sdk/client-s3": "^3.521.0", "@backstage/backend-common": "^0.20.1", "@backstage/backend-plugin-api": "^0.6.9", "@backstage/catalog-client": "^1.6.0", @@ -32,9 +33,15 @@ "@backstage/plugin-auth-node": "^0.4.3", "@seatgeek/backstage-plugin-awards-common": "link:*", "@slack/webhook": "^7.0.2", + "@tweedegolf/sab-adapter-amazon-s3": "^1.0.13", + "@tweedegolf/sab-adapter-local": "^1.0.5", + "@tweedegolf/storage-abstraction": "^2.1.1", "@types/express": "*", + "@types/express-fileupload": "^1.4.4", "express": "^4.17.1", + "express-fileupload": "^1.4.3", "express-promise-router": "^4.1.0", + "image-size": "^1.1.1", "knex": "^3.1.0", "lodash": "^4.17.21", "node-fetch": "^2.6.7", diff --git a/plugins/awards-backend/src/awards.test.ts b/plugins/awards-backend/src/awards.test.ts index c015afc..a69e407 100644 --- a/plugins/awards-backend/src/awards.test.ts +++ b/plugins/awards-backend/src/awards.test.ts @@ -3,6 +3,8 @@ * Licensed under the terms of the Apache-2.0 license. See LICENSE file in project root for terms. */ import { Award } from '@seatgeek/backstage-plugin-awards-common'; +import { Storage } from '@tweedegolf/storage-abstraction'; +import { Readable } from 'stream'; import * as winston from 'winston'; import { Awards } from './awards'; import { AwardsStore } from './database/awards'; @@ -10,6 +12,14 @@ import { AwardsNotifier } from './notifier'; const frank = 'user:default/frank-ocean'; +async function streamToString(stream: Readable) { + let result = ''; + for await (const chunk of stream) { + result += chunk; + } + return result; +} + function makeAward(): Award { return { uid: '123456', @@ -24,6 +34,7 @@ function makeAward(): Award { describe('Awards', () => { let db: jest.Mocked; let notifier: jest.Mocked; + let storage: jest.Mocked; let awards: Awards; beforeEach(() => { @@ -36,10 +47,14 @@ describe('Awards', () => { notifier = { notifyNewRecipients: jest.fn(), }; + storage = { + getFileAsStream: jest.fn(), + addFile: jest.fn(), + } as unknown as jest.Mocked; const logger = winston.createLogger({ transports: [new winston.transports.Console({ silent: true })], }); - awards = new Awards(db, notifier, logger); + awards = new Awards(db, notifier, storage, logger); }); afterEach(() => { @@ -109,4 +124,48 @@ describe('Awards', () => { ]); }); }); + + describe('getLogo', () => { + it('should get a logo from storage', async () => { + const key = 'logo.png'; + storage.getFileAsStream = jest.fn().mockResolvedValue({ + value: Readable.from('data'), + }); + const out = await awards.getLogo(key); + + expect(out).not.toBeNull(); + expect(out!.contentType).toEqual('image/png'); + expect(await streamToString(out!.body)).toEqual('data'); + + expect(storage.getFileAsStream).toHaveBeenCalledWith(key); + }); + + it('should fail on an unknown extension type', async () => { + const key = 'logo.wav'; + + await expect(awards.getLogo(key)).rejects.toThrow( + 'Unknown key extension wav', + ); + }); + + it('should fail when missing extension type', async () => { + const key = 'logo'; + + await expect(awards.getLogo(key)).rejects.toThrow( + 'Invalid key, missing extension', + ); + }); + + it('should return null when storage returns null', async () => { + const key = 'logo.png'; + storage.getFileAsStream = jest.fn().mockResolvedValue({ + value: null, + }); + const out = await awards.getLogo(key); + + expect(out).toBeNull(); + + expect(storage.getFileAsStream).toHaveBeenCalledWith(key); + }); + }); }); diff --git a/plugins/awards-backend/src/awards.ts b/plugins/awards-backend/src/awards.ts index 25d655a..f66c2a6 100644 --- a/plugins/awards-backend/src/awards.ts +++ b/plugins/awards-backend/src/awards.ts @@ -4,18 +4,41 @@ */ import { NotFoundError } from '@backstage/errors'; import { Award, AwardInput } from '@seatgeek/backstage-plugin-awards-common'; +import { Storage } from '@tweedegolf/storage-abstraction'; +import sizeOf from 'image-size'; +import { Readable } from 'stream'; +import { v4 as uuid } from 'uuid'; import { Logger } from 'winston'; import { AwardsStore } from './database/awards'; import { AwardsNotifier } from './notifier'; +const extensionByMimetype: Record = { + 'image/png': 'png', + 'image/jpeg': 'jpg', +}; + +const mimetypeByExtension = Object.fromEntries( + Object.entries(extensionByMimetype).map(([mimetype, extension]) => [ + extension, + mimetype, + ]), +); + export class Awards { private readonly db: AwardsStore; private readonly logger: Logger; private readonly notifier: AwardsNotifier; - - constructor(db: AwardsStore, notifier: AwardsNotifier, logger: Logger) { + private readonly storage: Storage; + + constructor( + db: AwardsStore, + notifier: AwardsNotifier, + storage: Storage, + logger: Logger, + ) { this.db = db; this.notifier = notifier; + this.storage = storage; this.logger = logger.child({ class: 'Awards' }); this.logger.debug('Constructed'); } @@ -102,4 +125,73 @@ export class Awards { return res[0]; } + + async uploadLogo(image: Buffer, mimeType: string): Promise { + // validate image + const { width, height } = sizeOf(image); + if (!width || !height) { + throw new Error('Could not read image metadata'); + } + validateAspectRatio(width, height); + validateImageSize(width, height); + validateImageFormat(mimeType); + + // upload image to s3 + const key = `${uuid()}.${extensionByMimetype[mimeType]}`; + const resp = await this.storage.addFile({ + buffer: image, + targetPath: key, + }); + if (resp.error) { + throw new Error(resp.error); + } + return key; + } + + async getLogo( + key: string, + ): Promise<{ body: Readable; contentType: string } | null> { + const parts = key.split('.'); + if (parts.length === 1) { + throw new Error('Invalid key, missing extension'); + } + const extension = parts[parts.length - 1]; + const contentType = mimetypeByExtension[extension]; + if (!contentType) { + throw new Error(`Unknown key extension ${extension}`); + } + + const resp = await this.storage.getFileAsStream(key); + + if (!resp.value) { + return null; + } + + return { + body: resp.value, + contentType: mimetypeByExtension[extension!], + }; + } +} + +function validateAspectRatio(width: number, height: number): void { + if (width / height !== 3) { + throw new Error('Image must have a 3:1 aspect ratio'); + } +} + +function validateImageSize(width: number, _: number): void { + if (width < 100 || width > 1000) { + throw new Error('Image width must be between 100 and 1000 pixels'); + } +} + +function validateImageFormat(mimeType: string): void { + if (!(mimeType in extensionByMimetype)) { + throw new Error( + `Image must be of format [${Object.keys(extensionByMimetype).join( + ', ', + )}], got ${mimeType}`, + ); + } } diff --git a/plugins/awards-backend/src/plugin.ts b/plugins/awards-backend/src/plugin.ts index 613cdca..74a368a 100644 --- a/plugins/awards-backend/src/plugin.ts +++ b/plugins/awards-backend/src/plugin.ts @@ -14,18 +14,18 @@ export const awardsPlugin = createBackendPlugin({ register(env) { env.registerInit({ deps: { + config: coreServices.rootConfig, database: coreServices.database, identity: coreServices.identity, - config: coreServices.rootConfig, logger: coreServices.logger, httpRouter: coreServices.httpRouter, discovery: coreServices.discovery, tokenManager: coreServices.tokenManager, }, async init({ + config, database, identity, - config, logger, httpRouter, discovery, @@ -33,9 +33,9 @@ export const awardsPlugin = createBackendPlugin({ }) { httpRouter.use( await createRouter({ + config, database, identity, - config, logger: loggerToWinstonLogger(logger), discovery, tokenManager, diff --git a/plugins/awards-backend/src/service/router.test.ts b/plugins/awards-backend/src/service/router.test.ts index fbf92cd..bbe6eff 100644 --- a/plugins/awards-backend/src/service/router.test.ts +++ b/plugins/awards-backend/src/service/router.test.ts @@ -8,10 +8,11 @@ import { BackstageIdentityResponse, IdentityApiGetIdentityRequest, } from '@backstage/plugin-auth-node'; +import { StorageType } from '@tweedegolf/storage-abstraction'; import express from 'express'; import { Knex } from 'knex'; import request from 'supertest'; -import { createRouter } from './router'; +import { createRouter, getStorageClient } from './router'; // Good references for this: // https://github.com/backstage/backstage/blob/0c930f8df1f2acb4a0af400e8e31cae354973af4/plugins/tech-insights-backend/src/service/router.test.ts @@ -56,8 +57,17 @@ describe('backend router', () => { const dbm = await createDatabaseManager(); db = await dbm.getClient(); const router = await createRouter({ + config: new ConfigReader({ + awards: { + storage: { + s3: { + region: 'us-east-1', + bucket: 'awards-bucket', + }, + }, + }, + }), logger: getVoidLogger(), - config: new ConfigReader({}), identity: { getIdentity }, database: dbm, discovery: { @@ -87,3 +97,90 @@ describe('backend router', () => { }); }); }); + +describe('getStorageClient', () => { + it('creates a fs storage client', () => { + const config = new ConfigReader({ + awards: { + storage: { + fs: { + directory: 'my-directory', + }, + }, + }, + }); + const storage = getStorageClient(config); + expect(storage.getConfig()).toEqual({ + type: StorageType.LOCAL, + bucketName: 'my-directory', + directory: 'my-directory', + mode: 755, + }); + }); + it('creates an s3 storage client', () => { + const config = new ConfigReader({ + awards: { + storage: { + s3: { + bucket: 'my-bucket', + region: 'us-east-1', + accessKey: 'my-access-key', + secretKey: 'my-secret-key', + endpoint: '127.0.0.1', + }, + }, + }, + }); + + const storage = getStorageClient(config); + expect(storage.getConfig()).toEqual({ + accessKeyId: 'my-access-key', + secretAccessKey: 'my-secret-key', + endpoint: '127.0.0.1', + bucketName: 'my-bucket', + region: 'us-east-1', + type: StorageType.S3, + }); + }); + + it('errors if multiple storage engines provided', () => { + const config = new ConfigReader({ + awards: { + storage: { + s3: {}, + fs: {}, + }, + }, + }); + + expect(() => getStorageClient(config)).toThrow( + /Must specify exactly one storage engine.*/, + ); + }); + + it('errors if no storage engines provided', () => { + const config = new ConfigReader({ + awards: { + storage: {}, + }, + }); + + expect(() => getStorageClient(config)).toThrow( + /Must specify exactly one storage engine.*/, + ); + }); + + it('errors if unknown storage engine provides', () => { + const config = new ConfigReader({ + awards: { + storage: { + carrierPidgeon: {}, + }, + }, + }); + + expect(() => getStorageClient(config)).toThrow( + /Invalid storage engine type.*/, + ); + }); +}); diff --git a/plugins/awards-backend/src/service/router.ts b/plugins/awards-backend/src/service/router.ts index 938c433..8c6a53e 100644 --- a/plugins/awards-backend/src/service/router.ts +++ b/plugins/awards-backend/src/service/router.ts @@ -12,7 +12,9 @@ import { CatalogClient } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { AuthenticationError } from '@backstage/errors'; import { IdentityApi } from '@backstage/plugin-auth-node'; +import { Storage, StorageType } from '@tweedegolf/storage-abstraction'; import express from 'express'; +import fileUpload from 'express-fileupload'; import Router from 'express-promise-router'; import { Logger } from 'winston'; import { Awards } from '../awards'; @@ -29,6 +31,60 @@ export interface RouterOptions { tokenManager: TokenManager; } +function buildS3Adapter(config: Config): Storage { + const region = config.getString('region'); + + // for local dev + const endpoint = config.getOptionalString('endpoint'); + + // credentials + const accessKeyId = config.getOptionalString('accessKey'); + const secretAccessKey = config.getOptionalString('secretKey'); + + // bucket name + const bucketName = config.getString('bucket'); + + return new Storage({ + type: StorageType.S3, + region, + accessKeyId, + secretAccessKey, + endpoint, + bucketName, + }); +} + +function buildFsAdapter(config: Config): Storage { + const directory = + config.getOptionalString('directory') || 'tmp-awards-storage'; + return new Storage({ + type: StorageType.LOCAL, + directory, + bucketName: directory, + mode: 755, + }); +} + +export function getStorageClient(config: Config): Storage { + const storageConfig = config.getConfig('awards.storage'); + if (storageConfig.keys().length !== 1) { + throw new Error( + `Must specify exactly one storage engine in awards.storage, got ${storageConfig.keys()}`, + ); + } + const key = storageConfig.keys()[0]; + switch (key) { + case 's3': + return buildS3Adapter(storageConfig.getConfig('s3')); + case 'fs': + return buildFsAdapter(storageConfig.getConfig('fs')); + default: + throw new Error( + `Invalid storage engine type, valid types are "s3", "fs", got: ${key}`, + ); + } +} + export async function createRouter( options: RouterOptions, ): Promise { @@ -47,11 +103,13 @@ export async function createRouter( notifier.addNotificationsGateway(slack); } const dbStore = await DatabaseAwardsStore.create({ database: database }); + const storage = getStorageClient(config); - const awardsApp = new Awards(dbStore, notifier, logger); + const awardsApp = new Awards(dbStore, notifier, storage, logger); const router = Router(); router.use(express.json()); + router.use(fileUpload()); router.get('/health', (_, response) => { logger.info('PONG!'); @@ -138,6 +196,42 @@ export async function createRouter( response.json(award); }); + router.post('/logos', async (request, response) => { + await getUserRef(identity, request); + + if (!request.files) { + response.status(400).send('No files were uploaded.'); + return; + } + const logo = request.files.file; + if (Array.isArray(logo)) { + response.status(400).send('Must only upload one file.'); + return; + } + + const key = await awardsApp.uploadLogo(logo.data, logo.mimetype); + + const apiUrl = await options.discovery.getExternalBaseUrl('awards'); + response.status(201).json({ + location: `${apiUrl}/logos/${key}`, + }); + }); + + router.get('/logos/:key', async (request, response) => { + const key = request.params.key; + const image = await awardsApp.getLogo(key); + if (!image) { + response.status(404).send('Not found'); + return; + } + + response.setHeader('Content-Type', image.contentType); + image.body.pipe(response); + image.body.on('error', (err: Error) => { + response.status(500).send(err.message); + }); + }); + router.use(errorHandler()); return router; } diff --git a/plugins/awards/src/api/AwardsBackendClient.ts b/plugins/awards/src/api/AwardsBackendClient.ts index d65f838..bf3f66f 100644 --- a/plugins/awards/src/api/AwardsBackendClient.ts +++ b/plugins/awards/src/api/AwardsBackendClient.ts @@ -74,4 +74,21 @@ export class AwardsBackendApi implements AwardsApi { }) .then(res => res.json()); } + + async uploadLogo(file: File): Promise<{ location: string }> { + const url = `${await this.discoveryApi.getBaseUrl('awards')}/logos`; + + const formData = new FormData(); + formData.append('file', file); + + const resp = await this.fetchApi.fetch(url, { + method: 'POST', + body: formData, + }); + if (resp.status !== 201) { + const text = await resp.text(); + throw new Error(`Failed to upload logo: ${text}`); + } + return await resp.json(); + } } diff --git a/plugins/awards/src/api/types.ts b/plugins/awards/src/api/types.ts index b11c190..a5526c8 100644 --- a/plugins/awards/src/api/types.ts +++ b/plugins/awards/src/api/types.ts @@ -16,6 +16,7 @@ export type AwardsApi = { owners: string[], recipients: string[], ) => Promise; + uploadLogo: (file: File) => Promise<{ location: string }>; save: (award: Award) => Promise; delete: (uid: string) => Promise; }; diff --git a/plugins/awards/src/components/AwardEditComponent/AwardEditComponent.tsx b/plugins/awards/src/components/AwardEditComponent/AwardEditComponent.tsx index a476f79..f34209f 100644 --- a/plugins/awards/src/components/AwardEditComponent/AwardEditComponent.tsx +++ b/plugins/awards/src/components/AwardEditComponent/AwardEditComponent.tsx @@ -29,7 +29,7 @@ import DeleteIcon from '@material-ui/icons/Delete'; import Autocomplete from '@mui/material/Autocomplete'; import Stack from '@mui/material/Stack'; import { Award } from '@seatgeek/backstage-plugin-awards-common'; -import { isEmpty, random } from 'lodash'; +import { isEmpty } from 'lodash'; import React, { useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import useAsync from 'react-use/lib/useAsync'; @@ -90,10 +90,7 @@ export const AwardEditCard = ({ award = emptyAward }: AwardEditCardProps) => { const hasRequiredFields = useMemo(() => { return awardName !== '' && awardDescription !== '' && awardImage !== ''; }, [awardName, awardDescription, awardImage]); - - const [allUsers, setAllUsers] = useState(new Array()); - - useAsync(async () => { + const { value: allUsers } = useAsync(async () => { // Fetching all users in the catalog. // TODO: memoize this const entities = await catalogApi.getEntities({ @@ -107,24 +104,8 @@ export const AwardEditCard = ({ award = emptyAward }: AwardEditCardProps) => { }`, }; }); - setAllUsers(users); - - // Initializing a new image - if (isEmpty(award.image)) { - const reader = new FileReader(); - reader.onloadend = () => { - setAwardImage(reader.result?.toString() ?? ''); - }; - - const newImage = `https://picsum.photos/100/50/?original=${random( - 1, - 1000, - )}`; - const response = await fetch(newImage); - const blob = await response.blob(); - reader.readAsDataURL(blob); - } - }, [catalogApi]); + return users; + }); async function saveAward() { try { @@ -184,19 +165,22 @@ export const AwardEditCard = ({ award = emptyAward }: AwardEditCardProps) => { } } - function readFile(file: any) { - const reader = new FileReader(); - reader.onloadend = () => { - setAwardImage(reader.result?.toString() ?? ''); - }; - - reader.readAsDataURL(file); - } - - function handleFile(event: any) { - if (event.files && event.files.length > 0) { - const file = event.files[0]; - readFile(file); + async function handleFileInputChange( + event: React.ChangeEvent, + ) { + if (!(event.target.files && event.target.files.length > 0)) { + return; + } + const file = event.target.files[0]; + try { + const res = await awardsApi.uploadLogo(file); + setAwardImage(res.location); + } catch (e) { + alertApi.post({ + message: String(e), + severity: 'error', + display: 'transient', + }); } } @@ -236,10 +220,10 @@ export const AwardEditCard = ({ award = emptyAward }: AwardEditCardProps) => { /> - Award logo (150x50 px) + Award logo (3:1 aspect ratio) - + option.name} onChange={(__, v) => setAwardOwners(v)} value={awardOwners} @@ -273,7 +257,7 @@ export const AwardEditCard = ({ award = emptyAward }: AwardEditCardProps) => { /> option.name} onChange={(__, v) => setAwardRecipients(v)} value={awardRecipients} diff --git a/plugins/awards/src/components/AwardViewComponent/AwardViewComponent.tsx b/plugins/awards/src/components/AwardViewComponent/AwardViewComponent.tsx index af62a4d..2baefb0 100644 --- a/plugins/awards/src/components/AwardViewComponent/AwardViewComponent.tsx +++ b/plugins/awards/src/components/AwardViewComponent/AwardViewComponent.tsx @@ -8,7 +8,7 @@ import { ResponseErrorPanel, } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; -import { Grid, Typography } from '@material-ui/core'; +import { Typography } from '@material-ui/core'; import { Award } from '@seatgeek/backstage-plugin-awards-common'; import React from 'react'; import useAsync from 'react-use/lib/useAsync'; @@ -21,16 +21,8 @@ interface AwardViewCardProps { export const AwardViewCard = ({ award }: AwardViewCardProps) => { return ( - - - - - - - {award.description} - - - + + {award.description} ); }; diff --git a/yarn.lock b/yarn.lock index 5029d22..9348e8f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -357,6 +357,70 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" +"@aws-sdk/client-s3@^3.503.1", "@aws-sdk/client-s3@^3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.521.0.tgz#a8ff7a5bd5b07903885b0ecd4df15da9f24aac4f" + integrity sha512-txSfcxezAIW72dgRfhX+plc/lMouilY/QFVne/Cv01SL8Tzclcyp7T7LtkV7aSO4Tb9CUScHdqwWOfjZzCm/yQ== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.521.0" + "@aws-sdk/core" "3.521.0" + "@aws-sdk/credential-provider-node" "3.521.0" + "@aws-sdk/middleware-bucket-endpoint" "3.521.0" + "@aws-sdk/middleware-expect-continue" "3.521.0" + "@aws-sdk/middleware-flexible-checksums" "3.521.0" + "@aws-sdk/middleware-host-header" "3.521.0" + "@aws-sdk/middleware-location-constraint" "3.521.0" + "@aws-sdk/middleware-logger" "3.521.0" + "@aws-sdk/middleware-recursion-detection" "3.521.0" + "@aws-sdk/middleware-sdk-s3" "3.521.0" + "@aws-sdk/middleware-signing" "3.521.0" + "@aws-sdk/middleware-ssec" "3.521.0" + "@aws-sdk/middleware-user-agent" "3.521.0" + "@aws-sdk/region-config-resolver" "3.521.0" + "@aws-sdk/signature-v4-multi-region" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@aws-sdk/util-endpoints" "3.521.0" + "@aws-sdk/util-user-agent-browser" "3.521.0" + "@aws-sdk/util-user-agent-node" "3.521.0" + "@aws-sdk/xml-builder" "3.521.0" + "@smithy/config-resolver" "^2.1.2" + "@smithy/core" "^1.3.3" + "@smithy/eventstream-serde-browser" "^2.1.2" + "@smithy/eventstream-serde-config-resolver" "^2.1.2" + "@smithy/eventstream-serde-node" "^2.1.2" + "@smithy/fetch-http-handler" "^2.4.2" + "@smithy/hash-blob-browser" "^2.1.2" + "@smithy/hash-node" "^2.1.2" + "@smithy/hash-stream-node" "^2.1.2" + "@smithy/invalid-dependency" "^2.1.2" + "@smithy/md5-js" "^2.1.2" + "@smithy/middleware-content-length" "^2.1.2" + "@smithy/middleware-endpoint" "^2.4.2" + "@smithy/middleware-retry" "^2.1.2" + "@smithy/middleware-serde" "^2.1.2" + "@smithy/middleware-stack" "^2.1.2" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/node-http-handler" "^2.4.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/url-parser" "^2.1.2" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.2" + "@smithy/util-defaults-mode-node" "^2.2.1" + "@smithy/util-endpoints" "^1.1.2" + "@smithy/util-retry" "^2.1.2" + "@smithy/util-stream" "^2.1.2" + "@smithy/util-utf8" "^2.1.1" + "@smithy/util-waiter" "^2.1.2" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + "@aws-sdk/client-sso-oidc@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.502.0.tgz#f3d151a9185baedcb7f511a1149b65cb2973df30" @@ -447,6 +511,51 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/client-sso-oidc@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.521.0.tgz#455cf62ccc0bba8fabd00f0b540cd9e51a24cd93" + integrity sha512-MhX0CjV/543MR7DRPr3lA4ZDpGGKopp8cyV4EkSGXB7LMN//eFKKDhuZDlpgWU+aFe2A3DIqlNJjqgs08W0cSA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.521.0" + "@aws-sdk/core" "3.521.0" + "@aws-sdk/middleware-host-header" "3.521.0" + "@aws-sdk/middleware-logger" "3.521.0" + "@aws-sdk/middleware-recursion-detection" "3.521.0" + "@aws-sdk/middleware-user-agent" "3.521.0" + "@aws-sdk/region-config-resolver" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@aws-sdk/util-endpoints" "3.521.0" + "@aws-sdk/util-user-agent-browser" "3.521.0" + "@aws-sdk/util-user-agent-node" "3.521.0" + "@smithy/config-resolver" "^2.1.2" + "@smithy/core" "^1.3.3" + "@smithy/fetch-http-handler" "^2.4.2" + "@smithy/hash-node" "^2.1.2" + "@smithy/invalid-dependency" "^2.1.2" + "@smithy/middleware-content-length" "^2.1.2" + "@smithy/middleware-endpoint" "^2.4.2" + "@smithy/middleware-retry" "^2.1.2" + "@smithy/middleware-serde" "^2.1.2" + "@smithy/middleware-stack" "^2.1.2" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/node-http-handler" "^2.4.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/url-parser" "^2.1.2" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.2" + "@smithy/util-defaults-mode-node" "^2.2.1" + "@smithy/util-endpoints" "^1.1.2" + "@smithy/util-middleware" "^2.1.2" + "@smithy/util-retry" "^2.1.2" + "@smithy/util-utf8" "^2.1.1" + tslib "^2.5.0" + "@aws-sdk/client-sso@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.502.0.tgz#8cf21d8f52a5bef65bf7b458051b3f61f7db822c" @@ -533,6 +642,50 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/client-sso@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.521.0.tgz#b28fd6a974f4c6ddca6151df0b7954bbf72dd6d3" + integrity sha512-aEx8kEvWmTwCja6hvIZd5PvxHsI1HQZkckXhw1UrkDPnfcAwQoQAgselI7D+PVT5qQDIjXRm0NpsvBLaLj6jZw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.521.0" + "@aws-sdk/middleware-host-header" "3.521.0" + "@aws-sdk/middleware-logger" "3.521.0" + "@aws-sdk/middleware-recursion-detection" "3.521.0" + "@aws-sdk/middleware-user-agent" "3.521.0" + "@aws-sdk/region-config-resolver" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@aws-sdk/util-endpoints" "3.521.0" + "@aws-sdk/util-user-agent-browser" "3.521.0" + "@aws-sdk/util-user-agent-node" "3.521.0" + "@smithy/config-resolver" "^2.1.2" + "@smithy/core" "^1.3.3" + "@smithy/fetch-http-handler" "^2.4.2" + "@smithy/hash-node" "^2.1.2" + "@smithy/invalid-dependency" "^2.1.2" + "@smithy/middleware-content-length" "^2.1.2" + "@smithy/middleware-endpoint" "^2.4.2" + "@smithy/middleware-retry" "^2.1.2" + "@smithy/middleware-serde" "^2.1.2" + "@smithy/middleware-stack" "^2.1.2" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/node-http-handler" "^2.4.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/url-parser" "^2.1.2" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.2" + "@smithy/util-defaults-mode-node" "^2.2.1" + "@smithy/util-endpoints" "^1.1.2" + "@smithy/util-middleware" "^2.1.2" + "@smithy/util-retry" "^2.1.2" + "@smithy/util-utf8" "^2.1.1" + tslib "^2.5.0" + "@aws-sdk/client-sts@3.502.0", "@aws-sdk/client-sts@^3.350.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.502.0.tgz#975efa09066a25af1c9f47b6e98f241c4445ae63" @@ -623,6 +776,51 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" +"@aws-sdk/client-sts@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.521.0.tgz#d58a2b3c6b0b16c487e41fdcd41df43ec8b56fad" + integrity sha512-f1J5NDbntcwIHJqhks89sQvk7UXPmN0X0BZ2mgpj6pWP+NlPqy+1t1bia8qRhEuNITaEigoq6rqe9xaf4FdY9A== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.521.0" + "@aws-sdk/middleware-host-header" "3.521.0" + "@aws-sdk/middleware-logger" "3.521.0" + "@aws-sdk/middleware-recursion-detection" "3.521.0" + "@aws-sdk/middleware-user-agent" "3.521.0" + "@aws-sdk/region-config-resolver" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@aws-sdk/util-endpoints" "3.521.0" + "@aws-sdk/util-user-agent-browser" "3.521.0" + "@aws-sdk/util-user-agent-node" "3.521.0" + "@smithy/config-resolver" "^2.1.2" + "@smithy/core" "^1.3.3" + "@smithy/fetch-http-handler" "^2.4.2" + "@smithy/hash-node" "^2.1.2" + "@smithy/invalid-dependency" "^2.1.2" + "@smithy/middleware-content-length" "^2.1.2" + "@smithy/middleware-endpoint" "^2.4.2" + "@smithy/middleware-retry" "^2.1.2" + "@smithy/middleware-serde" "^2.1.2" + "@smithy/middleware-stack" "^2.1.2" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/node-http-handler" "^2.4.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/url-parser" "^2.1.2" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.2" + "@smithy/util-defaults-mode-node" "^2.2.1" + "@smithy/util-endpoints" "^1.1.2" + "@smithy/util-middleware" "^2.1.2" + "@smithy/util-retry" "^2.1.2" + "@smithy/util-utf8" "^2.1.1" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + "@aws-sdk/core@3.496.0": version "3.496.0" resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.496.0.tgz#ec1394753b6b2f6e38aea593e30b2db5c7390969" @@ -647,6 +845,18 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/core@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.521.0.tgz#56aaed5714a5145055983f08362c2dfeaf275769" + integrity sha512-KovKmW7yg/P2HVG2dhV2DAJLyoeGelgsnSGHaktXo/josJ3vDGRNqqRSgVaqKFxnD98dPEMLrjkzZumNUNGvLw== + dependencies: + "@smithy/core" "^1.3.3" + "@smithy/protocol-http" "^3.2.0" + "@smithy/signature-v4" "^2.1.1" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-cognito-identity@3.503.1": version "3.503.1" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.503.1.tgz#6bcbbbd964b65d49887fb7aa0638170e13a5117a" @@ -678,6 +888,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-env@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.521.0.tgz#abef98938e0013d4dcc34a546c50e1fd5593a9ca" + integrity sha512-OwblTJNdDAoqYVwcNfhlKDp5z+DINrjBfC6ZjNdlJpTXgxT3IqzuilTJTlydQ+2eG7aXfV9OwTVRQWdCmzFuKA== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-http@3.503.1": version "3.503.1" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.503.1.tgz#e882a4b740c9193650053033b3001b03ca4b12c8" @@ -708,6 +928,21 @@ "@smithy/util-stream" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-http@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.521.0.tgz#a189f2ced504bccedbe57cb911f64a8c1bb77b3c" + integrity sha512-yJM1yNGj2XFH8v6/ffWrFY5nC3/2+8qZ8c4mMMwZru8bYXeuSV4+NNfE59HUWvkAF7xP76u4gr4I8kNrMPTlfg== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/fetch-http-handler" "^2.4.2" + "@smithy/node-http-handler" "^2.4.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/protocol-http" "^3.2.0" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/util-stream" "^2.1.2" + tslib "^2.5.0" + "@aws-sdk/credential-provider-ini@3.503.1": version "3.503.1" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.503.1.tgz#888034b9c47901c76c5d0edc80c331832abcbe1c" @@ -742,6 +977,23 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-ini@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.521.0.tgz#936201cc56ccc50a5a412f97f3a0867e3017d477" + integrity sha512-HuhP1AlKgvBBxUIwxL/2DsDemiuwgbz1APUNSeJhDBF6JyZuxR0NU8zEZkvH9b4ukTcmcKGABpY0Wex4rAh3xw== + dependencies: + "@aws-sdk/client-sts" "3.521.0" + "@aws-sdk/credential-provider-env" "3.521.0" + "@aws-sdk/credential-provider-process" "3.521.0" + "@aws-sdk/credential-provider-sso" "3.521.0" + "@aws-sdk/credential-provider-web-identity" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@smithy/credential-provider-imds" "^2.2.1" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-node@3.503.1", "@aws-sdk/credential-provider-node@^3.350.0": version "3.503.1" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.503.1.tgz#05348bf2bf94120929aa2a6b8548efda6477e985" @@ -778,6 +1030,24 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-node@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.521.0.tgz#b999f382242a5b2ea5b35025f9a7e3b1c0ab6892" + integrity sha512-N9SR4gWI10qh4V2myBcTw8IlX3QpsMMxa4Q8d/FHiAX6eNV7e6irXkXX8o7+J1gtCRy1AtBMqAdGsve4GVqYMQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.521.0" + "@aws-sdk/credential-provider-http" "3.521.0" + "@aws-sdk/credential-provider-ini" "3.521.0" + "@aws-sdk/credential-provider-process" "3.521.0" + "@aws-sdk/credential-provider-sso" "3.521.0" + "@aws-sdk/credential-provider-web-identity" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@smithy/credential-provider-imds" "^2.2.1" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-process@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.502.0.tgz#6c41d8845a1c7073491a064c158363de04640381" @@ -800,6 +1070,17 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-process@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.521.0.tgz#8d163862607bd6ef3ac289ae89b4c7cf2e2f994a" + integrity sha512-EcJjcrpdklxbRAFFgSLk6QGVtvnfZ80ItfZ47VL9LkhWcDAkQ1Oi0esHq+zOgvjb7VkCyD3Q9CyEwT6MlJsriA== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-sso@3.503.1": version "3.503.1" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.503.1.tgz#0d71247cd086d74ba4b9b3dafa562f5227a5bcff" @@ -826,6 +1107,19 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-sso@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.521.0.tgz#d4baf025c60d92dd4f3a27bbfaa83e4289010fcd" + integrity sha512-GAfc0ji+fC2k9VngYM3zsS1J5ojfWg0WUOBzavvHzkhx/O3CqOt82Vfikg3PvemAp9yOgKPMaasTHVeipNLBBQ== + dependencies: + "@aws-sdk/client-sso" "3.521.0" + "@aws-sdk/token-providers" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-web-identity@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.502.0.tgz#d45a8e78578f4613dc62275548a7196c01f5ed17" @@ -848,6 +1142,17 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-web-identity@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.521.0.tgz#a062dead8d50df1601c08d4925628d89584920b8" + integrity sha512-ZPPJqdbPOE4BkdrPrYBtsWg0Zy5b+GY1sbMWLQt0tcISgN5EIoePCS2pGNWnBUmBT+mibMQCVv9fOQpqzRkvAw== + dependencies: + "@aws-sdk/client-sts" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/credential-providers@^3.350.0": version "3.503.1" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.503.1.tgz#4faed6a3f9d9f0581ca04721fadc599e6874b73e" @@ -896,6 +1201,19 @@ "@smithy/util-config-provider" "^2.2.1" tslib "^2.5.0" +"@aws-sdk/middleware-bucket-endpoint@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.521.0.tgz#5d71cd7a73fbab1eac933d79194150b14a85ab39" + integrity sha512-wUPSpzeEGwAic5OJmXQGt1RCbt5KHighZ1ubUeNV67FMPsxaEW+Y0Kd+L0vbbFoQptIui2GqP5JxuROr6J7SjA== + dependencies: + "@aws-sdk/types" "3.521.0" + "@aws-sdk/util-arn-parser" "3.495.0" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/protocol-http" "^3.2.0" + "@smithy/types" "^2.10.0" + "@smithy/util-config-provider" "^2.2.1" + tslib "^2.5.0" + "@aws-sdk/middleware-expect-continue@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.502.0.tgz#fd265571e1f3a4855714fda34252de751fb054dd" @@ -906,6 +1224,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-expect-continue@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.521.0.tgz#22845df7ea4940f836c439e2dbc14c6e055cf343" + integrity sha512-6NBaPS+1b1QbsbJ74KI9MkqWbj8rnY6uKNEo0wkxgA8Q6u0aTn/jV+jrn5ZemdYmfS/y/VbaoY/hE+/QNp5vUw== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/middleware-flexible-checksums@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.502.0.tgz#e4fa059f3c4603bd815f16d69e1c4277c4c4830a" @@ -920,6 +1248,20 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/middleware-flexible-checksums@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.521.0.tgz#375cf8332876dfa83069a2a91c61524db9b0bf88" + integrity sha512-sWNN0wtdwImO2QqN4J1YVTpDhdii6Tp5p8jCkCE1Qe+afQ5u52PeRAS/9U56cJnqM5JLabO4kE10Mm5rufNs2A== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/types" "3.521.0" + "@smithy/is-array-buffer" "^2.1.1" + "@smithy/protocol-http" "^3.2.0" + "@smithy/types" "^2.10.0" + "@smithy/util-utf8" "^2.1.1" + tslib "^2.5.0" + "@aws-sdk/middleware-host-header@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.502.0.tgz#2651fb3509990271c89eb50133fb17cb8ae435f6" @@ -940,6 +1282,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-host-header@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.521.0.tgz#d826a4803c1479935cbc9b05e2399895497e55a1" + integrity sha512-Bc4stnMtVAdqosYI1wedFK9tffclCuwpOK/JA4bxbnvSyP1kz4s1HBVT9OOMzdLRLWLwVj/RslXKfSbzOUP7ug== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/middleware-location-constraint@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.502.0.tgz#188c3bae2e908aff11030af10bc3b64c87905910" @@ -949,6 +1301,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-location-constraint@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.521.0.tgz#bf9446bc8652a25176757123be4864e78bcd9e05" + integrity sha512-XlGst6F3+20mhMVk+te7w8Yvrm9i9JGpgRdxdMN1pnXtGn/aAKF9lFFm4bOu47PR/XHun2PLmKlLnlZd7NAP2Q== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/middleware-logger@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.502.0.tgz#558cefdd233779f15687957f9f07497199b22d72" @@ -967,6 +1328,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-logger@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.521.0.tgz#499d93a1b74dc4f37c508567aff9290449c730bf" + integrity sha512-JJ4nyYvLu3RyyNHo74Rlx6WKxJsAixWCEnnFb6IGRUHvsG+xBGU7HF5koY2log8BqlDLrt4ZUaV/CGy5Dp8Mfg== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/middleware-recursion-detection@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.502.0.tgz#c22e2c0c1d551e58c788264687324bb7186af2cc" @@ -987,6 +1357,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-recursion-detection@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.521.0.tgz#77e2917e8b7040b8f3dacea3f29a65f885c69f98" + integrity sha512-1m5AsC55liTlaYMjc4pIQfjfBHG9LpWgubSl4uUxJSdI++zdA/SRBwXl40p7Ac/y5esweluhWabyiv1g/W4+Xg== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/middleware-sdk-rds@3.511.0": version "3.511.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-rds/-/middleware-sdk-rds-3.511.0.tgz#1c3c858f676832cb47dbe21c9fd230621cb8e4a8" @@ -1015,6 +1395,21 @@ "@smithy/util-config-provider" "^2.2.1" tslib "^2.5.0" +"@aws-sdk/middleware-sdk-s3@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.521.0.tgz#ccf020ba7a8a2bbc1527fc672e9d02c6915e40f2" + integrity sha512-aDeOScfzGGHZ7oEDx+EPzz+JVa8/B88CPeDRaDmO5dFNv2/5PFumHfh0gc6XFl4nJWPPOrJyZ1UYU/9VdDfSyQ== + dependencies: + "@aws-sdk/types" "3.521.0" + "@aws-sdk/util-arn-parser" "3.495.0" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/protocol-http" "^3.2.0" + "@smithy/signature-v4" "^2.1.1" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/util-config-provider" "^2.2.1" + tslib "^2.5.0" + "@aws-sdk/middleware-signing@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.502.0.tgz#48b3503147eecb1a53a63633462de353668f635a" @@ -1041,6 +1436,19 @@ "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/middleware-signing@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.521.0.tgz#87267770454f66d3ea46d12a3cb71b0131b699fa" + integrity sha512-OW1jKeN6Eh3/OItXBtyNRFOv1MuZQBeHpEbywgYwtaqxTGxm9gFj//9wFsCXK4zg1+ghun8iC0buNbyOvCUf9A== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/protocol-http" "^3.2.0" + "@smithy/signature-v4" "^2.1.1" + "@smithy/types" "^2.10.0" + "@smithy/util-middleware" "^2.1.2" + tslib "^2.5.0" + "@aws-sdk/middleware-ssec@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.502.0.tgz#0abdebedd98b284112c2eda36f707111a8a3cbd5" @@ -1050,6 +1458,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-ssec@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.521.0.tgz#5d1e494d04c9c479ece7673ac874ff90d3ba87f1" + integrity sha512-O9vlns8bFxkZA71CyjQbiB2tm3v+925C37Z3wzn9sj2x0FTB3njgSR23w05d8HP2ve1GPuqoVD0T0pa+jG0Zbw== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/middleware-user-agent@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.502.0.tgz#dd740f150d6f3110cf5b08fedf361d202f899c93" @@ -1072,6 +1489,17 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-user-agent@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.521.0.tgz#c2362f97394143d86ba9f5ab9f929d337b18c5ce" + integrity sha512-+hmQjWDG93wCcJn5QY2MkzAL1aG5wl3FJ/ud2nQOu/Gx7d4QVT/B6VJwoG6GSPVuVPZwzne5n9zPVst6RmWJGA== + dependencies: + "@aws-sdk/types" "3.521.0" + "@aws-sdk/util-endpoints" "3.521.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/region-config-resolver@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.502.0.tgz#c18a04060879eb03c47c05b05fc296119ee073ba" @@ -1096,6 +1524,32 @@ "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/region-config-resolver@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.521.0.tgz#a8313f9d7e2df55662418cfb8a04fd055624cb29" + integrity sha512-eC2T62nFgQva9Q0Sqoc9xsYyyH9EN2rJtmUKkWsBMf77atpmajAYRl5B/DzLwGHlXGsgVK2tJdU5wnmpQCEwEQ== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/types" "^2.10.0" + "@smithy/util-config-provider" "^2.2.1" + "@smithy/util-middleware" "^2.1.2" + tslib "^2.5.0" + +"@aws-sdk/s3-request-presigner@^3.503.1": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.521.0.tgz#7d43d149f1eb66d252e22be5cf198c0b69f2f7d3" + integrity sha512-H44naGH2gGPfTC2159wq2MYHA90P0XsSPfT/3gg8xD9mNl59Ylw+S0oQTChlxbHUAxyFI44CVjOUHuUBuugGgA== + dependencies: + "@aws-sdk/signature-v4-multi-region" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@aws-sdk/util-format-url" "3.521.0" + "@smithy/middleware-endpoint" "^2.4.2" + "@smithy/protocol-http" "^3.2.0" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/signature-v4-multi-region@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.502.0.tgz#2d3fab86051eb98a4e4216e0f2f3d957a854b42c" @@ -1108,6 +1562,18 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/signature-v4-multi-region@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.521.0.tgz#74f74de15cc4dc94a42c469dd70c7ca29a69749b" + integrity sha512-JVMGQEE6+MQ5Enc/NDQNw8cmy/soALH/Ky00SVQvrfb9ec4H40eDQbbn/d7lua52UCcvUv1w+Ppk00WzbqDAcQ== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@smithy/protocol-http" "^3.2.0" + "@smithy/signature-v4" "^2.1.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/token-providers@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.502.0.tgz#d477638d5bd0c47c881e63fa6395b238fe4a021c" @@ -1132,6 +1598,18 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/token-providers@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.521.0.tgz#557fa6e5535dc680c8589cca611ac2bd4426a9dd" + integrity sha512-63XxPOn13j87yPWKm6UXOPdMZIMyEyCDJzmlxnIACP8m20S/c6b8xLJ4fE/PUlD0MTKxpFeQbandq5OhnLsWSQ== + dependencies: + "@aws-sdk/client-sso-oidc" "3.521.0" + "@aws-sdk/types" "3.521.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/types@3.502.0", "@aws-sdk/types@^3.222.0", "@aws-sdk/types@^3.347.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.502.0.tgz#c23dda4df7fdbe32642d4f5ab23516f455fb6aba" @@ -1148,6 +1626,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/types@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.521.0.tgz#63696760837a1f505b6ef49a668bbff8c827dd2d" + integrity sha512-H9I3Lut0F9d+kTibrhnTRqDRzhxf/vrDu12FUdTXVZEvVAQ7w9yrVHAZx8j2e8GWegetsQsNitO3KMrj4dA4pw== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/util-arn-parser@3.495.0", "@aws-sdk/util-arn-parser@^3.310.0": version "3.495.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.495.0.tgz#539f2d6dfef343a80324348f1f9a1b7eed2390f3" @@ -1175,6 +1661,16 @@ "@smithy/util-endpoints" "^1.1.1" tslib "^2.5.0" +"@aws-sdk/util-endpoints@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.521.0.tgz#607edd5429ed971ad4d3a0331d335f430a23d555" + integrity sha512-lO5+1LeAZycDqgNjQyZdPSdXFQKXaW5bRuQ3UIT3bOCcUAbDI0BYXlPm1huPNTCEkI9ItnDCbISbV0uF901VXw== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/types" "^2.10.0" + "@smithy/util-endpoints" "^1.1.2" + tslib "^2.5.0" + "@aws-sdk/util-format-url@3.511.0": version "3.511.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.511.0.tgz#7994ef9ea45f4492f312d4c293cf171eb9356cba" @@ -1185,6 +1681,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/util-format-url@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.521.0.tgz#8c6263c2ea141e03997d8c6279b4245744d63456" + integrity sha512-lKERTlx3prKcZynMioubjpZWY5+t6o916MhExAo9+twiTKv1r8dWYH+k/jLMViEcYtPiM9Ces9NX1sTJhzk/yQ== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/querystring-builder" "^2.1.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/util-locate-window@^3.0.0": version "3.495.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz#9034fd8db77991b28ed20e067acdd53e8b8f824b" @@ -1212,6 +1718,16 @@ bowser "^2.11.0" tslib "^2.5.0" +"@aws-sdk/util-user-agent-browser@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.521.0.tgz#20f10df57a5499ace0b955b7b76dccebb530bf1f" + integrity sha512-2t3uW6AXOvJ5iiI1JG9zPqKQDc/TRFa+v13aqT5KKw9h3WHFyRUpd4sFQL6Ul0urrq2Zg9cG4NHBkei3k9lsHA== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/types" "^2.10.0" + bowser "^2.11.0" + tslib "^2.5.0" + "@aws-sdk/util-user-agent-node@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.502.0.tgz#04ac4d0371d4f243f12ddc23b42ca8ceb27dfad9" @@ -1232,6 +1748,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/util-user-agent-node@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.521.0.tgz#5f0337af400037363676e7f45136b0463de412d8" + integrity sha512-g4KMEiyLc8DG21eMrp6fJUdfQ9F0fxfCNMDRgf0SE/pWI/u4vuWR2n8obLwq1pMVx7Ksva1NO3dc+a3Rgr0hag== + dependencies: + "@aws-sdk/types" "3.521.0" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@aws-sdk/util-utf8-browser@^3.0.0": version "3.259.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" @@ -1247,6 +1773,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/xml-builder@3.521.0": + version "3.521.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.521.0.tgz#628d5f38aa17ac5c6da70e10e40e2eef9b517b17" + integrity sha512-ahaG39sgpBN/UOKzOW9Ey6Iuy6tK8vh2D+/tsLFLQ59PXoCvU06xg++TGXKpxsYMJGIzBvZMDC1aBhGmm/HsaA== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@azure/abort-controller@^1.0.0", "@azure/abort-controller@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.1.0.tgz#788ee78457a55af8a1ad342acb182383d2119249" @@ -7501,6 +8035,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/abort-controller@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.1.2.tgz#8d865c28ad0d6a39ed0fdf3c361d0e0d722182e3" + integrity sha512-iwUxrFm/ZFCXhzhtZ6JnoJzAsqUrVfBAZUTQj8ypXGtIjwXZpKqmgYiuqrDERiydDI5gesqvsC4Rqe57GGhbVg== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/chunked-blob-reader-native@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.1.1.tgz#6b98479c8f6ea94832dd6a6e5ca78969a44eafe1" @@ -7527,6 +8069,17 @@ "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" +"@smithy/config-resolver@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.1.2.tgz#68d8e175ba9b1112d74dbfdccd03dfa38b96c718" + integrity sha512-ZDMY63xJVsJl7ei/yIMv9nx8OiEOulwNnQOUDGpIvzoBrcbvYwiMjIMe5mP5J4fUmttKkpiTKwta/7IUriAn9w== + dependencies: + "@smithy/node-config-provider" "^2.2.2" + "@smithy/types" "^2.10.0" + "@smithy/util-config-provider" "^2.2.1" + "@smithy/util-middleware" "^2.1.2" + tslib "^2.5.0" + "@smithy/core@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.3.1.tgz#ecedc564e68453b02c20db9e8435d59005c066d8" @@ -7541,6 +8094,20 @@ "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" +"@smithy/core@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.3.3.tgz#383da328c514fb916041380196df6fc190a5a996" + integrity sha512-8cT/swERvU1EUMuJF914+psSeVy4+NcNhbRe1WEKN1yIMPE5+Tq5EaPq1HWjKCodcdBIyU9ViTjd62XnebXMHA== + dependencies: + "@smithy/middleware-endpoint" "^2.4.2" + "@smithy/middleware-retry" "^2.1.2" + "@smithy/middleware-serde" "^2.1.2" + "@smithy/protocol-http" "^3.2.0" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/util-middleware" "^2.1.2" + tslib "^2.5.0" + "@smithy/credential-provider-imds@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz#4805bf5e104718b959cf8699113fa9de6ddeeafa" @@ -7552,6 +8119,17 @@ "@smithy/url-parser" "^2.1.1" tslib "^2.5.0" +"@smithy/credential-provider-imds@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.2.tgz#58d5e38a8c50ae5119e94c0580421ea65789b13b" + integrity sha512-a2xpqWzhzcYwImGbFox5qJLf6i5HKdVeOVj7d6kVFElmbS2QW2T4HmefRc5z1huVArk9bh5Rk1NiFp9YBCXU3g== + dependencies: + "@smithy/node-config-provider" "^2.2.2" + "@smithy/property-provider" "^2.1.2" + "@smithy/types" "^2.10.0" + "@smithy/url-parser" "^2.1.2" + tslib "^2.5.0" + "@smithy/eventstream-codec@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz#4405ab0f9c77d439c575560c4886e59ee17d6d38" @@ -7562,6 +8140,16 @@ "@smithy/util-hex-encoding" "^2.1.1" tslib "^2.5.0" +"@smithy/eventstream-codec@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.1.2.tgz#b527902b7813c5d9d23fb1351b6e84046f2e00df" + integrity sha512-2PHrVRixITHSOj3bxfZmY93apGf8/DFiyhRh9W0ukfi07cvlhlRonZ0fjgcqryJjUZ5vYHqqmfIE/Qe1HM9mlw== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^2.10.0" + "@smithy/util-hex-encoding" "^2.1.1" + tslib "^2.5.0" + "@smithy/eventstream-serde-browser@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.1.1.tgz#743a374639e9e2dd858b6fda1fd814eb6c604946" @@ -7571,6 +8159,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/eventstream-serde-browser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.1.2.tgz#993f0c92bc0f5fcf734dea1217531f556efe62e6" + integrity sha512-2N11IFHvOmKuwK6hLVkqM8ge8oiQsFkflr4h07LToxo3rX+njkx/5eRn6RVcyNmpbdbxYYt0s0Pf8u+yhHmOKg== + dependencies: + "@smithy/eventstream-serde-universal" "^2.1.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/eventstream-serde-config-resolver@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.1.1.tgz#0b84d6f8be0836af7b92455c69f7427e4f01e7a2" @@ -7579,6 +8176,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/eventstream-serde-config-resolver@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.1.2.tgz#6423b5fb1140448286803dae1d444f3bf96d166e" + integrity sha512-nD/+k3mK+lMMwf2AItl7uWma+edHLqiE6LyIYXYnIBlCJcIQnA/vTHjHFoSJFCfG30sBJnU/7u4X5j/mbs9uKg== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/eventstream-serde-node@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.1.1.tgz#2e1afa27f9c7eb524c1c53621049c5e4e3cea6a5" @@ -7588,6 +8193,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/eventstream-serde-node@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.1.2.tgz#283adddc9898689cd231a0e6efcdf9bdcec81333" + integrity sha512-zNE6DhbwDEWTKl4mELkrdgXBGC7UsFg1LDkTwizSOFB/gd7G7la083wb0JgU+xPt+TYKK0AuUlOM0rUZSJzqeA== + dependencies: + "@smithy/eventstream-serde-universal" "^2.1.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/eventstream-serde-universal@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.1.1.tgz#0f5eec9ad033017973a67bafb5549782499488d2" @@ -7597,6 +8211,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/eventstream-serde-universal@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.1.2.tgz#2ecbe6bffc7a40add81dbee04654c943bb602ec7" + integrity sha512-Upd/zy+dNvvIDPU1HGhW9ivNjvJQ0W4UkkQOzr5Mo0hz2lqnZAyOuit4TK2JAEg/oo+V1gUY4XywDc7zNbCF0g== + dependencies: + "@smithy/eventstream-codec" "^2.1.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/fetch-http-handler@^2.4.1": version "2.4.1" resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz#b4d73bbc1449f61234077d58c705b843a8587bf0" @@ -7608,6 +8231,17 @@ "@smithy/util-base64" "^2.1.1" tslib "^2.5.0" +"@smithy/fetch-http-handler@^2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.2.tgz#5ff26c1ef24c6e1d0acd189f6bc064f110fc446f" + integrity sha512-sIGMVwa/8h6eqNjarI3F07gvML3mMXcqBe+BINNLuKsVKXMNBN6wRzeZbbx7lfiJDEHAP28qRns8flHEoBB7zw== + dependencies: + "@smithy/protocol-http" "^3.2.0" + "@smithy/querystring-builder" "^2.1.2" + "@smithy/types" "^2.10.0" + "@smithy/util-base64" "^2.1.1" + tslib "^2.5.0" + "@smithy/hash-blob-browser@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.1.1.tgz#f4571d4e2fbc2cc1869c443850e5409bf541ba25" @@ -7618,6 +8252,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/hash-blob-browser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.1.2.tgz#0e57a302587f9833e45a036479149990f414cedc" + integrity sha512-f8QHgOVSXeYsc4BLKWdfXRowKa2g9byAkAX5c7Ku89bi9uBquWLEVmKlYXFBlkX562Fkmp2YSeciv+zZuOrIOQ== + dependencies: + "@smithy/chunked-blob-reader" "^2.1.1" + "@smithy/chunked-blob-reader-native" "^2.1.1" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/hash-node@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.1.1.tgz#0f8a22d97565ca948724f72267e4d3a2f33740a8" @@ -7628,6 +8272,16 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@smithy/hash-node@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.1.2.tgz#3dba95fc89d4758cb6189f2029d846677ac1364e" + integrity sha512-3Sgn4s0g4xud1M/j6hQwYCkz04lVJ24wvCAx4xI26frr3Ao6v0o2VZkBpUySTeQbMUBp2DhuzJ0fV1zybzkckw== + dependencies: + "@smithy/types" "^2.10.0" + "@smithy/util-buffer-from" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" + tslib "^2.5.0" + "@smithy/hash-stream-node@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.1.1.tgz#d1885a3bf159872cbb8c9d9f1aefc596ea6cf5db" @@ -7637,6 +8291,15 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@smithy/hash-stream-node@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.1.2.tgz#85f940809bf646e4f7c485c2f23a7b3f04ac0fb3" + integrity sha512-UB6xo+KN3axrLO+MfnWb8mtdeep4vjGUcjYCVFdk9h+OqUb7JYWZZLRcupRPZx28cNBCBEUtc9wVZDI71JDdQA== + dependencies: + "@smithy/types" "^2.10.0" + "@smithy/util-utf8" "^2.1.1" + tslib "^2.5.0" + "@smithy/invalid-dependency@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz#bd69fa24dd35e9bc65a160bd86becdf1399e4463" @@ -7645,6 +8308,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/invalid-dependency@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.2.tgz#45c0b34ca9dee56920b9313d88fa5a9e78c7bf41" + integrity sha512-qdgKhkFYxDJnKecx2ANwz3JRkXjm0qDgEnAs5BIfb2z/XqA2l7s9BTH7GTC/RR4E8h6EDCeb5rM2rnARxviqIg== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/is-array-buffer@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz#07b4c77ae67ed58a84400c76edd482271f9f957b" @@ -7661,6 +8332,15 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@smithy/md5-js@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.1.2.tgz#205253479128980d3313189dd79d23f63ec757a1" + integrity sha512-C/FWR5ooyDNDfc1Opx3n0QFO5p4G0gldIbk2VU9mPGnZVTjzXcWM5jUQp33My5UK305tKYpG5/kZdQSNVh+tLw== + dependencies: + "@smithy/types" "^2.10.0" + "@smithy/util-utf8" "^2.1.1" + tslib "^2.5.0" + "@smithy/middleware-content-length@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz#df767de12d594bc5622009fb0fc8343522697d8c" @@ -7670,6 +8350,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/middleware-content-length@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.2.tgz#c114f955d2b0fd3b61b1068908dd8d87ed070107" + integrity sha512-XEWtul1tHP31EtUIobEyN499paUIbnCTRtjY+ciDCEXW81lZmpjrDG3aL0FxJDPnvatVQuMV1V5eg6MCqTFaLQ== + dependencies: + "@smithy/protocol-http" "^3.2.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/middleware-endpoint@^2.4.1": version "2.4.1" resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz#9e500df4d944741808e92018ccd2e948b598a49f" @@ -7683,6 +8372,19 @@ "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" +"@smithy/middleware-endpoint@^2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.2.tgz#dc229e8ee59e9f73ffd1ab4e020b2fc25cf2e7fd" + integrity sha512-72qbmVwaWcLOd/OT52fszrrlXywPwciwpsRiIk/dIvpcwkpGE9qrYZ2bt/SYcA/ma8Rz9Ni2AbBuSXLDYISS+A== + dependencies: + "@smithy/middleware-serde" "^2.1.2" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/shared-ini-file-loader" "^2.3.2" + "@smithy/types" "^2.10.0" + "@smithy/url-parser" "^2.1.2" + "@smithy/util-middleware" "^2.1.2" + tslib "^2.5.0" + "@smithy/middleware-retry@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz#ddc749dd927f136714f76ca5a52dcfb0993ee162" @@ -7698,6 +8400,21 @@ tslib "^2.5.0" uuid "^8.3.2" +"@smithy/middleware-retry@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.1.2.tgz#39762d83970b0458db3ad3469349d455ac6af4a4" + integrity sha512-tlvSK+v9bPHHb0dLWvEaFW2Iz0IeA57ISvSaso36I33u8F8wYqo5FCvenH7TgMVBx57jyJBXOmYCZa9n5gdJIg== + dependencies: + "@smithy/node-config-provider" "^2.2.2" + "@smithy/protocol-http" "^3.2.0" + "@smithy/service-error-classification" "^2.1.2" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/util-middleware" "^2.1.2" + "@smithy/util-retry" "^2.1.2" + tslib "^2.5.0" + uuid "^8.3.2" + "@smithy/middleware-serde@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz#2c5750f76e276a5249720f6c3c24fac29abbee16" @@ -7706,6 +8423,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/middleware-serde@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.1.2.tgz#15b8258b806ecffd0a4c3fec3e56458cdef7ae66" + integrity sha512-XNU6aVIhlSbjuo2XsfZ7rd4HhjTXDlNWxAmhlBfViTW1TNK02CeWdeEntp5XtQKYD//pyTIbYi35EQvIidAkOw== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/middleware-stack@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz#67f992dc36e8a6861f881f80a81c1c30956a0396" @@ -7714,6 +8439,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/middleware-stack@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.1.2.tgz#17dbb56d85f51cb2c86c13dbad7fca35c843c61c" + integrity sha512-EPGaHGd4XmZcaRYjbhyqiqN/Q/ESxXu5e5TK24CTZUe99y8/XCxmiX8VLMM4H0DI7K3yfElR0wPAAvceoSkTgw== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/node-config-provider@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz#c440c7948d58d72f0e212aa1967aa12f0729defd" @@ -7724,6 +8457,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/node-config-provider@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.2.2.tgz#9422a0764dea8dec4a24f9aa570771d921dc657b" + integrity sha512-QXvpqHSijAm13ZsVkUo92b085UzDvYP1LblWTb3uWi9WilhDvYnVyPLXaryLhOWZ2YvdhK2170T3ZBqtg+quIQ== + dependencies: + "@smithy/property-provider" "^2.1.2" + "@smithy/shared-ini-file-loader" "^2.3.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/node-http-handler@^2.1.7", "@smithy/node-http-handler@^2.3.1": version "2.3.1" resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz#77d23279ff0a12cbe7cde93c5e7c0e86ad56dd20" @@ -7735,6 +8478,17 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/node-http-handler@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.4.0.tgz#21e48aa56ab334eee8afc69bb05f38f3883c3e95" + integrity sha512-Mf2f7MMy31W8LisJ9O+7J5cKiNwBwBBLU6biQ7/sFSFdhuOxPN7hOPoZ8vlaFjvrpfOUJw9YOpjGyNTKuvomOQ== + dependencies: + "@smithy/abort-controller" "^2.1.2" + "@smithy/protocol-http" "^3.2.0" + "@smithy/querystring-builder" "^2.1.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/property-provider@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.1.1.tgz#0f7ffc5e43829eaca5b2b5aae8554807a52b30f3" @@ -7743,6 +8497,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/property-provider@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.1.2.tgz#16c630ae0354c05595c99c6ab70a877ee9a180e4" + integrity sha512-yaXCVFKzxbSXqOoyA7AdAgXhwdjiLeui7n2P6XLjBCz/GZFdLUJgSY6KL1PevaxT4REMwUSs/bSHAe/0jdzEHw== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/protocol-http@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.1.1.tgz#eee522d0ed964a72b735d64925e07bcfb7a7806f" @@ -7751,6 +8513,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/protocol-http@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.2.0.tgz#1b9ed9eb18cd256e0d7872ec2851f5d12ba37d87" + integrity sha512-VRp0YITYIQum+rX4zeZ3cW1wl9r90IQzQN+VLS1NxdSMt6NLsJiJqR9czTxlaeWNrLHsFAETmjmdrS48Ug1liA== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/querystring-builder@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz#b9693448ad3f8e0767d84cf5cae29f35514591fb" @@ -7760,6 +8530,15 @@ "@smithy/util-uri-escape" "^2.1.1" tslib "^2.5.0" +"@smithy/querystring-builder@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.1.2.tgz#78f028c25253e514915247b25c20b3cf0d6a035b" + integrity sha512-wk6QpuvBBLJF5w8aADsZOtxaHY9cF5MZe1Ry3hSqqBxARdUrMoXi/jukUz5W0ftXGlbA398IN8dIIUj3WXqJXg== + dependencies: + "@smithy/types" "^2.10.0" + "@smithy/util-uri-escape" "^2.1.1" + tslib "^2.5.0" + "@smithy/querystring-parser@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz#a4282a66cc56844317dbff824e573f469bbfc032" @@ -7768,6 +8547,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/querystring-parser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.1.2.tgz#3883dfec5760f0f8cdf9acc837bdc631069df576" + integrity sha512-z1yL5Iiagm/UxVy1tcuTFZdfOBK/QtYeK6wfClAJ7cOY7kIaYR6jn1cVXXJmhAQSh1b2ljP4xiZN4Ybj7Tbs5w== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/service-error-classification@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz#dd24e1ec529ae9ec8e87d8b15f0fc8f7e17f3d02" @@ -7775,6 +8562,13 @@ dependencies: "@smithy/types" "^2.9.1" +"@smithy/service-error-classification@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.2.tgz#b8b5c23a784bcb1eb229a921d7040575e29e38ed" + integrity sha512-R+gL1pAPuWkH6unFridk57wDH5PFY2IlVg2NUjSAjoaIaU+sxqKf/7AOWIcx9Bdn+xY0/4IRQ69urlC+F3I9gg== + dependencies: + "@smithy/types" "^2.10.0" + "@smithy/shared-ini-file-loader@^2.3.1": version "2.3.1" resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz#a2e28b4d85f8a8262a84403fa2b74a086b3a7703" @@ -7783,6 +8577,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/shared-ini-file-loader@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.2.tgz#3e4943b534eaabda15372e611cdb428dfdd88362" + integrity sha512-idHGDJB+gBh+aaIjmWj6agmtNWftoyAenErky74hAtKyUaCvfocSBgEJ2pQ6o68svBluvGIj4NGFgJu0198mow== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/signature-v4@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.1.1.tgz#6080171e3d694f40d3f553bbc236c5c433efd4d2" @@ -7809,6 +8611,18 @@ "@smithy/util-stream" "^2.1.1" tslib "^2.5.0" +"@smithy/smithy-client@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.4.0.tgz#f4cef6f63cdc267a32ded8446ca3db0ebb8fe64d" + integrity sha512-6/jxk0om9l2s9BcgHtrBn+Hd3xcFGDzxfEJ2FvGpZxIz0S7bgvZg1gyR66O1xf1w9WZBH+W7JClhfSn2gETINw== + dependencies: + "@smithy/middleware-endpoint" "^2.4.2" + "@smithy/middleware-stack" "^2.1.2" + "@smithy/protocol-http" "^3.2.0" + "@smithy/types" "^2.10.0" + "@smithy/util-stream" "^2.1.2" + tslib "^2.5.0" + "@smithy/types@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.2.0.tgz#9dc65767b0ee3d6681704fcc67665d6fc9b6a34e" @@ -7816,6 +8630,13 @@ dependencies: tslib "^2.5.0" +"@smithy/types@^2.10.0": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.10.0.tgz#1cc16e3c04d56c49ecb88efa1b7fa9ca3a90d667" + integrity sha512-QYXQmpIebS8/jYXgyJjCanKZbI4Rr8tBVGBAIdDhA35f025TVjJNW69FJ0TGiDqt+lIGo037YIswq2t2Y1AYZQ== + dependencies: + tslib "^2.5.0" + "@smithy/types@^2.9.1": version "2.9.1" resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.9.1.tgz#ed04d4144eed3b8bd26d20fc85aae8d6e357ebb9" @@ -7832,6 +8653,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/url-parser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.1.2.tgz#915590d97a7c6beb0dcebc9e9458345cf6bf7f48" + integrity sha512-KBPi740ciTujUaY+RfQuPABD0QFmgSBN5qNVDCGTryfsbG4jkwC0YnElSzi72m24HegMyxzZDLG4Oh4/97mw2g== + dependencies: + "@smithy/querystring-parser" "^2.1.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/util-base64@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.1.1.tgz#af729085cc9d92ebd54a5d2c5d0aa5a0c31f83bf" @@ -7880,6 +8710,17 @@ bowser "^2.11.0" tslib "^2.5.0" +"@smithy/util-defaults-mode-browser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.2.tgz#5f4c328605635656dee624a1686c7616aadccf4d" + integrity sha512-YmojdmsE7VbvFGJ/8btn/5etLm1HOQkgVX6nMWlB0yBL/Vb//s3aTebUJ66zj2+LNrBS3B9S+18+LQU72Yj0AQ== + dependencies: + "@smithy/property-provider" "^2.1.2" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + bowser "^2.11.0" + tslib "^2.5.0" + "@smithy/util-defaults-mode-node@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz#0910ee00aac3e8a08aac3e6ae8794e52f3efef02" @@ -7893,6 +8734,19 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/util-defaults-mode-node@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.2.1.tgz#034918f2f945974e7414c092cb250f2d45fe0ceb" + integrity sha512-kof7M9Q2qP5yaQn8hHJL3KwozyvIfLe+ys7feifSul6gBAAeoraibo/MWqotb/I0fVLMlCMDwn7WXFsGUwnsew== + dependencies: + "@smithy/config-resolver" "^2.1.2" + "@smithy/credential-provider-imds" "^2.2.2" + "@smithy/node-config-provider" "^2.2.2" + "@smithy/property-provider" "^2.1.2" + "@smithy/smithy-client" "^2.4.0" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/util-endpoints@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz#45426dba6fb42282a0ad955600b2b3ba050d118f" @@ -7902,6 +8756,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/util-endpoints@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.1.2.tgz#92f743ac8c2c3a99b1558a1c956864b565aa23e7" + integrity sha512-2/REfdcJ20y9iF+9kSBRBsaoGzjT5dZ3E6/TA45GHJuJAb/vZTj76VLTcrl2iN3fWXiDK1B8RxchaLGbr7RxxA== + dependencies: + "@smithy/node-config-provider" "^2.2.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/util-hex-encoding@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz#978252b9fb242e0a59bae4ead491210688e0d15f" @@ -7917,6 +8780,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/util-middleware@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.1.2.tgz#5e2e13c96e95b65ae5980a658e1b10e222a42482" + integrity sha512-lvSOnwQ7iAajtWb1nAyy0CkOIn8d+jGykQOtt2NXDsPzOTfejZM/Uph+O/TmVgWoXdcGuw5peUMG2f5xEIl6UQ== + dependencies: + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/util-retry@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.1.1.tgz#f2d3566b6e5b841028c7240c852007d4037e49b2" @@ -7926,6 +8797,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/util-retry@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.1.2.tgz#4b7d3ac79ad9a3b3cb01d21d8fe5ea0b99390b90" + integrity sha512-pqifOgRqwLfRu+ks3awEKKqPeYxrHLwo4Yu2EarGzeoarTd1LVEyyf5qLE6M7IiCsxnXRhn9FoWIdZOC+oC/VQ== + dependencies: + "@smithy/service-error-classification" "^2.1.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@smithy/util-stream@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.1.1.tgz#3ae0e88c3a1a45899e29c1655d2e5a3865b6c0a6" @@ -7940,6 +8820,20 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@smithy/util-stream@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.1.2.tgz#c1ab318fa2f14ef044bdec7cb93a9ffc36388f85" + integrity sha512-AbGjvoSok7YeUKv9WRVRSChQfsufLR54YCAabTbaABRdIucywRQs29em0uAP6r4RLj+4aFZStWGYpFgT0P8UlQ== + dependencies: + "@smithy/fetch-http-handler" "^2.4.2" + "@smithy/node-http-handler" "^2.4.0" + "@smithy/types" "^2.10.0" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-buffer-from" "^2.1.1" + "@smithy/util-hex-encoding" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" + tslib "^2.5.0" + "@smithy/util-uri-escape@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz#7eedc93b73ecda68f12fb9cf92e9fa0fbbed4d83" @@ -7964,6 +8858,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/util-waiter@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.1.2.tgz#194f8cbd9c8c7c6e03d57c22eb057fb6f30e0b44" + integrity sha512-yxLC57GBDmbDmrnH+vJxsrbV4/aYUucBONkSRLZyJIVFAl/QJH+O/h+phITHDaxVZCYZAcudYJw4ERE32BJM7g== + dependencies: + "@smithy/abort-controller" "^2.1.2" + "@smithy/types" "^2.10.0" + tslib "^2.5.0" + "@spotify/eslint-config-base@^14.0.0": version "14.1.6" resolved "https://registry.yarnpkg.com/@spotify/eslint-config-base/-/eslint-config-base-14.1.6.tgz#249b25ef683884e12aa0d10fc2783d9361e2890a" @@ -8906,6 +9809,27 @@ "@tufjs/canonical-json" "1.0.0" minimatch "^9.0.0" +"@tweedegolf/sab-adapter-amazon-s3@^1.0.13": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@tweedegolf/sab-adapter-amazon-s3/-/sab-adapter-amazon-s3-1.0.13.tgz#3e0f3d905cf1984929278356ef8af93e44e5e3be" + integrity sha512-mBC9rIl+rdZgEMJZ2KwrYMZy70O+7jWOdG8eKasVk5CJAd8bDSxv1jp6NcmFjvdtLMCJFHMm7wMRRUtcCw2yzA== + dependencies: + "@aws-sdk/client-s3" "^3.503.1" + "@aws-sdk/s3-request-presigner" "^3.503.1" + +"@tweedegolf/sab-adapter-local@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@tweedegolf/sab-adapter-local/-/sab-adapter-local-1.0.5.tgz#693022a20fdc68bba4bd6df91b71bf146656c985" + integrity sha512-xFZLN3zlRvDOLN0J+Gl/XkYAS4Xo0vCZHwdEq6yXdBT8DXLCMKQgzlfirTOakkAEWhxl3HiFSW6rsUtbPHGUVA== + dependencies: + glob "^10.3.10" + rimraf "^5.0.5" + +"@tweedegolf/storage-abstraction@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@tweedegolf/storage-abstraction/-/storage-abstraction-2.1.1.tgz#819309bb56b02574f1fbeb4fbcafe4b1530564f2" + integrity sha512-QNJwFmGHLHerKk8ze+GJuzrKeYMR0xWGuE7z+dN3dU79St6Cdo/eiyObtdnydT1mzJoSsQRqK8HWAKfUheQqaA== + "@types/archiver@^5.3.1": version "5.3.4" resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-5.3.4.tgz#32172d5a56f165b5b4ac902e366248bf03d3ae84" @@ -8976,6 +9900,13 @@ resolved "https://registry.yarnpkg.com/@types/btoa-lite/-/btoa-lite-1.0.2.tgz#82bb6aab00abf7cff3ca2825abe010c0cd536ae5" integrity sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg== +"@types/busboy@*": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@types/busboy/-/busboy-1.5.3.tgz#016c68692c767f0cf9d23c90a85a9c322f92cbc5" + integrity sha512-YMBLFN/xBD8bnqywIlGyYqsNFXu6bsiY7h3Ae0kO17qEuTjsqeyYMRPSUDacIKIquws2Y6KjmxAyNx8xB3xQbw== + dependencies: + "@types/node" "*" + "@types/cacheable-request@^6.0.1": version "6.0.3" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" @@ -9095,6 +10026,14 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/express-fileupload@^1.4.4": + version "1.4.4" + resolved "https://registry.yarnpkg.com/@types/express-fileupload/-/express-fileupload-1.4.4.tgz#14d302687f41fab48a4ef0362ce83958a3a4790c" + integrity sha512-kxCs5oJ40JPhvh3LpxCeGfuSZIl8/6bk85u1YqNcIbfQCmUm3u+Ao1oOiSt/VdbEPs+V3JQg8giqxAyqXlpbWg== + dependencies: + "@types/busboy" "*" + "@types/express" "*" + "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33", "@types/express-serve-static-core@^4.17.5": version "4.17.42" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz#2a276952acc73d1b8dc63fd4210647abbc553a71" @@ -14051,6 +14990,13 @@ exponential-backoff@^3.1.1: resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== +express-fileupload@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.4.3.tgz#32cbb405ba12f541d445838464e081defba4ef61" + integrity sha512-vRzZo2YELm68DfR/CX8RMXgeK9BTAANxigrKACPjCXFGEzkCt/QWbqaIXP3W61uaX/hLj0CAo3/EVelpSQXkqA== + dependencies: + busboy "^1.6.0" + express-openapi-validator@^5.0.4: version "5.1.3" resolved "https://registry.yarnpkg.com/express-openapi-validator/-/express-openapi-validator-5.1.3.tgz#6dd370eb9d9dd98d6cca6711d768d7a99906f5c7" @@ -15023,7 +15969,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^10.2.2, glob@^10.2.7, glob@^10.3.10: +glob@^10.2.2, glob@^10.2.7, glob@^10.3.10, glob@^10.3.7: version "10.3.10" resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== @@ -15824,6 +16770,13 @@ ignore@^5.0.4, ignore@^5.1.4, ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== +image-size@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.1.1.tgz#ddd67d4dc340e52ac29ce5f546a09f4e29e840ac" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== + dependencies: + queue "6.0.2" + immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" @@ -21621,6 +22574,13 @@ queue-tick@^1.0.1: resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + quick-format-unescaped@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz#fb3e468ac64c01d22305806c39f121ddac0d1fb9" @@ -22615,6 +23575,13 @@ rimraf@^4.4.1: dependencies: glob "^9.2.0" +rimraf@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" + integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== + dependencies: + glob "^10.3.7" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"