From 379f4e2acaff7bd848fef1a71c9d3f788accda9e Mon Sep 17 00:00:00 2001 From: Dev Singh Date: Thu, 18 Sep 2025 12:07:50 -0500 Subject: [PATCH 1/5] Setup org metadata POST and audit log writing --- src/api/components/index.ts | 5 +- src/api/plugins/auth.ts | 1 - src/api/routes/organizations.ts | 90 ++++++++++++++++++++++++++++--- src/common/modules.ts | 2 + src/common/types/organizations.ts | 4 +- 5 files changed, 92 insertions(+), 10 deletions(-) diff --git a/src/api/components/index.ts b/src/api/components/index.ts index b2fd19eb..32f3d349 100644 --- a/src/api/components/index.ts +++ b/src/api/components/index.ts @@ -36,6 +36,7 @@ export type RoleSchema = { type RolesConfig = { disableApiKeyAuth: boolean; + notes?: string; }; export function getCorrectJsonSchema({ @@ -193,7 +194,7 @@ export const validationError = getCorrectJsonSchema({ export function withRoles( roles: AppRoles[], schema: T, - { disableApiKeyAuth }: RolesConfig = { disableApiKeyAuth: false }, + { disableApiKeyAuth, notes }: RolesConfig = { disableApiKeyAuth: false }, ): T & RoleSchema { const security = [{ httpBearer: [] }] as any; if (!disableApiKeyAuth) { @@ -231,6 +232,8 @@ ${schema.description} #### Authorization
${roles.length > 0 ? `Requires any of the following roles:\n\n${roles.map((item) => `* ${AppRoleHumanMapper[item]} (${item})`).join("\n")}` : "Requires valid authentication but no specific authorization."} + +${notes ? `${notes}\n` : ""} `, ...schema, response: responses, diff --git a/src/api/plugins/auth.ts b/src/api/plugins/auth.ts index 2e598fef..5f00c346 100644 --- a/src/api/plugins/auth.ts +++ b/src/api/plugins/auth.ts @@ -199,7 +199,6 @@ const authPlugin: FastifyPluginAsync = async (fastify, _options) => { validRoles: AppRoles[], disableApiKeyAuth: boolean, ): Promise> => { - const { redisClient } = fastify; const startTime = new Date().getTime(); try { if (!disableApiKeyAuth) { diff --git a/src/api/routes/organizations.ts b/src/api/routes/organizations.ts index a48ae28c..e6415a0f 100644 --- a/src/api/routes/organizations.ts +++ b/src/api/routes/organizations.ts @@ -12,8 +12,9 @@ import { BaseError, DatabaseFetchError, DatabaseInsertError, + InternalServerError, } from "common/errors/index.js"; -import { getOrgInfo } from "api/functions/organizations.js"; +import { getOrgInfo, getUserOrgRoles } from "api/functions/organizations.js"; import { AppRoles } from "common/roles.js"; import { PutItemCommand, @@ -21,6 +22,8 @@ import { } from "@aws-sdk/client-dynamodb"; import { genericConfig } from "common/config.js"; import { marshall } from "@aws-sdk/util-dynamodb"; +import { buildAuditLogTransactPut } from "api/functions/auditLog.js"; +import { Modules } from "common/modules.js"; export const ORG_DATA_CACHED_DURATION = 300; export const CLIENT_HTTP_CACHE_POLICY = `public, max-age=${ORG_DATA_CACHED_DURATION}, stale-while-revalidate=${Math.floor(ORG_DATA_CACHED_DURATION * 1.1)}, stale-if-error=3600`; @@ -108,11 +111,28 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { }), }, async (request, reply) => { + let isAuthenticated = false; + if (request.headers.authorization) { + try { + await fastify.authorize( + request, + reply, + [AppRoles.ALL_ORG_MANAGER], + false, + ); + isAuthenticated = true; + } catch (e) { + isAuthenticated = false; + } + } const response = await getOrgInfo({ id: request.params.id, dynamoClient: fastify.dynamoClient, logger: request.log, }); + if (!isAuthenticated) { + delete response.leadsEntraGroupId; + } return reply.send(response); }, ); @@ -140,16 +160,72 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { }, }, }), + { + disableApiKeyAuth: false, + notes: + "Authenticated leads of the organization without the appropriate role may also perform this action.", + }, ), - onRequest: fastify.authorizeFromSchema, + onRequest: async (request, reply) => { + // here we check for if you lead the org right now + let originalError = new InternalServerError({ + message: "Failed to authenticate.", + }); + try { + await fastify.authorizeFromSchema(request, reply); + return; + } catch (e) { + if (e instanceof BaseError) { + originalError = e; + } else { + throw e; + } + } + if (!request.username) { + throw originalError; + } + const userRoles = await getUserOrgRoles({ + username: request.username, + dynamoClient: fastify.dynamoClient, + logger: request.log, + }); + for (const role of userRoles) { + if (role.org === request.params.id && role.role === "LEAD") { + return; + } + } + throw originalError; + }, }, async (request, reply) => { try { - const command = new PutItemCommand({ - TableName: genericConfig.SigInfoTableName, - Item: marshall(request.body, { removeUndefinedValues: true }), + const logStatement = buildAuditLogTransactPut({ + entry: { + module: Modules.ORG_INFO, + message: "Updated organization metadata.", + actor: request.username!, + target: request.params.id, + }, + }); + const commandTransaction = new TransactWriteItemsCommand({ + TransactItems: [ + ...(logStatement ? [logStatement] : []), + { + Put: { + TableName: genericConfig.SigInfoTableName, + Item: marshall( + { + ...request.body, + primaryKey: `DEFINE#${request.params.id}`, + entryId: "0", + }, + { removeUndefinedValues: true }, + ), + }, + }, + ], }); - await fastify.dynamoClient.send(command); + await fastify.dynamoClient.send(commandTransaction); } catch (e) { if (e instanceof BaseError) { throw e; @@ -159,7 +235,7 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { message: "Failed to set org information.", }); } - reply.status(201).send(); + return reply.status(201).send(); }, ); }; diff --git a/src/common/modules.ts b/src/common/modules.ts index 155706d0..1c3c9f96 100644 --- a/src/common/modules.ts +++ b/src/common/modules.ts @@ -11,6 +11,7 @@ export enum Modules { API_KEY = "apiKey", ROOM_RESERVATIONS = "roomReservations", EXTERNAL_MEMBERSHIP = "externalMembership", + ORG_INFO = "orgInfo" } @@ -27,4 +28,5 @@ export const ModulesToHumanName: Record = { [Modules.API_KEY]: "API Keys", [Modules.ROOM_RESERVATIONS]: "Room Reservations", [Modules.EXTERNAL_MEMBERSHIP]: "External Membership", + [Modules.ORG_INFO]: "Organization Info & Leads", } diff --git a/src/common/types/organizations.ts b/src/common/types/organizations.ts index 14048752..dd39aabd 100644 --- a/src/common/types/organizations.ts +++ b/src/common/types/organizations.ts @@ -1,4 +1,5 @@ import { AllOrganizationList } from "@acm-uiuc/js-shared"; +import { AppRoleHumanMapper, AppRoles } from "../roles.js"; import { z } from "zod/v4"; @@ -21,7 +22,8 @@ export const getOrganizationInfoResponse = z.object({ description: z.optional(z.string()), website: z.optional(z.url()), leads: z.optional(z.array(orgLeadEntry)), - links: z.optional(z.array(orgLinkEntry)) + links: z.optional(z.array(orgLinkEntry)), + leadsEntraGroupId: z.optional(z.string().min(1)).meta({ description: `Only returned for users with the ${AppRoleHumanMapper[AppRoles.ALL_ORG_MANAGER]} role.` }) }) export const setOrganizationMetaBody = getOrganizationInfoResponse.omit({ id: true, leads: true }); From efad3197942690ba24ab1326a9a7443318122937 Mon Sep 17 00:00:00 2001 From: Dev Singh Date: Fri, 19 Sep 2025 19:25:10 -0500 Subject: [PATCH 2/5] Enable PITR for sig info table --- terraform/modules/dynamo/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/modules/dynamo/main.tf b/terraform/modules/dynamo/main.tf index 6bb42abc..db430de3 100644 --- a/terraform/modules/dynamo/main.tf +++ b/terraform/modules/dynamo/main.tf @@ -308,7 +308,7 @@ resource "aws_dynamodb_table" "sig_info" { hash_key = "primaryKey" range_key = "entryId" point_in_time_recovery { - enabled = false + enabled = true } attribute { name = "primaryKey" From 64e037ea25d8e76b3fc11634e4330be6f4d288be Mon Sep 17 00:00:00 2001 From: Dev Singh Date: Sat, 20 Sep 2025 17:43:08 -0500 Subject: [PATCH 3/5] Support syncing with Entra group ID and Exec groups for add and remove --- src/api/functions/authorization.ts | 76 +++++++- src/api/functions/entraId.ts | 8 + src/api/functions/membership.ts | 43 +++++ src/api/functions/organizations.ts | 265 ++++++++++++++++++++++++- src/api/functions/sqs.ts | 36 ++++ src/api/routes/organizations.ts | 297 +++++++++++++++++++++++++---- src/common/types/organizations.ts | 6 + 7 files changed, 685 insertions(+), 46 deletions(-) create mode 100644 src/api/functions/sqs.ts diff --git a/src/api/functions/authorization.ts b/src/api/functions/authorization.ts index 417ece4d..a19a09d0 100644 --- a/src/api/functions/authorization.ts +++ b/src/api/functions/authorization.ts @@ -1,12 +1,26 @@ import { DynamoDBClient, GetItemCommand } from "@aws-sdk/client-dynamodb"; import { unmarshall } from "@aws-sdk/util-dynamodb"; import { genericConfig } from "../../common/config.js"; -import { DatabaseFetchError } from "../../common/errors/index.js"; -import { allAppRoles, AppRoles } from "../../common/roles.js"; +import { + BaseError, + DatabaseFetchError, + InternalServerError, +} from "../../common/errors/index.js"; +import { + allAppRoles, + AppRoles, + OrgRoleDefinition, +} from "../../common/roles.js"; import type Redis from "ioredis"; import { AUTH_CACHE_PREFIX } from "api/plugins/auth.js"; import type pino from "pino"; -import { type FastifyBaseLogger } from "fastify"; +import { + FastifyInstance, + FastifyReply, + FastifyRequest, + type FastifyBaseLogger, +} from "fastify"; +import { getUserOrgRoles } from "./organizations.js"; export async function getUserRoles( dynamoClient: DynamoDBClient, @@ -91,3 +105,59 @@ export async function clearAuthCache({ logger.debug(`Cleared ${result} auth cache keys.`); return result; } + +type AuthConfig = { + validRoles: OrgRoleDefinition[]; +}; + +/** + * Authorizes a request by checking if the user has at least one of the specified organization roles. + * This function can be used as a preHandler in Fastify routes. + * + * @param fastify The Fastify instance. + * @param request The Fastify request object. + * @param reply The Fastify reply object. + * @param config An object containing an array of valid OrgRoleDefinition instances. + */ +export async function authorizeByOrgRoleOrSchema( + fastify: FastifyInstance, + request: FastifyRequest, + reply: FastifyReply, + config: AuthConfig, +) { + let originalError = new InternalServerError({ + message: "You do not have permission to perform this action.", + }); + + try { + await fastify.authorizeFromSchema(request, reply); + return; + } catch (e) { + if (e instanceof BaseError) { + originalError = e; + } else { + throw e; + } + } + + if (!request.username) { + throw originalError; + } + + const userRoles = await getUserOrgRoles({ + username: request.username, + dynamoClient: fastify.dynamoClient, + logger: request.log, + }); + + const isAuthorized = userRoles.some((userRole) => + config.validRoles.some( + (validRole) => + userRole.org === validRole.org && userRole.role === validRole.role, + ), + ); + + if (!isAuthorized) { + throw originalError; + } +} diff --git a/src/api/functions/entraId.ts b/src/api/functions/entraId.ts index 4e38d36a..2da93c47 100644 --- a/src/api/functions/entraId.ts +++ b/src/api/functions/entraId.ts @@ -292,6 +292,14 @@ export async function modifyGroup( ) { return true; } + if ( + action === EntraGroupActions.REMOVE && + errorData?.error?.message?.includes( + "one of its queried reference-property objects are not present.", + ) + ) { + return true; + } throw new EntraGroupError({ message: errorData?.error?.message ?? response.statusText, group, diff --git a/src/api/functions/membership.ts b/src/api/functions/membership.ts index 60036f61..caf6d173 100644 --- a/src/api/functions/membership.ts +++ b/src/api/functions/membership.ts @@ -355,3 +355,46 @@ export async function setPaidMembership({ return { updated: true }; } + +export async function checkPaidMembership({ + netId, + redisClient, + dynamoClient, + logger, +}: { + netId: string; + redisClient: Redis.Redis; + dynamoClient: DynamoDBClient; + logger: FastifyBaseLogger; +}): Promise { + // 1. Check Redis cache + const isMemberInCache = await checkPaidMembershipFromRedis( + netId, + redisClient, + logger, + ); + + if (isMemberInCache === true) { + return true; + } + + // 2. If cache missed or was negative, query DynamoDB + const isMemberInDB = await checkPaidMembershipFromTable(netId, dynamoClient); + + // 3. If membership is confirmed, update the cache + if (isMemberInDB) { + const cacheKey = `membership:${netId}:acmpaid`; + try { + await redisClient.set( + cacheKey, + JSON.stringify({ isMember: true }), + "EX", + MEMBER_CACHE_SECONDS, + ); + } catch (error) { + logger.error({ err: error, netId }, "Failed to update membership cache"); + } + } + + return isMemberInDB; +} diff --git a/src/api/functions/organizations.ts b/src/api/functions/organizations.ts index 1c3e8938..b01eba97 100644 --- a/src/api/functions/organizations.ts +++ b/src/api/functions/organizations.ts @@ -1,6 +1,10 @@ import { AllOrganizationList } from "@acm-uiuc/js-shared"; -import { QueryCommand, type DynamoDBClient } from "@aws-sdk/client-dynamodb"; -import { unmarshall } from "@aws-sdk/util-dynamodb"; +import { + QueryCommand, + TransactWriteItemsCommand, + type DynamoDBClient, +} from "@aws-sdk/client-dynamodb"; +import { marshall, unmarshall } from "@aws-sdk/util-dynamodb"; import { genericConfig } from "common/config.js"; import { BaseError, @@ -8,10 +12,19 @@ import { ValidationError, } from "common/errors/index.js"; import { OrgRole, orgRoles } from "common/roles.js"; -import { getOrganizationInfoResponse } from "common/types/organizations.js"; +import { + enforcedOrgLeadEntry, + getOrganizationInfoResponse, +} from "common/types/organizations.js"; +import { AvailableSQSFunctions } from "common/types/sqsMessage.js"; +import { getAllUserEmails } from "common/utils.js"; import { type FastifyBaseLogger } from "fastify"; import pino from "pino"; import z from "zod"; +import { modifyGroup } from "./entraId.js"; +import { EntraGroupActions } from "common/types/iam.js"; +import { buildAuditLogTransactPut } from "./auditLog.js"; +import { Modules } from "common/modules.js"; export interface GetOrgInfoInputs { id: string; @@ -25,6 +38,8 @@ export interface GetUserOrgRolesInputs { logger: FastifyBaseLogger | pino.Logger; } +export type SQSMessage = Record; + export async function getOrgInfo({ id, dynamoClient, @@ -153,3 +168,247 @@ export async function getUserOrgRoles({ }); } } + +/** + * Adds a user as a lead, handling DB, Entra sync, and returning an email payload. + * It will only succeed if the user is not already a lead, preventing race conditions. + * @returns SQSMessage payload for email notification, or null if the user is already a lead. + */ +export const addLead = async ({ + user, + orgId, + actorUsername, + reqId, + entraGroupId, + entraIdToken, + dynamoClient, + logger, + execGroupId, + officersEmail, +}: { + user: z.infer; + orgId: string; + actorUsername: string; + reqId: string; + entraGroupId?: string; + entraIdToken: string; + dynamoClient: DynamoDBClient; + logger: FastifyBaseLogger; + execGroupId: string; + officersEmail: string; +}): Promise => { + const { username } = user; + + const addTransaction = new TransactWriteItemsCommand({ + TransactItems: [ + buildAuditLogTransactPut({ + entry: { + module: Modules.ORG_INFO, + actor: actorUsername, + target: username, + message: `Added target as a lead of ${orgId}.`, + }, + })!, + { + Put: { + TableName: genericConfig.SigInfoTableName, + Item: marshall({ + ...user, + primaryKey: `LEAD#${orgId}`, + entryId: username, + updatedAt: new Date().toISOString(), + }), + // This condition ensures the Put operation fails if an item with this primary key already exists. + ConditionExpression: "attribute_not_exists(primaryKey)", + }, + }, + ], + }); + + try { + await dynamoClient.send(addTransaction); + } catch (e: any) { + // This specific error is thrown when a ConditionExpression fails. + if ( + e.name === "TransactionCanceledException" && + e.message.includes("ConditionalCheckFailed") + ) { + logger.info( + `User ${username} is already a lead for ${orgId}. Skipping add operation.`, + ); + return null; // Gracefully exit without erroring. + } + throw e; // Re-throw any other type of error. + } + + logger.info( + `Successfully added ${username} as lead for ${orgId} in DynamoDB.`, + ); + + const promises = [ + modifyGroup( + entraIdToken, + username, + execGroupId, + EntraGroupActions.ADD, + dynamoClient, + ), + ]; + + if (entraGroupId) { + promises.push( + modifyGroup( + entraIdToken, + username, + entraGroupId, + EntraGroupActions.ADD, + dynamoClient, + ), + ); + } + + await Promise.all(promises); + + logger.info(`Successfully added ${username} to ACM Exec Entra group.`); + if (entraGroupId) { + logger.info(`Successfully added ${username} to Entra group for ${orgId}.`); + } + + return { + function: AvailableSQSFunctions.EmailNotifications, + metadata: { initiator: actorUsername, reqId }, + payload: { + to: getAllUserEmails(username), + cc: [officersEmail], + subject: `Lead added for ${orgId}`, + content: `Hello,\n\nWe're letting you know that ${username} has been added as a lead for ${orgId} by ${actorUsername}. Changes may take up to 2 hours to reflect in all systems.\n\nNo action is required from you at this time.`, + }, + }; +}; + +/** + * Removes a user as a lead, handling DB, Entra sync, and returning an email payload. + * It will only succeed if the user is currently a lead, and attempts to avoid race conditions in Exec group management. + * @returns SQSMessage payload for email notification, or null if the user was not a lead. + */ +export const removeLead = async ({ + username, + orgId, + actorUsername, + reqId, + entraGroupId, + entraIdToken, + dynamoClient, + logger, + execGroupId, + officersEmail, +}: { + username: string; + orgId: string; + actorUsername: string; + reqId: string; + entraGroupId?: string; + entraIdToken: string; + dynamoClient: DynamoDBClient; + logger: FastifyBaseLogger; + execGroupId: string; + officersEmail: string; +}): Promise => { + const getDelayed = async () => { + // HACK: wait up to 30ms in an attempt to de-sync the threads on checking leads. + // Yes, I know this is bad. But because of a lack of consistent reads on Dynamo GSIs, + // we're going to have to run with it for now. + const sleepMs = Math.random() * 30; + logger.info(`Sleeping for ${sleepMs}ms before checking.`); + await new Promise((resolve) => setTimeout(resolve, sleepMs)); + return getUserOrgRoles({ username, dynamoClient, logger }); + }; + const userRolesPromise = getDelayed(); + const removeTransaction = new TransactWriteItemsCommand({ + TransactItems: [ + buildAuditLogTransactPut({ + entry: { + module: Modules.ORG_INFO, + actor: actorUsername, + target: username, + message: `Removed target from lead of ${orgId}.`, + }, + })!, + { + Delete: { + TableName: genericConfig.SigInfoTableName, + Key: marshall({ + primaryKey: `LEAD#${orgId}`, + entryId: username, + }), + // Idempotent + ConditionExpression: "attribute_exists(primaryKey)", + }, + }, + ], + }); + + try { + await dynamoClient.send(removeTransaction); + } catch (e: any) { + // This specific error is thrown when a ConditionExpression fails, meaning we do nothing. + if ( + e.name === "TransactionCanceledException" && + e.message.includes("ConditionalCheckFailed") + ) { + logger.info( + `User ${username} was not a lead for ${orgId}. Skipping remove operation.`, + ); + return null; + } + throw e; + } + + logger.info( + `Successfully removed ${username} as lead for ${orgId} in DynamoDB.`, + ); + + if (entraGroupId) { + await modifyGroup( + entraIdToken, + username, + entraGroupId, + EntraGroupActions.REMOVE, + dynamoClient, + ); + logger.info( + `Successfully removed ${username} from Entra group for ${orgId}.`, + ); + } + + const userRoles = await userRolesPromise; + // Since the read is eventually consistent, don't count the role we just removed if it still gets returned. + const otherLeadRoles = userRoles + .filter((x) => x.role === "LEAD") + .filter((x) => x.org !== orgId); + if (otherLeadRoles.length === 0) { + await modifyGroup( + entraIdToken, + username, + execGroupId, + EntraGroupActions.REMOVE, + dynamoClient, + ); + logger.info(`Successfully removed ${username} from ACM Exec Entra group.`); + } else { + logger.info( + `Keeping ${username} in ACM Exec Entra group as they lead: ${JSON.stringify(otherLeadRoles.map((x) => x.org))}.`, + ); + } + + return { + function: AvailableSQSFunctions.EmailNotifications, + metadata: { initiator: actorUsername, reqId }, + payload: { + to: getAllUserEmails(username), + cc: [officersEmail], + subject: `Lead removed for ${orgId}`, + content: `Hello,\n\nWe're letting you know that ${username} has been removed as a lead for ${orgId} by ${actorUsername}.\n\nNo action is required from you at this time.`, + }, + }; +}; diff --git a/src/api/functions/sqs.ts b/src/api/functions/sqs.ts new file mode 100644 index 00000000..e38d824c --- /dev/null +++ b/src/api/functions/sqs.ts @@ -0,0 +1,36 @@ +import { SendMessageBatchCommand, SQSClient } from "@aws-sdk/client-sqs"; +import { randomUUID } from "crypto"; +import { FastifyBaseLogger } from "fastify"; + +interface SendBatchesParams { + sqsClient: SQSClient; + queueUrl: string; + sqsPayloads: Record; + logger: FastifyBaseLogger; +} + +export async function sendSqsMessagesInBatches({ + sqsClient, + sqsPayloads, + logger, + queueUrl, +}: SendBatchesParams) { + if (!sqsPayloads || sqsPayloads.length === 0) { + return; + } + + logger.debug(`Sending ${sqsPayloads.length} messages.`); + for (let i = 0; i < sqsPayloads.length; i += 10) { + const chunk = sqsPayloads.slice(i, i + 10); + await sqsClient.send( + new SendMessageBatchCommand({ + QueueUrl: queueUrl, + Entries: chunk.map((payload: any) => ({ + Id: randomUUID(), + MessageBody: JSON.stringify(payload), + })), + }), + ); + } + logger.info(`Finished sending ${sqsPayloads.length} messages.`); +} diff --git a/src/api/routes/organizations.ts b/src/api/routes/organizations.ts index e6415a0f..63d69a1f 100644 --- a/src/api/routes/organizations.ts +++ b/src/api/routes/organizations.ts @@ -5,6 +5,7 @@ import { withRoles, withTags } from "api/components/index.js"; import { z } from "zod/v4"; import { getOrganizationInfoResponse, + patchOrganizationLeadsBody, setOrganizationMetaBody, } from "common/types/organizations.js"; import { FastifyZodOpenApiTypeProvider } from "fastify-zod-openapi"; @@ -13,17 +14,37 @@ import { DatabaseFetchError, DatabaseInsertError, InternalServerError, + ValidationError, } from "common/errors/index.js"; -import { getOrgInfo, getUserOrgRoles } from "api/functions/organizations.js"; +import { + addLead, + getOrgInfo, + removeLead, + SQSMessage, +} from "api/functions/organizations.js"; import { AppRoles } from "common/roles.js"; import { - PutItemCommand, + DynamoDBClient, + GetItemCommand, TransactWriteItemsCommand, } from "@aws-sdk/client-dynamodb"; -import { genericConfig } from "common/config.js"; -import { marshall } from "@aws-sdk/util-dynamodb"; +import { + execCouncilGroupId, + execCouncilTestingGroupId, + genericConfig, + notificationRecipients, + roleArns, +} from "common/config.js"; +import { marshall, unmarshall } from "@aws-sdk/util-dynamodb"; import { buildAuditLogTransactPut } from "api/functions/auditLog.js"; import { Modules } from "common/modules.js"; +import { authorizeByOrgRoleOrSchema } from "api/functions/authorization.js"; +import { checkPaidMembership } from "api/functions/membership.js"; +import { getEntraIdToken } from "api/functions/entraId.js"; +import { SecretsManagerClient } from "@aws-sdk/client-secrets-manager"; +import { getRoleCredentials } from "api/functions/sts.js"; +import { SQSClient } from "@aws-sdk/client-sqs"; +import { sendSqsMessagesInBatches } from "api/functions/sqs.js"; export const ORG_DATA_CACHED_DURATION = 300; export const CLIENT_HTTP_CACHE_POLICY = `public, max-age=${ORG_DATA_CACHED_DURATION}, stale-while-revalidate=${Math.floor(ORG_DATA_CACHED_DURATION * 1.1)}, stale-if-error=3600`; @@ -34,12 +55,47 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { duration: 60, rateLimitIdentifier: "organizations", }); + fastify.addHook("onSend", async (request, reply, payload) => { if (request.method === "GET") { reply.header("Cache-Control", CLIENT_HTTP_CACHE_POLICY); } return payload; }); + + const getAuthorizedClients = async () => { + if (roleArns.Entra) { + fastify.log.info( + `Attempting to assume Entra role ${roleArns.Entra} to get the Entra token...`, + ); + const credentials = await getRoleCredentials(roleArns.Entra); + const clients = { + smClient: new SecretsManagerClient({ + region: genericConfig.AwsRegion, + credentials, + }), + dynamoClient: new DynamoDBClient({ + region: genericConfig.AwsRegion, + credentials, + }), + redisClient: fastify.redisClient, + }; + fastify.log.info( + `Assumed Entra role ${roleArns.Entra} to get the Entra token.`, + ); + return clients; + } + fastify.log.debug( + "Did not assume Entra role as no env variable was present", + ); + return { + smClient: fastify.secretsManagerClient, + dynamoClient: fastify.dynamoClient, + redisClient: fastify.redisClient, + }; + }; + + // Omitting GET and POST routes for brevity as they are unchanged... fastify.withTypeProvider().get( "", { @@ -58,6 +114,20 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { }), }, async (request, reply) => { + let isAuthenticated = false; + if (request.headers.authorization) { + try { + await fastify.authorize( + request, + reply, + [AppRoles.ALL_ORG_MANAGER], + false, + ); + isAuthenticated = true; + } catch (e) { + isAuthenticated = false; + } + } const promises = AllOrganizationList.map((x) => getOrgInfo({ id: x, @@ -67,11 +137,17 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { ); try { const data = await Promise.allSettled(promises); - const successOnly = data + let successOnly = data .filter((x) => x.status === "fulfilled") .map((x) => x.value); // return just the ID for anything not in the DB. const successIds = successOnly.map((x) => x.id); + if (!isAuthenticated) { + successOnly = successOnly.map((x) => ({ + ...x, + leadsEntraGroupId: undefined, + })); + } const unknownIds = AllOrganizationList.filter( (x) => !successIds.includes(x), ).map((x) => ({ id: x })); @@ -88,13 +164,13 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { }, ); fastify.withTypeProvider().get( - "/:id", + "/:orgId", { schema: withTags(["Organizations"], { summary: "Get information about a specific ACM @ UIUC sub-organization.", params: z.object({ - id: z + orgId: z .enum(AllOrganizationList) .meta({ description: "ACM @ UIUC organization to query." }), }), @@ -126,25 +202,25 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { } } const response = await getOrgInfo({ - id: request.params.id, + id: request.params.orgId, dynamoClient: fastify.dynamoClient, logger: request.log, }); if (!isAuthenticated) { - delete response.leadsEntraGroupId; + return reply.send({ ...response, leadsEntraGroupId: undefined }); } return reply.send(response); }, ); fastify.withTypeProvider().post( - "/:id/meta", + "/:orgId/meta", { schema: withRoles( [AppRoles.ALL_ORG_MANAGER], withTags(["Organizations"], { summary: "Set metadata for an ACM @ UIUC sub-organization.", params: z.object({ - id: z + orgId: z .enum(AllOrganizationList) .meta({ description: "ACM @ UIUC organization to modify." }), }), @@ -167,34 +243,9 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { }, ), onRequest: async (request, reply) => { - // here we check for if you lead the org right now - let originalError = new InternalServerError({ - message: "Failed to authenticate.", + authorizeByOrgRoleOrSchema(fastify, request, reply, { + validRoles: [{ org: request.params.orgId, role: "LEAD" }], }); - try { - await fastify.authorizeFromSchema(request, reply); - return; - } catch (e) { - if (e instanceof BaseError) { - originalError = e; - } else { - throw e; - } - } - if (!request.username) { - throw originalError; - } - const userRoles = await getUserOrgRoles({ - username: request.username, - dynamoClient: fastify.dynamoClient, - logger: request.log, - }); - for (const role of userRoles) { - if (role.org === request.params.id && role.role === "LEAD") { - return; - } - } - throw originalError; }, }, async (request, reply) => { @@ -204,7 +255,7 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { module: Modules.ORG_INFO, message: "Updated organization metadata.", actor: request.username!, - target: request.params.id, + target: request.params.orgId, }, }); const commandTransaction = new TransactWriteItemsCommand({ @@ -216,8 +267,9 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { Item: marshall( { ...request.body, - primaryKey: `DEFINE#${request.params.id}`, + primaryKey: `DEFINE#${request.params.orgId}`, entryId: "0", + updatedAt: new Date().toISOString(), }, { removeUndefinedValues: true }, ), @@ -238,6 +290,171 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { return reply.status(201).send(); }, ); + + fastify.withTypeProvider().patch( + "/:orgId/leads", + { + schema: withRoles( + [AppRoles.ALL_ORG_MANAGER], + withTags(["Organizations"], { + summary: "Set leads for an ACM @ UIUC sub-organization.", + params: z.object({ + orgId: z + .enum(AllOrganizationList) + .meta({ description: "ACM @ UIUC organization to modify." }), + }), + body: patchOrganizationLeadsBody, + response: { + 201: { + description: "The information was saved.", + content: { "application/json": { schema: z.null() } }, + }, + }, + }), + { + disableApiKeyAuth: false, + notes: + "Authenticated leads of the organization without the appropriate role may also perform this action.", + }, + ), + onRequest: async (request, reply) => { + authorizeByOrgRoleOrSchema(fastify, request, reply, { + validRoles: [{ org: request.params.orgId, role: "LEAD" }], + }); + }, + }, + async (request, reply) => { + const { add, remove } = request.body; + const allUsernames = [...add.map((u) => u.username), ...remove]; + const execGroupId = + fastify.runEnvironment === "dev" + ? execCouncilTestingGroupId + : execCouncilGroupId; + const officersEmail = + notificationRecipients[fastify.runEnvironment].OfficerBoard; + + if (new Set(allUsernames).size !== allUsernames.length) { + throw new ValidationError({ + message: "Each user can only be specified once.", + }); + } + + // Check paid membership for all potential new members before proceeding. + if (add.length > 0) { + try { + const paidMemberships = await Promise.all( + add.map((u) => + checkPaidMembership({ + netId: u.username.replace("@illinois.edu", ""), + logger: request.log, + dynamoClient: fastify.dynamoClient, + redisClient: fastify.redisClient, + }), + ), + ); + if (paidMemberships.some((p) => !p)) { + throw new ValidationError({ + message: + "One or more of the requested users to add are not ACM paid members.", + }); + } + } catch (e) { + if (e instanceof BaseError) { + throw e; + } + request.log.error(e); + throw new InternalServerError({ + message: "Failed to check paid membership status.", + }); + } + } + + const getMetadataCommand = new GetItemCommand({ + TableName: genericConfig.SigInfoTableName, + Key: marshall({ + primaryKey: `DEFINE#${request.params.orgId}`, + entryId: "0", + }), + AttributesToGet: ["leadsEntraGroupId"], + }); + + const [metadataResponse, clients] = await Promise.all([ + fastify.dynamoClient.send(getMetadataCommand), + getAuthorizedClients(), + ]); + + const entraGroupId = metadataResponse.Item + ? unmarshall(metadataResponse.Item).leadsEntraGroupId + : undefined; + const entraIdToken = await getEntraIdToken({ + clients, + clientId: fastify.environmentConfig.AadValidClientId, + secretName: genericConfig.EntraSecretName, + logger: request.log, + }); + + const commonArgs = { + orgId: request.params.orgId, + actorUsername: request.username!, + reqId: request.id, + entraGroupId, + entraIdToken, + dynamoClient: fastify.dynamoClient, + logger: request.log, + execGroupId, + officersEmail, + }; + + // Attempt to add and remove all users specified in the request body. + const addPromises = add.map((user) => addLead({ ...commonArgs, user })); + const removePromises = remove.map((username) => + removeLead({ ...commonArgs, username }), + ); + + const results = await Promise.allSettled([ + ...addPromises, + ...removePromises, + ]); + + const failures = results.filter((r) => r.status === "rejected"); + if (failures.length > 0) { + failures.forEach((f) => + request.log.error( + (f as PromiseRejectedResult).reason, + "Failed to update an org lead.", + ), + ); + throw new InternalServerError({ + message: + "A partial failure occurred while updating organization leads.", + }); + } + + const sqsPayloads = results + .filter( + (r): r is PromiseFulfilledResult => + r.status === "fulfilled", + ) + .map((r) => r.value) + .filter((p): p is SQSMessage => p !== null); + + if (sqsPayloads.length > 0) { + if (!fastify.sqsClient) { + fastify.sqsClient = new SQSClient({ + region: genericConfig.AwsRegion, + }); + } + await sendSqsMessagesInBatches({ + sqsClient: fastify.sqsClient, + queueUrl: fastify.environmentConfig.SqsQueueUrl, + logger: request.log, + sqsPayloads, + }); + } + + return reply.status(201).send(); + }, + ); }; export default organizationsPlugin; diff --git a/src/common/types/organizations.ts b/src/common/types/organizations.ts index dd39aabd..8cde314f 100644 --- a/src/common/types/organizations.ts +++ b/src/common/types/organizations.ts @@ -16,6 +16,8 @@ export const orgLinkEntry = z.object({ url: z.url() }) +export const enforcedOrgLeadEntry = orgLeadEntry.extend({ name: z.string().min(1), title: z.string().min(1) }) + export const getOrganizationInfoResponse = z.object({ id: z.enum(AllOrganizationList), @@ -27,3 +29,7 @@ export const getOrganizationInfoResponse = z.object({ }) export const setOrganizationMetaBody = getOrganizationInfoResponse.omit({ id: true, leads: true }); +export const patchOrganizationLeadsBody = z.object({ + add: z.array(enforcedOrgLeadEntry), + remove: z.array(z.string()) +}); From 2c7ae3d7c2f981c82eadcfd4d27558fea4f6dda3 Mon Sep 17 00:00:00 2001 From: Dev Singh Date: Wed, 24 Sep 2025 14:32:55 -0500 Subject: [PATCH 4/5] Add unit tests --- src/api/routes/organizations.ts | 4 +- tests/unit/organizations.test.ts | 574 ++++++++++++++++++++++++------- tests/unit/vitest.setup.ts | 10 + 3 files changed, 466 insertions(+), 122 deletions(-) diff --git a/src/api/routes/organizations.ts b/src/api/routes/organizations.ts index 63d69a1f..6f041871 100644 --- a/src/api/routes/organizations.ts +++ b/src/api/routes/organizations.ts @@ -243,7 +243,7 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { }, ), onRequest: async (request, reply) => { - authorizeByOrgRoleOrSchema(fastify, request, reply, { + await authorizeByOrgRoleOrSchema(fastify, request, reply, { validRoles: [{ org: request.params.orgId, role: "LEAD" }], }); }, @@ -318,7 +318,7 @@ const organizationsPlugin: FastifyPluginAsync = async (fastify, _options) => { }, ), onRequest: async (request, reply) => { - authorizeByOrgRoleOrSchema(fastify, request, reply, { + await authorizeByOrgRoleOrSchema(fastify, request, reply, { validRoles: [{ org: request.params.orgId, role: "LEAD" }], }); }, diff --git a/tests/unit/organizations.test.ts b/tests/unit/organizations.test.ts index eddb3aa7..2c0373cb 100644 --- a/tests/unit/organizations.test.ts +++ b/tests/unit/organizations.test.ts @@ -1,21 +1,51 @@ -import { afterAll, expect, test, beforeEach } from "vitest"; +import { afterAll, expect, test, beforeEach, vi, describe } from "vitest"; +import init from "../../src/api/index.js"; +import { mockClient } from "aws-sdk-client-mock"; import { DynamoDBClient, GetItemCommand, QueryCommand, + TransactWriteItemsCommand, } from "@aws-sdk/client-dynamodb"; +import { SQSClient, SendMessageBatchCommand } from "@aws-sdk/client-sqs"; +import { + SecretsManagerClient, + GetSecretValueCommand, +} from "@aws-sdk/client-secrets-manager"; +import { createJwt } from "./auth.test.js"; import { marshall } from "@aws-sdk/util-dynamodb"; -import init from "../../src/api/index.js"; -import { describe } from "node:test"; -import { mockClient } from "aws-sdk-client-mock"; import { genericConfig } from "../../src/common/config.js"; +import { UnauthenticatedError } from "../../src/common/errors/index.js"; const app = await init(); const ddbMock = mockClient(DynamoDBClient); +const sqsMock = mockClient(SQSClient); +const smMock = mockClient(SecretsManagerClient); + +vi.mock("../../src/api/functions/entraId.js", () => { + return { + ...vi.importActual("../../src/api/functions/entraId.js"), + getEntraIdToken: vi.fn().mockImplementation(async () => { + return "ey.test.token"; + }), + modifyGroup: vi.fn().mockImplementation(async () => { + return ""; + }), + resolveEmailToOid: vi.fn().mockImplementation(async () => { + return ""; + }), + listGroupMembers: vi.fn().mockImplementation(async () => { + return ""; + }), + getGroupMetadata: vi.fn().mockImplementation(async () => { + return { id: "abc123", displayName: "thing" }; + }), + }; +}); const acmMeta = { primaryKey: "DEFINE#ACM", - leadsEntraGroup: "a3c37a24-1e21-4338-813f-15478eb40137", + leadsEntraGroupId: "a3c37a24-1e21-4338-813f-15478eb40137", links: [ { type: "DISCORD", @@ -24,143 +54,447 @@ const acmMeta = { ], website: "https://www.acm.illinois.edu", }; -describe("Organization info tests", async () => { - test("Test getting the list of organizations succeeds", async () => { - const response = await app.inject({ - method: "GET", - url: "/api/v1/organizations", - }); - expect(response.statusCode).toBe(200); - await response.json(); + +describe("Organization info tests - Extended Coverage", () => { + beforeEach(() => { + (app as any).nodeCache.flushAll(); + ddbMock.reset(); + sqsMock.reset(); + smMock.reset(); + vi.clearAllMocks(); }); - test("Test getting info about an org succeeds", async () => { - ddbMock - .on(QueryCommand, { - TableName: genericConfig.SigInfoTableName, - KeyConditionExpression: "primaryKey = :definitionId", - ExpressionAttributeValues: { - ":definitionId": { S: "DEFINE#ACM" }, - }, - }) - .resolves({ + + describe("GET /organizations - List all organizations", () => { + test("Returns list with authenticated user seeing EntraGroupId", async () => { + const testJwt = createJwt(); + + ddbMock.on(QueryCommand).resolves({ + Items: [marshall(acmMeta)], + }); + + const response = await app.inject({ + method: "GET", + url: "/api/v1/organizations", + headers: { authorization: `Bearer ${testJwt}` }, + }); + + expect(response.statusCode).toBe(200); + const responseJson = response.json(); + expect(responseJson).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: expect.any(String), + }), + ]), + ); + }); + + test("Returns list without EntraGroupId for unauthenticated user", async () => { + ddbMock.on(QueryCommand).resolves({ Items: [marshall(acmMeta)], }); - ddbMock - .on(QueryCommand, { - TableName: genericConfig.SigInfoTableName, - KeyConditionExpression: "primaryKey = :leadName", - ExpressionAttributeValues: { - ":leadName": { S: "LEAD#ACM" }, + + const response = await app.inject({ + method: "GET", + url: "/api/v1/organizations", + }); + + expect(response.statusCode).toBe(200); + const responseJson = response.json(); + responseJson.forEach((org: any) => { + expect(org.leadsEntraGroupId).toBeUndefined(); + }); + }); + + test("Cache-Control header is set correctly", async () => { + ddbMock.on(QueryCommand).resolves({ Items: [] }); + + const response = await app.inject({ + method: "GET", + url: "/api/v1/organizations", + }); + + expect(response.headers["cache-control"]).toContain("public"); + expect(response.headers["cache-control"]).toContain("max-age=300"); + }); + }); + + describe("GET /organizations/:orgId - Get specific organization", () => { + test("Returns EntraGroupId for authenticated user", async () => { + const testJwt = createJwt(); + + ddbMock + .on(QueryCommand) + .resolvesOnce({ + Items: [marshall(acmMeta)], + }) + .resolvesOnce({ + Items: [], + }); + + const response = await app.inject({ + method: "GET", + url: "/api/v1/organizations/ACM", + headers: { authorization: `Bearer ${testJwt}` }, + }); + + expect(response.statusCode).toBe(200); + const responseJson = response.json(); + expect(responseJson.leadsEntraGroupId).toBe(acmMeta.leadsEntraGroupId); + }); + + test("Hides EntraGroupId for unauthenticated user", async () => { + ddbMock + .on(QueryCommand) + .resolvesOnce({ + Items: [marshall(acmMeta)], + }) + .resolvesOnce({ + Items: [], + }); + + const response = await app.inject({ + method: "GET", + url: "/api/v1/organizations/ACM", + }); + + expect(response.statusCode).toBe(200); + const responseJson = response.json(); + expect(responseJson.leadsEntraGroupId).toBeUndefined(); + }); + + test("Invalid organization ID returns 400", async () => { + const response = await app.inject({ + method: "GET", + url: "/api/v1/organizations/INVALID_ORG", + }); + + expect(response.statusCode).toBe(400); + }); + }); + + describe("POST /organizations/:orgId/meta - Set organization metadata", () => { + test("Successfully updates metadata with proper role", async () => { + const testJwt = createJwt(); + ddbMock.on(TransactWriteItemsCommand).resolves({}); + + const response = await app.inject({ + method: "POST", + url: "/api/v1/organizations/ACM/meta", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + website: "https://new.acm.illinois.edu", + links: [{ type: "DISCORD", url: "https://discord.gg/new" }], }, - }) - .resolves({ - Items: [ - { - primaryKey: "LEAD#ACM", - name: "John Doe", - title: "Chair", - username: "jdoe@illinois.edu", + }); + + expect(response.statusCode).toBe(201); + expect(ddbMock.commandCalls(TransactWriteItemsCommand).length).toBe(1); + }); + + test("Organization lead can update metadata", async () => { + const testJwt = createJwt(); + + // Mock getUserOrgRoles to return LEAD role for this user + ddbMock + .on(QueryCommand, { + TableName: genericConfig.SigInfoTableName, + IndexName: "UsernameIndex", + KeyConditionExpression: `username = :username`, + ExpressionAttributeValues: { + ":username": { S: "lead@illinois.edu" }, }, - ].map((x) => marshall(x)), + }) + .resolves({ + Items: [ + marshall({ + username: "lead@illinois.edu", + primaryKey: "LEAD#ACM", + }), + ], + }); + + ddbMock.on(TransactWriteItemsCommand).resolves({}); + + const response = await app.inject({ + method: "POST", + url: "/api/v1/organizations/ACM/meta", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + website: "https://new.acm.illinois.edu", + }, }); - const response = await app.inject({ - method: "GET", - url: "/api/v1/organizations/ACM", + + expect(response.statusCode).toBe(201); }); - expect(response.statusCode).toBe(200); - const responseJson = await response.json(); - expect(responseJson).toStrictEqual({ - id: "ACM", - website: "https://www.acm.illinois.edu", - leads: [ - { - username: "jdoe@illinois.edu", - name: "John Doe", - title: "Chair", + + test("Non-lead without role cannot update metadata", async () => { + const testJwt = createJwt(undefined, [], "rando@acm.illinois.edu"); + ddbMock + .on(QueryCommand, { + TableName: genericConfig.SigInfoTableName, + IndexName: "UsernameIndex", + KeyConditionExpression: `username = :username`, + ExpressionAttributeValues: { + ":username": { S: "rando@acm.illinois.edu" }, + }, + }) + .resolves({ + Items: [ + marshall({ + username: "rando@acm.illinois.edu", + primaryKey: "MEMBER#ACM", + }), + ], + }); + + const response = await app.inject({ + method: "POST", + url: "/api/v1/organizations/ACM/meta", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + website: "https://new.acm.illinois.edu", }, - ], - links: [ - { - type: "DISCORD", - url: "https://go.acm.illinois.edu/discord", + }); + + expect(response.statusCode).toBe(401); + }); + + test("Handles database errors gracefully", async () => { + const testJwt = createJwt(); + + ddbMock + .on(TransactWriteItemsCommand) + .rejects(new Error("Database error")); + + const response = await app.inject({ + method: "POST", + url: "/api/v1/organizations/ACM/meta", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + website: "https://new.acm.illinois.edu", }, - ], + }); + + expect(response.statusCode).toBe(500); + expect(response.json().message).toContain( + "Failed to set org information", + ); }); }); - test("Test getting info about an unknown valid org returns just the ID", async () => { - ddbMock - .on(QueryCommand, { - TableName: genericConfig.SigInfoTableName, - KeyConditionExpression: "primaryKey = :definitionId", - ExpressionAttributeValues: { - ":definitionId": { S: "DEFINE#ACM" }, - }, - }) - .resolves({ - Items: undefined, - }); - ddbMock - .on(QueryCommand, { - TableName: genericConfig.SigInfoTableName, - KeyConditionExpression: "primaryKey = :leadName", - ExpressionAttributeValues: { - ":leadName": { S: "LEAD#ACM" }, + + describe("PATCH /organizations/:orgId/leads - Manage organization leads", () => { + test("Validates duplicate usernames in request", async () => { + const testJwt = createJwt(); + + const response = await app.inject({ + method: "PATCH", + url: "/api/v1/organizations/ACM/leads", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + add: [ + { + username: "duplicate@illinois.edu", + name: "User One", + title: "Lead", + }, + { + username: "duplicate@illinois.edu", + name: "User Two", + title: "Co-Lead", + }, + ], + remove: [], }, - }) - .resolves({ Items: [] }); - const response = await app.inject({ - method: "GET", - url: "/api/v1/organizations/ACM", + }); + + expect(response.statusCode).toBe(400); + expect(response.json().message).toContain( + "Each user can only be specified once", + ); }); - expect(response.statusCode).toBe(200); - const responseJson = await response.json(); - expect(responseJson).toStrictEqual({ - id: "ACM", + + test("Validates paid membership for new leads", async () => { + const testJwt = createJwt(); + + // Mock unpaid membership + ddbMock.on(QueryCommand).resolves({ Items: [] }); + + const response = await app.inject({ + method: "PATCH", + url: "/api/v1/organizations/ACM/leads", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + add: [ + { + username: "unpaid@illinois.edu", + name: "Unpaid User", + title: "Lead", + }, + ], + remove: [], + }, + }); + + expect(response.statusCode).toBe(400); + expect(response.json().message).toContain("not ACM paid members"); }); - }); - test("Test that getting org with no leads succeeds", async () => { - ddbMock - .on(QueryCommand, { - TableName: genericConfig.SigInfoTableName, - KeyConditionExpression: "primaryKey = :definitionId", - ExpressionAttributeValues: { - ":definitionId": { S: "DEFINE#ACM" }, + + test("Successfully adds and removes leads with Entra integration", async () => { + const testJwt = createJwt(); + + // Mock GetItemCommand for org metadata + ddbMock + .on(GetItemCommand, { TableName: genericConfig.SigInfoTableName }) + .resolves({ + Item: marshall({ leadsEntraGroupId: "test-entra-group-id" }), + }); + // Mock getUserOrgRoles to return LEAD role for this user + ddbMock + .on(QueryCommand, { + TableName: genericConfig.SigInfoTableName, + IndexName: "UsernameIndex", + KeyConditionExpression: `username = :username`, + ExpressionAttributeValues: { + ":username": { S: "oldlead@illinois.edu" }, + }, + }) + .resolves({ + Items: [ + marshall({ + username: "oldlead@illinois.edu", + primaryKey: "LEAD#ACM", + }), + ], + }); + ddbMock.on(TransactWriteItemsCommand).resolves({}); + + sqsMock.on(SendMessageBatchCommand).resolves({ + Successful: [ + { + Id: "1", + MessageId: "msg-1", + MD5OfMessageBody: "mock-md5", + }, + ], + Failed: [], + }); + + const response = await app.inject({ + method: "PATCH", + url: "/api/v1/organizations/ACM/leads", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + add: [ + { + username: "newlead@illinois.edu", + name: "New Lead", + title: "President", + }, + ], + remove: ["oldlead@illinois.edu"], }, - }) - .resolves({ - Items: [marshall(acmMeta)], }); - ddbMock - .on(QueryCommand, { - TableName: genericConfig.SigInfoTableName, - KeyConditionExpression: "primaryKey = :leadName", - ExpressionAttributeValues: { - ":leadName": { S: "LEAD#ACM" }, + + expect(response.statusCode).toBe(201); + expect( + ddbMock.commandCalls(TransactWriteItemsCommand).length, + ).toBeGreaterThan(0); + }); + + test("Organization lead can manage other leads", async () => { + const testJwt = createJwt(); + + ddbMock + .on(QueryCommand, { + TableName: genericConfig.SigInfoTableName, + IndexName: "UsernameIndex", + }) + .resolves({ + Items: [ + marshall({ + username: "currentlead@illinois.edu", + primaryKey: "LEAD#ACM", + }), + ], + }); + + // Mock paid membership + ddbMock.on(QueryCommand).resolves({ + Items: [marshall({ membershipStatus: "PAID" })], + }); + + ddbMock.on(GetItemCommand).resolves({ Item: undefined }); + smMock.on(GetSecretValueCommand).resolves({ + SecretString: JSON.stringify({ token: "mock-token" }), + }); + ddbMock.on(TransactWriteItemsCommand).resolves({}); + + const response = await app.inject({ + method: "PATCH", + url: "/api/v1/organizations/ACM/leads", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + add: [ + { username: "newlead@illinois.edu", name: "New Lead", title: "VP" }, + ], + remove: [], }, - }) - .resolves({ Items: [] }); - const response = await app.inject({ - method: "GET", - url: "/api/v1/organizations/ACM", + }); + + expect(response.statusCode).toBe(201); }); - expect(response.statusCode).toBe(200); - const responseJson = await response.json(); - expect(responseJson).toStrictEqual({ - id: "ACM", - website: "https://www.acm.illinois.edu", - leads: [], - links: [ - { - type: "DISCORD", - url: "https://go.acm.illinois.edu/discord", + + test("Handles missing Entra group ID gracefully", async () => { + const testJwt = createJwt(undefined, [], "rando@acm.illinois.edu"); + + ddbMock + .on(QueryCommand, { + TableName: genericConfig.SigInfoTableName, + IndexName: "UsernameIndex", + KeyConditionExpression: `username = :username`, + ExpressionAttributeValues: { + ":username": { S: "rando@acm.illinois.edu" }, + }, + }) + .resolves({ + Items: [ + marshall({ + username: "rando@acm.illinois.edu", + primaryKey: "LEAD#ACM", + }), + ], + }); + + ddbMock.on(GetItemCommand).resolves({ Item: undefined }); + + smMock.on(GetSecretValueCommand).resolves({ + SecretString: JSON.stringify({ token: "mock-token" }), + }); + + ddbMock.on(TransactWriteItemsCommand).resolves({}); + + const response = await app.inject({ + method: "PATCH", + url: "/api/v1/organizations/ACM/leads", + headers: { authorization: `Bearer ${testJwt}` }, + payload: { + add: [ + { + username: "valid@illinois.edu", + name: "Valid User", + title: "Lead", + }, + ], + remove: [], }, - ], + }); + + expect(response.statusCode).toBe(201); }); }); + afterAll(async () => { await app.close(); }); - beforeEach(() => { - (app as any).nodeCache.flushAll(); - }); }); diff --git a/tests/unit/vitest.setup.ts b/tests/unit/vitest.setup.ts index c3fd828d..ab7e6ec5 100644 --- a/tests/unit/vitest.setup.ts +++ b/tests/unit/vitest.setup.ts @@ -132,6 +132,16 @@ vi.mock( return false; } }), + checkPaidMembership: vi.fn(async (obj) => { + switch (obj.netId) { + case "valid": + case "oldlead": + case "newlead": + return true; + default: + return false; + } + }), }; }, ); From c3f32998f61139f1aae5ebc164b547f4641ff34f Mon Sep 17 00:00:00 2001 From: Dev Singh Date: Wed, 24 Sep 2025 14:45:51 -0500 Subject: [PATCH 5/5] Cleanup dependencies --- package.json | 4 +- src/api/package.json | 18 +- src/archival/package.json | 6 +- tests/unit/organizations.test.ts | 1 - yarn.lock | 2761 +++++++++++------------------- 5 files changed, 1048 insertions(+), 1742 deletions(-) diff --git a/package.json b/package.json index 760df3dd..97eae14f 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.33.0", "@playwright/test": "^1.54.2", - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.5.0", "@tsconfig/node22": "^22.0.1", "@types/ioredis-mock": "^8.2.5", "@types/node": "^24.3.0", @@ -94,4 +94,4 @@ "pdfjs-dist": "^4.8.69", "form-data": "^4.0.4" } -} +} \ No newline at end of file diff --git a/src/api/package.json b/src/api/package.json index a9a91075..263d9832 100644 --- a/src/api/package.json +++ b/src/api/package.json @@ -15,15 +15,15 @@ "prettier:write": "prettier --write *.ts **/*.ts" }, "dependencies": { - "@aws-sdk/client-cloudfront-keyvaluestore": "^3.859.0", - "@aws-sdk/client-dynamodb": "^3.859.0", - "@aws-sdk/client-lambda": "^3.859.0", - "@aws-sdk/client-secrets-manager": "^3.859.0", - "@aws-sdk/client-ses": "^3.859.0", - "@aws-sdk/client-sqs": "^3.859.0", - "@aws-sdk/client-sts": "^3.859.0", - "@aws-sdk/signature-v4-crt": "^3.859.0", - "@aws-sdk/util-dynamodb": "^3.859.0", + "@aws-sdk/client-cloudfront-keyvaluestore": "^3.895.0", + "@aws-sdk/client-dynamodb": "^3.895.0", + "@aws-sdk/client-lambda": "^3.895.0", + "@aws-sdk/client-secrets-manager": "^3.895.0", + "@aws-sdk/client-ses": "^3.895.0", + "@aws-sdk/client-sqs": "^3.895.0", + "@aws-sdk/client-sts": "^3.895.0", + "@aws-sdk/signature-v4-crt": "^3.895.0", + "@aws-sdk/util-dynamodb": "^3.895.0", "@azure/msal-node": "^3.5.1", "@fastify/auth": "^5.0.1", "@fastify/aws-lambda": "^6.0.0", diff --git a/src/archival/package.json b/src/archival/package.json index c71a33b1..5072460a 100644 --- a/src/archival/package.json +++ b/src/archival/package.json @@ -19,8 +19,8 @@ "esbuild": "^0.25.3" }, "dependencies": { - "@aws-sdk/client-dynamodb": "^3.585.0", - "@aws-sdk/client-firehose": "^3.585.0", - "@aws-sdk/util-dynamodb": "^3.585.0" + "@aws-sdk/client-dynamodb": "^3.895.0", + "@aws-sdk/client-firehose": "^3.895.0", + "@aws-sdk/util-dynamodb": "^3.895.0" } } \ No newline at end of file diff --git a/tests/unit/organizations.test.ts b/tests/unit/organizations.test.ts index 2c0373cb..654adfba 100644 --- a/tests/unit/organizations.test.ts +++ b/tests/unit/organizations.test.ts @@ -15,7 +15,6 @@ import { import { createJwt } from "./auth.test.js"; import { marshall } from "@aws-sdk/util-dynamodb"; import { genericConfig } from "../../src/common/config.js"; -import { UnauthenticatedError } from "../../src/common/errors/index.js"; const app = await init(); const ddbMock = mockClient(DynamoDBClient); diff --git a/yarn.lock b/yarn.lock index 84054475..42b73630 100644 --- a/yarn.lock +++ b/yarn.lock @@ -78,1057 +78,753 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cloudfront-keyvaluestore@^3.859.0": - version "3.859.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront-keyvaluestore/-/client-cloudfront-keyvaluestore-3.859.0.tgz#33da971a1df2e76397310ba9c050e318e0d98dcb" - integrity sha512-UPP3WRXT0D5u1ca6TLz+BBnVVb5bFsZt0s3c0yniRLXnQ5bxLziOzs7T9DD90BDfYn0CkxxTAEv1rIskJ/EfiA== +"@aws-sdk/client-cloudfront-keyvaluestore@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront-keyvaluestore/-/client-cloudfront-keyvaluestore-3.896.0.tgz#2064bc02a5b47dcfd07c2a7b254ef4dfcea8bf34" + integrity sha512-lBeLongETFtoiZKTSHvItBTxyAHfAM9kQXcEapKWnI+XB1lp4xLw7+v1ymIkDYRgXD5bBAx3DAxLHmxeR9fNZg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.858.0" - "@aws-sdk/credential-provider-node" "3.859.0" - "@aws-sdk/middleware-host-header" "3.840.0" - "@aws-sdk/middleware-logger" "3.840.0" - "@aws-sdk/middleware-recursion-detection" "3.840.0" - "@aws-sdk/middleware-user-agent" "3.858.0" - "@aws-sdk/region-config-resolver" "3.840.0" - "@aws-sdk/signature-v4-multi-region" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.848.0" - "@aws-sdk/util-user-agent-browser" "3.840.0" - "@aws-sdk/util-user-agent-node" "3.858.0" - "@smithy/config-resolver" "^4.1.4" - "@smithy/core" "^3.7.2" - "@smithy/fetch-http-handler" "^5.1.0" - "@smithy/hash-node" "^4.0.4" - "@smithy/invalid-dependency" "^4.0.4" - "@smithy/middleware-content-length" "^4.0.4" - "@smithy/middleware-endpoint" "^4.1.17" - "@smithy/middleware-retry" "^4.1.18" - "@smithy/middleware-serde" "^4.0.8" - "@smithy/middleware-stack" "^4.0.4" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/node-http-handler" "^4.1.0" - "@smithy/protocol-http" "^5.1.2" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - "@smithy/url-parser" "^4.0.4" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.25" - "@smithy/util-defaults-mode-node" "^4.0.25" - "@smithy/util-endpoints" "^3.0.6" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-retry" "^4.0.6" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-dynamodb@^3.585.0", "@aws-sdk/client-dynamodb@^3.859.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.879.0.tgz#03f1ba40396af226e5ea43f1d1f70a511f3ca600" - integrity sha512-wY4DWuDyk8Lni+bMhx5+Ka7EbK1ZtV/AZqK6KmDAIWNNhfL/wL5BiFTgqDhFcEMZgAfxoqu3VuUrZLwepKqSxA== + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-node" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/signature-v4-multi-region" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + tslib "^2.6.2" + +"@aws-sdk/client-dynamodb@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.896.0.tgz#a01a32af6a72890cba6952e01ca8b6289c85090c" + integrity sha512-f52lWRtrcG7IMS3wAGOOkq5Ra4rhqu9VlAnMn8wwsvKz2WmCYDvxQTuTpaIXuvTeMGVVhBT4lUR1aRtzBHxSHw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/credential-provider-node" "3.879.0" - "@aws-sdk/middleware-endpoint-discovery" "3.873.0" - "@aws-sdk/middleware-host-header" "3.873.0" - "@aws-sdk/middleware-logger" "3.876.0" - "@aws-sdk/middleware-recursion-detection" "3.873.0" - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/region-config-resolver" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@aws-sdk/util-user-agent-browser" "3.873.0" - "@aws-sdk/util-user-agent-node" "3.879.0" - "@smithy/config-resolver" "^4.1.5" - "@smithy/core" "^3.9.0" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/hash-node" "^4.0.5" - "@smithy/invalid-dependency" "^4.0.5" - "@smithy/middleware-content-length" "^4.0.5" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-retry" "^4.1.20" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.27" - "@smithy/util-defaults-mode-node" "^4.0.27" - "@smithy/util-endpoints" "^3.0.7" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@smithy/util-utf8" "^4.0.0" - "@smithy/util-waiter" "^4.0.7" - "@types/uuid" "^9.0.1" - tslib "^2.6.2" - uuid "^9.0.1" - -"@aws-sdk/client-firehose@^3.585.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-firehose/-/client-firehose-3.879.0.tgz#882f0e198698ceb2923ed7bcbf78ce46ba3c19e2" - integrity sha512-Sfp75qTUJ1mdTYrDhi4TVHoDrc1KkkzujYy7DHa+nfwgkigD9VvkE0Mcv2g0LCTIRVtIuYkF+C88LSqoxyWOHQ== + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-node" "3.896.0" + "@aws-sdk/middleware-endpoint-discovery" "3.893.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + "@smithy/util-waiter" "^4.1.1" + "@smithy/uuid" "^1.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-firehose@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-firehose/-/client-firehose-3.896.0.tgz#d9518872450a396352eecc6b5d596272886f8ff5" + integrity sha512-Acm7X2mNVQkBodsr5yEw4FCgLc/wrujd5kHz+iDFUTiWKsyAXiaHzlskPJ7SIYV1RWlZVGhbQGz7YKCSdk3X5w== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/credential-provider-node" "3.879.0" - "@aws-sdk/middleware-host-header" "3.873.0" - "@aws-sdk/middleware-logger" "3.876.0" - "@aws-sdk/middleware-recursion-detection" "3.873.0" - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/region-config-resolver" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@aws-sdk/util-user-agent-browser" "3.873.0" - "@aws-sdk/util-user-agent-node" "3.879.0" - "@smithy/config-resolver" "^4.1.5" - "@smithy/core" "^3.9.0" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/hash-node" "^4.0.5" - "@smithy/invalid-dependency" "^4.0.5" - "@smithy/middleware-content-length" "^4.0.5" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-retry" "^4.1.20" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.27" - "@smithy/util-defaults-mode-node" "^4.0.27" - "@smithy/util-endpoints" "^3.0.7" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-lambda@^3.859.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-lambda/-/client-lambda-3.879.0.tgz#2c682245dc7fb46d759a10064c93a3fde5b411b6" - integrity sha512-o7MD029B6DPNniiHyeMuxII3/YAfOQo+VxVN3mj3L8KWBKKD2cweGVYUg6seJNl9zMC5ruF8mI46QynXAJirfg== + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-node" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + tslib "^2.6.2" + +"@aws-sdk/client-lambda@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-lambda/-/client-lambda-3.896.0.tgz#7e885539e06685de4eeecda63c4d3ee586641ba7" + integrity sha512-zZX06gmp1GHE+HF1xbNidDF5lzNcm+hkXepJtYkpLEdvJk7Zv8+p6hRZ3kPpmswHmGpb4en1hqSIGgUimQBCXw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/credential-provider-node" "3.879.0" - "@aws-sdk/middleware-host-header" "3.873.0" - "@aws-sdk/middleware-logger" "3.876.0" - "@aws-sdk/middleware-recursion-detection" "3.873.0" - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/region-config-resolver" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@aws-sdk/util-user-agent-browser" "3.873.0" - "@aws-sdk/util-user-agent-node" "3.879.0" - "@smithy/config-resolver" "^4.1.5" - "@smithy/core" "^3.9.0" - "@smithy/eventstream-serde-browser" "^4.0.5" - "@smithy/eventstream-serde-config-resolver" "^4.1.3" - "@smithy/eventstream-serde-node" "^4.0.5" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/hash-node" "^4.0.5" - "@smithy/invalid-dependency" "^4.0.5" - "@smithy/middleware-content-length" "^4.0.5" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-retry" "^4.1.20" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.27" - "@smithy/util-defaults-mode-node" "^4.0.27" - "@smithy/util-endpoints" "^3.0.7" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@smithy/util-stream" "^4.2.4" - "@smithy/util-utf8" "^4.0.0" - "@smithy/util-waiter" "^4.0.7" - tslib "^2.6.2" - -"@aws-sdk/client-secrets-manager@^3.859.0": - version "3.859.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.859.0.tgz#27c02bb56e2892fb652e87869d076377183e1330" - integrity sha512-I43D40i+/fwNGJiyb0Pd2ZwtP7TkttzKRZh/ujv9F6zzyW/TsYB6DBLxOfRSRi909Cad5yY1JkE8OtsRWTUphg== + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-node" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/eventstream-serde-browser" "^4.1.1" + "@smithy/eventstream-serde-config-resolver" "^4.2.1" + "@smithy/eventstream-serde-node" "^4.1.1" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-stream" "^4.3.2" + "@smithy/util-utf8" "^4.1.0" + "@smithy/util-waiter" "^4.1.1" + tslib "^2.6.2" + +"@aws-sdk/client-secrets-manager@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.896.0.tgz#34ccc977fe9c53098851b295436ec176fb7328e3" + integrity sha512-0e/9jcLDqAosEWNHPLj13KAhQn7oIqmVv78eR+DCxP4HOwL/1saQ/ZDRzqdwn9gUuq4Rjh1JZQdEFZyLWtVOYg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.858.0" - "@aws-sdk/credential-provider-node" "3.859.0" - "@aws-sdk/middleware-host-header" "3.840.0" - "@aws-sdk/middleware-logger" "3.840.0" - "@aws-sdk/middleware-recursion-detection" "3.840.0" - "@aws-sdk/middleware-user-agent" "3.858.0" - "@aws-sdk/region-config-resolver" "3.840.0" - "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.848.0" - "@aws-sdk/util-user-agent-browser" "3.840.0" - "@aws-sdk/util-user-agent-node" "3.858.0" - "@smithy/config-resolver" "^4.1.4" - "@smithy/core" "^3.7.2" - "@smithy/fetch-http-handler" "^5.1.0" - "@smithy/hash-node" "^4.0.4" - "@smithy/invalid-dependency" "^4.0.4" - "@smithy/middleware-content-length" "^4.0.4" - "@smithy/middleware-endpoint" "^4.1.17" - "@smithy/middleware-retry" "^4.1.18" - "@smithy/middleware-serde" "^4.0.8" - "@smithy/middleware-stack" "^4.0.4" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/node-http-handler" "^4.1.0" - "@smithy/protocol-http" "^5.1.2" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - "@smithy/url-parser" "^4.0.4" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.25" - "@smithy/util-defaults-mode-node" "^4.0.25" - "@smithy/util-endpoints" "^3.0.6" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-retry" "^4.0.6" - "@smithy/util-utf8" "^4.0.0" - "@types/uuid" "^9.0.1" - tslib "^2.6.2" - uuid "^9.0.1" - -"@aws-sdk/client-ses@^3.859.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ses/-/client-ses-3.879.0.tgz#ac49fc7b2fb5fa8e2d3354e5d0f08481f21eea5d" - integrity sha512-6yydcKf01tXAIsya5YBOcznvGN4DN8crLEuYC0jwG+67loCeq2HZMO1rL3ouaIllCSgmO0l7KHDK62BQr3Z3Zg== + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-node" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + "@smithy/uuid" "^1.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-ses@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ses/-/client-ses-3.896.0.tgz#484eae0dc439b7da14c3290a1596c72ddb4abbac" + integrity sha512-L5C1ZLdTnAAZJqngRxt6RB6boHnx1Jp1U/awmLsBcnW3tEax5iCLtaNkDRZ6XrccYktVcy2lIUXnFJ7G7WunoQ== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/credential-provider-node" "3.879.0" - "@aws-sdk/middleware-host-header" "3.873.0" - "@aws-sdk/middleware-logger" "3.876.0" - "@aws-sdk/middleware-recursion-detection" "3.873.0" - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/region-config-resolver" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@aws-sdk/util-user-agent-browser" "3.873.0" - "@aws-sdk/util-user-agent-node" "3.879.0" - "@smithy/config-resolver" "^4.1.5" - "@smithy/core" "^3.9.0" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/hash-node" "^4.0.5" - "@smithy/invalid-dependency" "^4.0.5" - "@smithy/middleware-content-length" "^4.0.5" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-retry" "^4.1.20" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.27" - "@smithy/util-defaults-mode-node" "^4.0.27" - "@smithy/util-endpoints" "^3.0.7" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@smithy/util-utf8" "^4.0.0" - "@smithy/util-waiter" "^4.0.7" - tslib "^2.6.2" - -"@aws-sdk/client-sqs@^3.859.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sqs/-/client-sqs-3.879.0.tgz#c1898c97d5c9442848c0ed9c897cfd2e8c1d27d5" - integrity sha512-xZWFPtRcWENW7KQqV/BblNW/poZhDkRV2rkl/eZ3M2hiNOX7PdaI5dk4BtjYjcilBP3Nt5b2n8dUpiDlBnh43w== + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-node" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + "@smithy/util-waiter" "^4.1.1" + tslib "^2.6.2" + +"@aws-sdk/client-sqs@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sqs/-/client-sqs-3.896.0.tgz#8b267ba89324b2d927fab4f8d8cdba37cf441b6f" + integrity sha512-8nDSfBkXcqK3uxZ5NxiYGeRtTHFbMM1thLHm/myDDQrgnRMyhMXSbe6lPmCosMRZdqjmT0+cB9fc/XZAxA71fg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/credential-provider-node" "3.879.0" - "@aws-sdk/middleware-host-header" "3.873.0" - "@aws-sdk/middleware-logger" "3.876.0" - "@aws-sdk/middleware-recursion-detection" "3.873.0" - "@aws-sdk/middleware-sdk-sqs" "3.879.0" - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/region-config-resolver" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@aws-sdk/util-user-agent-browser" "3.873.0" - "@aws-sdk/util-user-agent-node" "3.879.0" - "@smithy/config-resolver" "^4.1.5" - "@smithy/core" "^3.9.0" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/hash-node" "^4.0.5" - "@smithy/invalid-dependency" "^4.0.5" - "@smithy/md5-js" "^4.0.5" - "@smithy/middleware-content-length" "^4.0.5" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-retry" "^4.1.20" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.27" - "@smithy/util-defaults-mode-node" "^4.0.27" - "@smithy/util-endpoints" "^3.0.7" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sso@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.858.0.tgz#cae074f8bc3cfe276320f54e66ad735cc1551408" - integrity sha512-iXuZQs4KH6a3Pwnt0uORalzAZ5EXRPr3lBYAsdNwkP8OYyoUz5/TE3BLyw7ceEh0rj4QKGNnNALYo1cDm0EV8w== + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-node" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-sdk-sqs" "3.896.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/md5-js" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.896.0.tgz#a93eb9043e28156345676c5e35035365f67897d9" + integrity sha512-mpE3mrNili1dcvEvxaYjyoib8HlRXkb2bY5a3WeK++KObFY+HUujKtgQmiNSRX5YwQszm//fTrmGMmv9zpMcKg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.858.0" - "@aws-sdk/middleware-host-header" "3.840.0" - "@aws-sdk/middleware-logger" "3.840.0" - "@aws-sdk/middleware-recursion-detection" "3.840.0" - "@aws-sdk/middleware-user-agent" "3.858.0" - "@aws-sdk/region-config-resolver" "3.840.0" - "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.848.0" - "@aws-sdk/util-user-agent-browser" "3.840.0" - "@aws-sdk/util-user-agent-node" "3.858.0" - "@smithy/config-resolver" "^4.1.4" - "@smithy/core" "^3.7.2" - "@smithy/fetch-http-handler" "^5.1.0" - "@smithy/hash-node" "^4.0.4" - "@smithy/invalid-dependency" "^4.0.4" - "@smithy/middleware-content-length" "^4.0.4" - "@smithy/middleware-endpoint" "^4.1.17" - "@smithy/middleware-retry" "^4.1.18" - "@smithy/middleware-serde" "^4.0.8" - "@smithy/middleware-stack" "^4.0.4" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/node-http-handler" "^4.1.0" - "@smithy/protocol-http" "^5.1.2" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - "@smithy/url-parser" "^4.0.4" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.25" - "@smithy/util-defaults-mode-node" "^4.0.25" - "@smithy/util-endpoints" "^3.0.6" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-retry" "^4.0.6" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sso@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.879.0.tgz#44b7bcc051af7e89ffff7346bd5f5b0672b48390" - integrity sha512-+Pc3OYFpRYpKLKRreovPM63FPPud1/SF9vemwIJfz6KwsBCJdvg7vYD1xLSIp5DVZLeetgf4reCyAA5ImBfZuw== + "@aws-sdk/core" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.896.0.tgz#71ebbf2ec0ff3d7610a54bced761ed0e43acf1e7" + integrity sha512-mEbbWGwGZbKCHgwAIm9aRCRcCnv6N9AZf3U0dMFwpYtVXVJvRWTK0OW2d49I2swaZ/GikMIccI3wxWT188OW8w== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/middleware-host-header" "3.873.0" - "@aws-sdk/middleware-logger" "3.876.0" - "@aws-sdk/middleware-recursion-detection" "3.873.0" - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/region-config-resolver" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@aws-sdk/util-user-agent-browser" "3.873.0" - "@aws-sdk/util-user-agent-node" "3.879.0" - "@smithy/config-resolver" "^4.1.5" - "@smithy/core" "^3.9.0" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/hash-node" "^4.0.5" - "@smithy/invalid-dependency" "^4.0.5" - "@smithy/middleware-content-length" "^4.0.5" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-retry" "^4.1.20" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.27" - "@smithy/util-defaults-mode-node" "^4.0.27" - "@smithy/util-endpoints" "^3.0.7" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sts@^3.859.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.879.0.tgz#38abb441b86a05d625d338b7558487d95b4946f2" - integrity sha512-1VboQslwT/ZkgnG4VOoWwCIxkbiBmqc8yJ/3c8p01BQGuMSQQmRRzX1eBr2M7GWOUy5a+f9ND8w+viKihY110g== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/credential-provider-node" "3.879.0" - "@aws-sdk/middleware-host-header" "3.873.0" - "@aws-sdk/middleware-logger" "3.876.0" - "@aws-sdk/middleware-recursion-detection" "3.873.0" - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/region-config-resolver" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@aws-sdk/util-user-agent-browser" "3.873.0" - "@aws-sdk/util-user-agent-node" "3.879.0" - "@smithy/config-resolver" "^4.1.5" - "@smithy/core" "^3.9.0" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/hash-node" "^4.0.5" - "@smithy/invalid-dependency" "^4.0.5" - "@smithy/middleware-content-length" "^4.0.5" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-retry" "^4.1.20" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.27" - "@smithy/util-defaults-mode-node" "^4.0.27" - "@smithy/util-endpoints" "^3.0.7" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/core@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.858.0.tgz#27f7bc3e556bfeb31cbb767fd59377dabaea3d9e" - integrity sha512-iWm4QLAS+/XMlnecIU1Y33qbBr1Ju+pmWam3xVCPlY4CSptKpVY+2hXOnmg9SbHAX9C005fWhrIn51oDd00c9A== - dependencies: - "@aws-sdk/types" "3.840.0" - "@aws-sdk/xml-builder" "3.821.0" - "@smithy/core" "^3.7.2" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/property-provider" "^4.0.4" - "@smithy/protocol-http" "^5.1.2" - "@smithy/signature-v4" "^5.1.2" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-utf8" "^4.0.0" - fast-xml-parser "5.2.5" - tslib "^2.6.2" - -"@aws-sdk/core@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.879.0.tgz#c6ee6b927347b2f89419bfbff77844cdff2b8c10" - integrity sha512-AhNmLCrx980LsK+SfPXGh7YqTyZxsK0Qmy18mWmkfY0TSq7WLaSDB5zdQbgbnQCACCHy8DUYXbi4KsjlIhv3PA== - dependencies: - "@aws-sdk/types" "3.862.0" - "@aws-sdk/xml-builder" "3.873.0" - "@smithy/core" "^3.9.0" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/property-provider" "^4.0.5" - "@smithy/protocol-http" "^5.1.3" - "@smithy/signature-v4" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-utf8" "^4.0.0" - fast-xml-parser "5.2.5" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-env@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.858.0.tgz#6dd149bbf7334be11fafdce4cd238db9c32cb6cd" - integrity sha512-kZsGyh2BoSRguzlcGtzdLhw/l/n3KYAC+/l/H0SlsOq3RLHF6tO/cRdsLnwoix2bObChHUp03cex63o1gzdx/Q== - dependencies: - "@aws-sdk/core" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/property-provider" "^4.0.4" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-env@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.879.0.tgz#8de1561de6de585bffb8b7ff13ec7a88cb696de6" - integrity sha512-JgG7A8SSbr5IiCYL8kk39Y9chdSB5GPwBorDW8V8mr19G9L+qd6ohED4fAocoNFaDnYJ5wGAHhCfSJjzcsPBVQ== - dependencies: - "@aws-sdk/core" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/property-provider" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-http@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.858.0.tgz#b384babaa45814a9f8aff29d88185ef592deabac" - integrity sha512-GDnfYl3+NPJQ7WQQYOXEA489B212NinpcIDD7rpsB6IWUPo8yDjT5NceK4uUkIR3MFpNCGt9zd/z6NNLdB2fuQ== - dependencies: - "@aws-sdk/core" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/fetch-http-handler" "^5.1.0" - "@smithy/node-http-handler" "^4.1.0" - "@smithy/property-provider" "^4.0.4" - "@smithy/protocol-http" "^5.1.2" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - "@smithy/util-stream" "^4.2.3" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-http@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.879.0.tgz#d01b8d32f27c25fd27fb92758b0f0470223df7a9" - integrity sha512-2hM5ByLpyK+qORUexjtYyDZsgxVCCUiJQZRMGkNXFEGz6zTpbjfTIWoh3zRgWHEBiqyPIyfEy50eIF69WshcuA== - dependencies: - "@aws-sdk/core" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/property-provider" "^4.0.5" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/util-stream" "^4.2.4" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-ini@3.859.0": - version "3.859.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.859.0.tgz#b38a554a894e734eb6fb5bf49aba39284d2f9201" - integrity sha512-KsccE1T88ZDNhsABnqbQj014n5JMDilAroUErFbGqu5/B3sXqUsYmG54C/BjvGTRUFfzyttK9lB9P9h6ddQ8Cw== - dependencies: - "@aws-sdk/core" "3.858.0" - "@aws-sdk/credential-provider-env" "3.858.0" - "@aws-sdk/credential-provider-http" "3.858.0" - "@aws-sdk/credential-provider-process" "3.858.0" - "@aws-sdk/credential-provider-sso" "3.859.0" - "@aws-sdk/credential-provider-web-identity" "3.858.0" - "@aws-sdk/nested-clients" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/credential-provider-imds" "^4.0.6" - "@smithy/property-provider" "^4.0.4" - "@smithy/shared-ini-file-loader" "^4.0.4" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-ini@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.879.0.tgz#67a2ad53b37f2d713bb49cbfcc7283fccdc140b9" - integrity sha512-07M8zfb73KmMBqVO5/V3Ea9kqDspMX0fO0kaI1bsjWI6ngnMye8jCE0/sIhmkVAI0aU709VA0g+Bzlopnw9EoQ== - dependencies: - "@aws-sdk/core" "3.879.0" - "@aws-sdk/credential-provider-env" "3.879.0" - "@aws-sdk/credential-provider-http" "3.879.0" - "@aws-sdk/credential-provider-process" "3.879.0" - "@aws-sdk/credential-provider-sso" "3.879.0" - "@aws-sdk/credential-provider-web-identity" "3.879.0" - "@aws-sdk/nested-clients" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/credential-provider-imds" "^4.0.7" - "@smithy/property-provider" "^4.0.5" - "@smithy/shared-ini-file-loader" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-node@3.859.0": - version "3.859.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.859.0.tgz#a05c269a2dc8a1676eca9086d11cfea142cb4958" - integrity sha512-ZRDB2xU5aSyTR/jDcli30tlycu6RFvQngkZhBs9Zoh2BiYXrfh2MMuoYuZk+7uD6D53Q2RIEldDHR9A/TPlRuA== - dependencies: - "@aws-sdk/credential-provider-env" "3.858.0" - "@aws-sdk/credential-provider-http" "3.858.0" - "@aws-sdk/credential-provider-ini" "3.859.0" - "@aws-sdk/credential-provider-process" "3.858.0" - "@aws-sdk/credential-provider-sso" "3.859.0" - "@aws-sdk/credential-provider-web-identity" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/credential-provider-imds" "^4.0.6" - "@smithy/property-provider" "^4.0.4" - "@smithy/shared-ini-file-loader" "^4.0.4" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-node@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.879.0.tgz#379a7edadd8fdfe72fe768d44ee323871b80a2f9" - integrity sha512-FYaAqJbnSTrVL2iZkNDj2hj5087yMv2RN2GA8DJhe7iOJjzhzRojrtlfpWeJg6IhK0sBKDH+YXbdeexCzUJvtA== - dependencies: - "@aws-sdk/credential-provider-env" "3.879.0" - "@aws-sdk/credential-provider-http" "3.879.0" - "@aws-sdk/credential-provider-ini" "3.879.0" - "@aws-sdk/credential-provider-process" "3.879.0" - "@aws-sdk/credential-provider-sso" "3.879.0" - "@aws-sdk/credential-provider-web-identity" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/credential-provider-imds" "^4.0.7" - "@smithy/property-provider" "^4.0.5" - "@smithy/shared-ini-file-loader" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-process@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.858.0.tgz#80583aa76d04643e9ed5c6cb47aab1fc81138dd8" - integrity sha512-l5LJWZJMRaZ+LhDjtupFUKEC5hAjgvCRrOvV5T60NCUBOy0Ozxa7Sgx3x+EOwiruuoh3Cn9O+RlbQlJX6IfZIw== - dependencies: - "@aws-sdk/core" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/property-provider" "^4.0.4" - "@smithy/shared-ini-file-loader" "^4.0.4" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-process@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.879.0.tgz#7db16b740833005758e60c6c7f18a49a635dc700" - integrity sha512-7r360x1VyEt35Sm1JFOzww2WpnfJNBbvvnzoyLt7WRfK0S/AfsuWhu5ltJ80QvJ0R3AiSNbG+q/btG2IHhDYPQ== - dependencies: - "@aws-sdk/core" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/property-provider" "^4.0.5" - "@smithy/shared-ini-file-loader" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-sso@3.859.0": - version "3.859.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.859.0.tgz#8c369be3913b51ce6ea620d68ad7f280bcdae829" - integrity sha512-BwAqmWIivhox5YlFRjManFF8GoTvEySPk6vsJNxDsmGsabY+OQovYxFIYxRCYiHzH7SFjd4Lcd+riJOiXNsvRw== - dependencies: - "@aws-sdk/client-sso" "3.858.0" - "@aws-sdk/core" "3.858.0" - "@aws-sdk/token-providers" "3.859.0" - "@aws-sdk/types" "3.840.0" - "@smithy/property-provider" "^4.0.4" - "@smithy/shared-ini-file-loader" "^4.0.4" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-sso@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.879.0.tgz#a9891cb0d74ab8e665e08b84c6caf1be55db87c8" - integrity sha512-gd27B0NsgtKlaPNARj4IX7F7US5NuU691rGm0EUSkDsM7TctvJULighKoHzPxDQlrDbVI11PW4WtKS/Zg5zPlQ== - dependencies: - "@aws-sdk/client-sso" "3.879.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/token-providers" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/property-provider" "^4.0.5" - "@smithy/shared-ini-file-loader" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-web-identity@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.858.0.tgz#9fc99ef87fa0a39f6a87c95c2134b799fc4e54c9" - integrity sha512-8iULWsH83iZDdUuiDsRb83M0NqIlXjlDbJUIddVsIrfWp4NmanKw77SV6yOZ66nuJjPsn9j7RDb9bfEPCy5SWA== - dependencies: - "@aws-sdk/core" "3.858.0" - "@aws-sdk/nested-clients" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/property-provider" "^4.0.4" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-web-identity@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.879.0.tgz#743bf63f85370ec98df67987e36b131ae0854b6b" - integrity sha512-Jy4uPFfGzHk1Mxy+/Wr43vuw9yXsE2yiF4e4598vc3aJfO0YtA2nSfbKD3PNKRORwXbeKqWPfph9SCKQpWoxEg== - dependencies: - "@aws-sdk/core" "3.879.0" - "@aws-sdk/nested-clients" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/property-provider" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/crt-loader@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/crt-loader/-/crt-loader-3.879.0.tgz#dd054b56384c99f35575fa0b9e2cbb067ed4ab13" - integrity sha512-OqAb+VopEKEp3Jie0kFI9jqJ6xzKKt/A3YHldX1CP/qo/P5+l/K1KeFQvw+VbQl5yndD7nwCEP1s5GL/qBigBQ== - dependencies: - "@aws-sdk/util-user-agent-node" "3.879.0" + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-node" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + tslib "^2.6.2" + +"@aws-sdk/core@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.896.0.tgz#883360ca8035e0844372370501c62409c0c8ce12" + integrity sha512-uJaoyWKeGNyCyeI+cIJrD7LEB4iF/W8/x2ij7zg32OFpAAJx96N34/e+XSKp/xkJpO5FKiBOskKLnHeUsJsAPA== + dependencies: + "@aws-sdk/types" "3.893.0" + "@aws-sdk/xml-builder" "3.894.0" + "@smithy/core" "^3.12.0" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/property-provider" "^4.1.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/signature-v4" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-utf8" "^4.1.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.896.0.tgz#f385c8395fee16abdda5f73c391dee78dd326157" + integrity sha512-Cnqhupdkp825ICySrz4QTI64Nq3AmUAscPW8dueanni0avYBDp7RBppX4H0+6icqN569B983XNfQ0YSImQhfhg== + dependencies: + "@aws-sdk/core" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/property-provider" "^4.1.1" + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.896.0.tgz#4715b4205c42c4adf0b6efb3e228639f1e038802" + integrity sha512-CN0fTCKCUA1OTSx1c76o8XyJCy2WoI/av3J8r8mL6GmxTerhLRyzDy/MwxzPjTYPoL+GLEg6V4a9fRkWj1hBUA== + dependencies: + "@aws-sdk/core" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/property-provider" "^4.1.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/util-stream" "^4.3.2" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.896.0.tgz#8e4eaa85ad10ce5988381ee19f6bf96d14cbcab0" + integrity sha512-+rbYG98czzwZLTYHJasK+VBjnIeXk73mRpZXHvaa4kDNxBezdN2YsoGNpLlPSxPdbpq18LY3LRtkdFTaT6DIQA== + dependencies: + "@aws-sdk/core" "3.896.0" + "@aws-sdk/credential-provider-env" "3.896.0" + "@aws-sdk/credential-provider-http" "3.896.0" + "@aws-sdk/credential-provider-process" "3.896.0" + "@aws-sdk/credential-provider-sso" "3.896.0" + "@aws-sdk/credential-provider-web-identity" "3.896.0" + "@aws-sdk/nested-clients" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/credential-provider-imds" "^4.1.2" + "@smithy/property-provider" "^4.1.1" + "@smithy/shared-ini-file-loader" "^4.2.0" + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.896.0.tgz#6b25a92b18d051d04b88d31ed36ff5025cfe7c10" + integrity sha512-J0Jm+56MNngk1PIyqoJFf5FC2fjA4CYXlqODqNRDtid7yk7HB9W3UTtvxofmii5KJOLcHGNPdGnHWKkUc+xYgw== + dependencies: + "@aws-sdk/credential-provider-env" "3.896.0" + "@aws-sdk/credential-provider-http" "3.896.0" + "@aws-sdk/credential-provider-ini" "3.896.0" + "@aws-sdk/credential-provider-process" "3.896.0" + "@aws-sdk/credential-provider-sso" "3.896.0" + "@aws-sdk/credential-provider-web-identity" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/credential-provider-imds" "^4.1.2" + "@smithy/property-provider" "^4.1.1" + "@smithy/shared-ini-file-loader" "^4.2.0" + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.896.0.tgz#008a1e09f7d276336bead54a9b7572ab2a7b8b3e" + integrity sha512-UfWVMQPZy7dus40c4LWxh5vQ+I51z0q4vf09Eqas5848e9DrGRG46GYIuc/gy+4CqEypjbg/XNMjnZfGLHxVnQ== + dependencies: + "@aws-sdk/core" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/property-provider" "^4.1.1" + "@smithy/shared-ini-file-loader" "^4.2.0" + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.896.0.tgz#78609a50ed292675b691fef11f87281f4d844ad4" + integrity sha512-77Te8WrVdLABKlv7QyetXP6aYEX1UORiahLA1PXQb/p66aFBw18Xc6JiN/6zJ4RqdyV1Xr9rwYBwGYua93ANIA== + dependencies: + "@aws-sdk/client-sso" "3.896.0" + "@aws-sdk/core" "3.896.0" + "@aws-sdk/token-providers" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/property-provider" "^4.1.1" + "@smithy/shared-ini-file-loader" "^4.2.0" + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.896.0.tgz#b80271e417bd2f26f349bec5a718301a16af9772" + integrity sha512-gwMwZWumo+V0xJplO8j2HIb1TfPsF9fbcRGXS0CanEvjg4fF2Xs1pOQl2oCw3biPZpxHB0plNZjqSF2eneGg9g== + dependencies: + "@aws-sdk/core" "3.896.0" + "@aws-sdk/nested-clients" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/property-provider" "^4.1.1" + "@smithy/shared-ini-file-loader" "^4.2.0" + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/crt-loader@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/crt-loader/-/crt-loader-3.896.0.tgz#f1b2b62ee65c9a1b0fdbcb9d0bd1d69a349097fe" + integrity sha512-TqQESjPccMCUSMPmnGDDDZkZzJEPjfjr2lnmUCuuBAqgVAU+FGZtGM13kYz6XDMQEQhuoZe10IEoJU7mwSMHMw== + dependencies: + "@aws-sdk/util-user-agent-node" "3.896.0" aws-crt "^1.24.0" tslib "^2.6.2" -"@aws-sdk/endpoint-cache@3.873.0": - version "3.873.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/endpoint-cache/-/endpoint-cache-3.873.0.tgz#f0b271d43210924731b15feebc13d9252a567f96" - integrity sha512-EHd+5bSp/hZc78SMq9cUCIsX0B4ekZtFUVSSLEXyYv8x/nHFTnTqN9TsxV8bjlztR3aSUeoKSk5qxu/dVGgiQw== +"@aws-sdk/endpoint-cache@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/endpoint-cache/-/endpoint-cache-3.893.0.tgz#9b50d61d12360bedc2c25f3e52dce5ef48794613" + integrity sha512-KSwTfyLZyNLszz5f/yoLC+LC+CRKpeJii/+zVAy7JUOQsKhSykiRUPYUx7o2Sdc4oJfqqUl26A/jSttKYnYtAA== dependencies: mnemonist "0.38.3" tslib "^2.6.2" -"@aws-sdk/middleware-endpoint-discovery@3.873.0": - version "3.873.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.873.0.tgz#aecb0ca137167b0ff23eb39f0f7aca7509af1629" - integrity sha512-qKQocn1MzaLS9dt5xt3MvQsZaQzRsmOFdazWXkMup1AtFrULSUklsbHjm5fg5xyFPN8ipNzPi+MCXcgPzfpKkg== +"@aws-sdk/middleware-endpoint-discovery@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.893.0.tgz#4d546df3bbf6eccd13b527cbe6d8810ae35af07e" + integrity sha512-WnKSbB397NuMm14/ydw+GbY5+KlnoHf033zIo92n/6AkNoSD1crPRG361ttDoWmk111dfBr/ki5yRfgjujtk9w== dependencies: - "@aws-sdk/endpoint-cache" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" + "@aws-sdk/endpoint-cache" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.840.0": - version "3.840.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.840.0.tgz#7c8b163fb13d588b87523b53f7d98de73262e83f" - integrity sha512-ub+hXJAbAje94+Ya6c6eL7sYujoE8D4Bumu1NUI8TXjUhVVn0HzVWQjpRLshdLsUp1AW7XyeJaxyajRaJQ8+Xg== +"@aws-sdk/middleware-host-header@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.893.0.tgz#1a4b14c11cff158b383e2b859be5c468d2c2c162" + integrity sha512-qL5xYRt80ahDfj9nDYLhpCNkDinEXvjLe/Qen/Y/u12+djrR2MB4DRa6mzBCkLkdXDtf0WAoW2EZsNCfGrmOEQ== dependencies: - "@aws-sdk/types" "3.840.0" - "@smithy/protocol-http" "^5.1.2" - "@smithy/types" "^4.3.1" + "@aws-sdk/types" "3.893.0" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.873.0": - version "3.873.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.873.0.tgz#81e9c2f61674b96337472bcaefd85ce3b7a24f7b" - integrity sha512-KZ/W1uruWtMOs7D5j3KquOxzCnV79KQW9MjJFZM/M0l6KI8J6V3718MXxFHsTjUE4fpdV6SeCNLV1lwGygsjJA== +"@aws-sdk/middleware-logger@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.893.0.tgz#4ecb20ee0771a2f3afdc07c1310b97251d3854e2" + integrity sha512-ZqzMecjju5zkBquSIfVfCORI/3Mge21nUY4nWaGQy+NUXehqCGG4W7AiVpiHGOcY2cGJa7xeEkYcr2E2U9U0AA== dependencies: - "@aws-sdk/types" "3.862.0" - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" + "@aws-sdk/types" "3.893.0" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.840.0": - version "3.840.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.840.0.tgz#d92ade1817ac7dc78a3567c1239bb1a3f3b1b57a" - integrity sha512-lSV8FvjpdllpGaRspywss4CtXV8M7NNNH+2/j86vMH+YCOZ6fu2T/TyFd/tHwZ92vDfHctWkRbQxg0bagqwovA== +"@aws-sdk/middleware-recursion-detection@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.893.0.tgz#9fde6f10e72fcbd8ce4f0eea629c07ca64ce86ba" + integrity sha512-H7Zotd9zUHQAr/wr3bcWHULYhEeoQrF54artgsoUGIf/9emv6LzY89QUccKIxYd6oHKNTrTyXm9F0ZZrzXNxlg== dependencies: - "@aws-sdk/types" "3.840.0" - "@smithy/types" "^4.3.1" + "@aws-sdk/types" "3.893.0" + "@aws/lambda-invoke-store" "^0.0.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.876.0": - version "3.876.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.876.0.tgz#16ee45f7bcd887badc8f12d80eef9ba18a0ac97c" - integrity sha512-cpWJhOuMSyz9oV25Z/CMHCBTgafDCbv7fHR80nlRrPdPZ8ETNsahwRgltXP1QJJ8r3X/c1kwpOR7tc+RabVzNA== +"@aws-sdk/middleware-sdk-s3@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.896.0.tgz#419d558892d49b63db68265577b6ca6a1e35516e" + integrity sha512-hlPu/AZ5Afa4ZafP+aXIjRtKm7BX57lurA+TJ+7nXm1Az8Du3Sg2tZXP2/GfqTztLIFQYj/Jy5smkJ0+1HNAPQ== dependencies: - "@aws-sdk/types" "3.862.0" - "@smithy/types" "^4.3.2" + "@aws-sdk/core" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/core" "^3.12.0" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/protocol-http" "^5.2.1" + "@smithy/signature-v4" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/util-config-provider" "^4.1.0" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-stream" "^4.3.2" + "@smithy/util-utf8" "^4.1.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.840.0": - version "3.840.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.840.0.tgz#8ea2c00af258db0b64ea394e044cedb6101b5ffd" - integrity sha512-Gu7lGDyfddyhIkj1Z1JtrY5NHb5+x/CRiB87GjaSrKxkDaydtX2CU977JIABtt69l9wLbcGDIQ+W0uJ5xPof7g== +"@aws-sdk/middleware-sdk-sqs@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.896.0.tgz#5b502ebd84f4ee1e77d5b7033a289852caef947e" + integrity sha512-Bb0UkqUK7EH6li4gxh3ANpcHZ0DMW8oIRbxColwoW+Hvxn7iVjNatZZTfcQu7shFhzzFcBmHljsXTSi4sS0BEA== dependencies: - "@aws-sdk/types" "3.840.0" - "@smithy/protocol-http" "^5.1.2" - "@smithy/types" "^4.3.1" + "@aws-sdk/types" "3.893.0" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/util-hex-encoding" "^4.1.0" + "@smithy/util-utf8" "^4.1.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.873.0": - version "3.873.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.873.0.tgz#1f9086542800d355d85332acea7accf1856e408b" - integrity sha512-OtgY8EXOzRdEWR//WfPkA/fXl0+WwE8hq0y9iw2caNyKPtca85dzrrZWnPqyBK/cpImosrpR1iKMYr41XshsCg== +"@aws-sdk/middleware-user-agent@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.896.0.tgz#be459f4b652e200cfded484f87353ac69fbef69f" + integrity sha512-so/3tZH34YIeqG/QJgn5ZinnmHRdXV1ehsj4wVUrezL/dVW86jfwIkQIwpw8roOC657UoUf91c9FDhCxs3J5aQ== dependencies: - "@aws-sdk/types" "3.862.0" - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/middleware-sdk-s3@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.858.0.tgz#48eae3b04e97ec448f57449001fe4ddfd9ba5ffb" - integrity sha512-g1LBHK9iAAMnh4rRX4/cGBuICH5R9boHUw4X9FkMC+ROAH9z1A2uy6bE55sg5guheAmVTQ5sOsVZb8QPEQbIUA== - dependencies: - "@aws-sdk/core" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-arn-parser" "3.804.0" - "@smithy/core" "^3.7.2" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/protocol-http" "^5.1.2" - "@smithy/signature-v4" "^5.1.2" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - "@smithy/util-config-provider" "^4.0.0" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-stream" "^4.2.3" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-sdk-s3@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.879.0.tgz#41fe59a1d902ae1c92731c7ef8aa0e1df2d6dfe0" - integrity sha512-ZTpLr2AbZcCsEzu18YCtB8Tp8tjAWHT0ccfwy3HiL6g9ncuSMW+7BVi1hDYmBidFwpPbnnIMtM0db3pDMR6/WA== - dependencies: - "@aws-sdk/core" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-arn-parser" "3.873.0" - "@smithy/core" "^3.9.0" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/protocol-http" "^5.1.3" - "@smithy/signature-v4" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/util-config-provider" "^4.0.0" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-stream" "^4.2.4" - "@smithy/util-utf8" "^4.0.0" + "@aws-sdk/core" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@smithy/core" "^3.12.0" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-sqs@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.879.0.tgz#e22590fb11086b8855d1d16c615846c2f893d4a8" - integrity sha512-X/EwCU6AUF9ts67lgUBfg658WhsGn965R4Jm27WYJsxv7BRTDtVoyMvaof3GAUKAzJPGoEKr5ekX38wE6tS0gA== - dependencies: - "@aws-sdk/types" "3.862.0" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/util-hex-encoding" "^4.0.0" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-user-agent@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.858.0.tgz#fee39eb6e5c56e704880f18efaf76ce60be980b0" - integrity sha512-pC3FT/sRZ6n5NyXiTVu9dpf1D9j3YbJz3XmeOOwJqO/Mib2PZyIQktvNMPgwaC5KMVB1zWqS5bmCwxpMOnq0UQ== - dependencies: - "@aws-sdk/core" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.848.0" - "@smithy/core" "^3.7.2" - "@smithy/protocol-http" "^5.1.2" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/middleware-user-agent@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.879.0.tgz#e207d6ae2a82059d843200d92a2f7ccbaa3cbc67" - integrity sha512-DDSV8228lQxeMAFKnigkd0fHzzn5aauZMYC3CSj6e5/qE7+9OwpkUcjHfb7HZ9KWG6L2/70aKZXHqiJ4xKhOZw== - dependencies: - "@aws-sdk/core" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@smithy/core" "^3.9.0" - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/nested-clients@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.858.0.tgz#171466f44a65818b6233fd38dae6116344bd4401" - integrity sha512-ChdIj80T2whoWbovmO7o8ICmhEB2S9q4Jes9MBnKAPm69PexcJAK2dQC8yI4/iUP8b3+BHZoUPrYLWjBxIProQ== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.858.0" - "@aws-sdk/middleware-host-header" "3.840.0" - "@aws-sdk/middleware-logger" "3.840.0" - "@aws-sdk/middleware-recursion-detection" "3.840.0" - "@aws-sdk/middleware-user-agent" "3.858.0" - "@aws-sdk/region-config-resolver" "3.840.0" - "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.848.0" - "@aws-sdk/util-user-agent-browser" "3.840.0" - "@aws-sdk/util-user-agent-node" "3.858.0" - "@smithy/config-resolver" "^4.1.4" - "@smithy/core" "^3.7.2" - "@smithy/fetch-http-handler" "^5.1.0" - "@smithy/hash-node" "^4.0.4" - "@smithy/invalid-dependency" "^4.0.4" - "@smithy/middleware-content-length" "^4.0.4" - "@smithy/middleware-endpoint" "^4.1.17" - "@smithy/middleware-retry" "^4.1.18" - "@smithy/middleware-serde" "^4.0.8" - "@smithy/middleware-stack" "^4.0.4" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/node-http-handler" "^4.1.0" - "@smithy/protocol-http" "^5.1.2" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - "@smithy/url-parser" "^4.0.4" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.25" - "@smithy/util-defaults-mode-node" "^4.0.25" - "@smithy/util-endpoints" "^3.0.6" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-retry" "^4.0.6" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/nested-clients@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.879.0.tgz#478f7c54c26d40dc564747a1caa6b2d10c1ba471" - integrity sha512-7+n9NpIz9QtKYnxmw1fHi9C8o0GrX8LbBR4D50c7bH6Iq5+XdSuL5AFOWWQ5cMD0JhqYYJhK/fJsVau3nUtC4g== +"@aws-sdk/nested-clients@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.896.0.tgz#5fb0f31ca8a4a26d92b812e946e068d9b3c63bc6" + integrity sha512-KaHALB6DIXScJL/ExmonADr3jtTV6dpOHoEeTRSskJ/aW+rhZo7kH8SLmrwOT/qX8d5tza17YyR/oRkIKY6Eaw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.879.0" - "@aws-sdk/middleware-host-header" "3.873.0" - "@aws-sdk/middleware-logger" "3.876.0" - "@aws-sdk/middleware-recursion-detection" "3.873.0" - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/region-config-resolver" "3.873.0" - "@aws-sdk/types" "3.862.0" - "@aws-sdk/util-endpoints" "3.879.0" - "@aws-sdk/util-user-agent-browser" "3.873.0" - "@aws-sdk/util-user-agent-node" "3.879.0" - "@smithy/config-resolver" "^4.1.5" - "@smithy/core" "^3.9.0" - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/hash-node" "^4.0.5" - "@smithy/invalid-dependency" "^4.0.5" - "@smithy/middleware-content-length" "^4.0.5" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-retry" "^4.1.20" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/protocol-http" "^5.1.3" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-body-length-node" "^4.0.0" - "@smithy/util-defaults-mode-browser" "^4.0.27" - "@smithy/util-defaults-mode-node" "^4.0.27" - "@smithy/util-endpoints" "^3.0.7" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@aws-sdk/region-config-resolver@3.840.0": - version "3.840.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.840.0.tgz#240690ead3131c4c47186b4929776439fe2f6729" - integrity sha512-Qjnxd/yDv9KpIMWr90ZDPtRj0v75AqGC92Lm9+oHXZ8p1MjG5JE2CW0HL8JRgK9iKzgKBL7pPQRXI8FkvEVfrA== - dependencies: - "@aws-sdk/types" "3.840.0" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/types" "^4.3.1" - "@smithy/util-config-provider" "^4.0.0" - "@smithy/util-middleware" "^4.0.4" - tslib "^2.6.2" - -"@aws-sdk/region-config-resolver@3.873.0": - version "3.873.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.873.0.tgz#9a5ddf8aa5a068d1c728dda3ef7e5b31561f7419" - integrity sha512-q9sPoef+BBG6PJnc4x60vK/bfVwvRWsPgcoQyIra057S/QGjq5VkjvNk6H8xedf6vnKlXNBwq9BaANBXnldUJg== - dependencies: - "@aws-sdk/types" "3.862.0" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/types" "^4.3.2" - "@smithy/util-config-provider" "^4.0.0" - "@smithy/util-middleware" "^4.0.5" - tslib "^2.6.2" - -"@aws-sdk/signature-v4-crt@^3.859.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.879.0.tgz#02ed9d6717055e09c85096c9988eb80a2d4d3e1d" - integrity sha512-Xrl6blxa+NEtnbMAfkcUCd7HlgJkcQ0/dDkxnoIa9n+U/ZldVpOSQEwjiM06dyTJf0pyA1LoHakPQOA8EYv2Vg== - dependencies: - "@aws-sdk/crt-loader" "3.879.0" - "@aws-sdk/signature-v4-multi-region" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/querystring-parser" "^4.0.5" - "@smithy/signature-v4" "^5.1.3" - "@smithy/types" "^4.3.2" - "@smithy/util-middleware" "^4.0.5" - tslib "^2.6.2" - -"@aws-sdk/signature-v4-multi-region@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.858.0.tgz#59e1731ce3da1027bcfa28944d21e520a6d31b01" - integrity sha512-WtQvCtIz8KzTqd/OhjziWb5nAFDEZ0pE1KJsWBZ0j6Ngvp17ORSY37U96buU0SlNNflloGT7ZIlDkdFh73YktA== - dependencies: - "@aws-sdk/middleware-sdk-s3" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/protocol-http" "^5.1.2" - "@smithy/signature-v4" "^5.1.2" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/signature-v4-multi-region@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.879.0.tgz#ce164fe2a7f417bf341237ca017973d79910ecba" - integrity sha512-MDsw0EWOHyKac75X3gD8tLWtmPuRliS/s4IhWRhsdDCU13wewHIs5IlA5B65kT6ISf49yEIalEH3FHUSVqdmIQ== - dependencies: - "@aws-sdk/middleware-sdk-s3" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/protocol-http" "^5.1.3" - "@smithy/signature-v4" "^5.1.3" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/token-providers@3.859.0": - version "3.859.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.859.0.tgz#7da5352d45bb8f684279afecec134a1d9d92866f" - integrity sha512-6P2wlvm9KBWOvRNn0Pt8RntnXg8fzOb5kEShvWsOsAocZeqKNaYbihum5/Onq1ZPoVtkdb++8eWDocDnM4k85Q== - dependencies: - "@aws-sdk/core" "3.858.0" - "@aws-sdk/nested-clients" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/property-provider" "^4.0.4" - "@smithy/shared-ini-file-loader" "^4.0.4" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/token-providers@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.879.0.tgz#7c2806f23dc740853da6fe6b7d8a76ef19d4b428" - integrity sha512-47J7sCwXdnw9plRZNAGVkNEOlSiLb/kR2slnDIHRK9NB/ECKsoqgz5OZQJ9E2f0yqOs8zSNJjn3T01KxpgW8Qw== - dependencies: - "@aws-sdk/core" "3.879.0" - "@aws-sdk/nested-clients" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/property-provider" "^4.0.5" - "@smithy/shared-ini-file-loader" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@aws-sdk/types@3.840.0", "@aws-sdk/types@^3.222.0": + "@aws-sdk/core" "3.896.0" + "@aws-sdk/middleware-host-header" "3.893.0" + "@aws-sdk/middleware-logger" "3.893.0" + "@aws-sdk/middleware-recursion-detection" "3.893.0" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/region-config-resolver" "3.893.0" + "@aws-sdk/types" "3.893.0" + "@aws-sdk/util-endpoints" "3.895.0" + "@aws-sdk/util-user-agent-browser" "3.893.0" + "@aws-sdk/util-user-agent-node" "3.896.0" + "@smithy/config-resolver" "^4.2.2" + "@smithy/core" "^3.12.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/hash-node" "^4.1.1" + "@smithy/invalid-dependency" "^4.1.1" + "@smithy/middleware-content-length" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-retry" "^4.3.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-body-length-node" "^4.1.0" + "@smithy/util-defaults-mode-browser" "^4.1.4" + "@smithy/util-defaults-mode-node" "^4.1.4" + "@smithy/util-endpoints" "^3.1.2" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/util-utf8" "^4.1.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.893.0.tgz#570dfd2314b3f71eb263557bb06fea36b5188cd6" + integrity sha512-/cJvh3Zsa+Of0Zbg7vl9wp/kZtdb40yk/2+XcroAMVPO9hPvmS9r/UOm6tO7FeX4TtkRFwWaQJiTZTgSdsPY+Q== + dependencies: + "@aws-sdk/types" "3.893.0" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/types" "^4.5.0" + "@smithy/util-config-provider" "^4.1.0" + "@smithy/util-middleware" "^4.1.1" + tslib "^2.6.2" + +"@aws-sdk/signature-v4-crt@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.896.0.tgz#edaedc8343b372ad817b24098c00a1c29152fc6c" + integrity sha512-dq9ODsqJQNftyWGzZXdmst1oyeKI5IqIr3HZDnh8YAZhQ4z2TTQDsSDxG8vC23J9oB4lPw21bhTIJxbrTJnZaw== + dependencies: + "@aws-sdk/crt-loader" "3.896.0" + "@aws-sdk/signature-v4-multi-region" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/querystring-parser" "^4.1.1" + "@smithy/signature-v4" "^5.2.1" + "@smithy/types" "^4.5.0" + "@smithy/util-middleware" "^4.1.1" + tslib "^2.6.2" + +"@aws-sdk/signature-v4-multi-region@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.896.0.tgz#2aa0ca3055dc000f6d68fe48adcee612ce814d36" + integrity sha512-txiQDEZXL9tlNP8mbnNaDtuHBYc/FCqaZ8Y76qnfM3o6CTIn0t0tTAlnx1CyFe4EaikVBgQuZvj5KfNA8PmlzA== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/protocol-http" "^5.2.1" + "@smithy/signature-v4" "^5.2.1" + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.896.0.tgz#760cdca947129cd422ca636218addefffa932420" + integrity sha512-WBoD+RY7tUfW9M+wGrZ2vdveR+ziZOjGHWFY3lcGnDvI8KE+fcSccEOTxgJBNBS5Z8B+WHKU2sZjb+Z7QqGwjw== + dependencies: + "@aws-sdk/core" "3.896.0" + "@aws-sdk/nested-clients" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/property-provider" "^4.1.1" + "@smithy/shared-ini-file-loader" "^4.2.0" + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/types@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.893.0.tgz#1afbdb9d62bf86caeac380e3cac11a051076400a" + integrity sha512-Aht1nn5SnA0N+Tjv0dzhAY7CQbxVtmq1bBR6xI0MhG7p2XYVh1wXuKTzrldEvQWwA3odOYunAfT9aBiKZx9qIg== + dependencies: + "@smithy/types" "^4.5.0" + tslib "^2.6.2" + +"@aws-sdk/types@^3.222.0": version "3.840.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.840.0.tgz#aadc6843d5c1f24b3d1d228059e702a355bf07c3" integrity sha512-xliuHaUFZxEx1NSXeLLZ9Dyu6+EJVQKEoD+yM+zqUo3YDZ7medKJWY6fIOKiPX/N7XbLdBYwajb15Q7IL8KkeA== @@ -1136,55 +832,29 @@ "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@aws-sdk/types@3.862.0": - version "3.862.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.862.0.tgz#2f5622e1aa3a5281d4f419f5d2c90f87dd5ff0cf" - integrity sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg== +"@aws-sdk/util-arn-parser@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz#fcc9b792744b9da597662891c2422dda83881d8d" + integrity sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA== dependencies: - "@smithy/types" "^4.3.2" tslib "^2.6.2" -"@aws-sdk/util-arn-parser@3.804.0": - version "3.804.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.804.0.tgz#d0b52bf5f9ae5b2c357a635551e5844dcad074c8" - integrity sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ== - dependencies: - tslib "^2.6.2" - -"@aws-sdk/util-arn-parser@3.873.0": - version "3.873.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.873.0.tgz#12c5ea852574dfb6fe78eaac1666433dff1acffa" - integrity sha512-qag+VTqnJWDn8zTAXX4wiVioa0hZDQMtbZcGRERVnLar4/3/VIKBhxX2XibNQXFu1ufgcRn4YntT/XEPecFWcg== +"@aws-sdk/util-dynamodb@^3.895.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.896.0.tgz#c3d1f8a4c972453e7c09798d84d8969dbb458836" + integrity sha512-1vOPb4LnDDMnrZFif9uZYxydoyr1bijkovh1c+u2TxDd9cZDh+X/eyuRSuIvsPeueOwXWTdcKsojRZkn3w1mnA== dependencies: tslib "^2.6.2" -"@aws-sdk/util-dynamodb@^3.585.0", "@aws-sdk/util-dynamodb@^3.859.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.879.0.tgz#ee1bb187344ef993641a326a420b25b4089f5517" - integrity sha512-KyzsV7mv6Kz9udz16AEeutYzl4++rg0oTeMJLiSZ9TcI7DiZYiJLr8oRWRKyvXpP4/30HQhhW2ycJPHQoTHprA== - dependencies: - tslib "^2.6.2" - -"@aws-sdk/util-endpoints@3.848.0": - version "3.848.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.848.0.tgz#dea15ac0949fcbc518426fb4a86d1e9bd53433db" - integrity sha512-fY/NuFFCq/78liHvRyFKr+aqq1aA/uuVSANjzr5Ym8c+9Z3HRPE9OrExAHoMrZ6zC8tHerQwlsXYYH5XZ7H+ww== - dependencies: - "@aws-sdk/types" "3.840.0" - "@smithy/types" "^4.3.1" - "@smithy/url-parser" "^4.0.4" - "@smithy/util-endpoints" "^3.0.6" - tslib "^2.6.2" - -"@aws-sdk/util-endpoints@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.879.0.tgz#e30c15beede883d327dbd290c47512d6d700a2e9" - integrity sha512-aVAJwGecYoEmbEFju3127TyJDF9qJsKDUUTRMDuS8tGn+QiWQFnfInmbt+el9GU1gEJupNTXV+E3e74y51fb7A== +"@aws-sdk/util-endpoints@3.895.0": + version "3.895.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.895.0.tgz#d3881250cecc40fa9d721a33661c1aaa64aba643" + integrity sha512-MhxBvWbwxmKknuggO2NeMwOVkHOYL98pZ+1ZRI5YwckoCL3AvISMnPJgfN60ww6AIXHGpkp+HhpFdKOe8RHSEg== dependencies: - "@aws-sdk/types" "3.862.0" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-endpoints" "^3.0.7" + "@aws-sdk/types" "3.893.0" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-endpoints" "^3.1.2" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -1194,46 +864,25 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.840.0": - version "3.840.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.840.0.tgz#6c2f55494352a86048c52852b0c357bb21905984" - integrity sha512-JdyZM3EhhL4PqwFpttZu1afDpPJCCc3eyZOLi+srpX11LsGj6sThf47TYQN75HT1CarZ7cCdQHGzP2uy3/xHfQ== - dependencies: - "@aws-sdk/types" "3.840.0" - "@smithy/types" "^4.3.1" - bowser "^2.11.0" - tslib "^2.6.2" - -"@aws-sdk/util-user-agent-browser@3.873.0": - version "3.873.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.873.0.tgz#0fcc3c1877ae74aa692cc0b4ad874bc9a6ee1ad6" - integrity sha512-AcRdbK6o19yehEcywI43blIBhOCSo6UgyWcuOJX5CFF8k39xm1ILCjQlRRjchLAxWrm0lU0Q7XV90RiMMFMZtA== +"@aws-sdk/util-user-agent-browser@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.893.0.tgz#be0aac5c73a30c2a03aedb2e3501bb277bad79a1" + integrity sha512-PE9NtbDBW6Kgl1bG6A5fF3EPo168tnkj8TgMcT0sg4xYBWsBpq0bpJZRh+Jm5Bkwiw9IgTCLjEU7mR6xWaMB9w== dependencies: - "@aws-sdk/types" "3.862.0" - "@smithy/types" "^4.3.2" + "@aws-sdk/types" "3.893.0" + "@smithy/types" "^4.5.0" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.858.0": - version "3.858.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.858.0.tgz#bdf767443486371f1c7432dd4d1e178f8a45074c" - integrity sha512-T1m05QlN8hFpx5/5duMjS8uFSK5e6EXP45HQRkZULVkL3DK+jMaxsnh3KLl5LjUoHn/19M4HM0wNUBhYp4Y2Yw== +"@aws-sdk/util-user-agent-node@3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.896.0.tgz#190a8aa7ffae3f8d29bacdd3835b901daf116195" + integrity sha512-jegizucAwoxyBddKl0kRGNEgRHcfGuMeyhP1Nf+wIUmHz/9CxobIajqcVk/KRNLdZY5mSn7YG2VtP3z0BcBb0w== dependencies: - "@aws-sdk/middleware-user-agent" "3.858.0" - "@aws-sdk/types" "3.840.0" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@aws-sdk/util-user-agent-node@3.879.0": - version "3.879.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.879.0.tgz#e14001b5fd08d14dab2dd12d08ecd1322ec99615" - integrity sha512-A5KGc1S+CJRzYnuxJQQmH1BtGsz46AgyHkqReKfGiNQA8ET/9y9LQ5t2ABqnSBHHIh3+MiCcQSkUZ0S3rTodrQ== - dependencies: - "@aws-sdk/middleware-user-agent" "3.879.0" - "@aws-sdk/types" "3.862.0" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/types" "^4.3.2" + "@aws-sdk/middleware-user-agent" "3.896.0" + "@aws-sdk/types" "3.893.0" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/types" "^4.5.0" tslib "^2.6.2" "@aws-sdk/util-utf8-browser@^3.259.0": @@ -1243,21 +892,19 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/xml-builder@3.821.0": - version "3.821.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.821.0.tgz#ff89bf1276fca41276ed508b9c8ae21978d91177" - integrity sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA== +"@aws-sdk/xml-builder@3.894.0": + version "3.894.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.894.0.tgz#7110e86622345d3da220a2ed5259a30a91dec4bc" + integrity sha512-E6EAMc9dT1a2DOdo4zyOf3fp5+NJ2wI+mcm7RaW1baFIWDwcb99PpvWoV7YEiK7oaBDshuOEGWKUSYXdW+JYgA== dependencies: - "@smithy/types" "^4.3.1" + "@smithy/types" "^4.5.0" + fast-xml-parser "5.2.5" tslib "^2.6.2" -"@aws-sdk/xml-builder@3.873.0": - version "3.873.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.873.0.tgz#b5a3acfdeecfc1b7fee8a7773cb2a45590eb5701" - integrity sha512-kLO7k7cGJ6KaHiExSJWojZurF7SnGMDHXRuQunFnEoD0n1yB6Lqy/S/zHiQ7oJnBhPr9q0TW9qFkrsZb1Uc54w== - dependencies: - "@smithy/types" "^4.3.2" - tslib "^2.6.2" +"@aws/lambda-invoke-store@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz#92d792a7dda250dfcb902e13228f37a81be57c8f" + integrity sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw== "@azure/msal-browser@^4.11.0": version "4.18.0" @@ -1850,15 +1497,6 @@ resolved "https://registry.yarnpkg.com/@fastify/aws-lambda/-/aws-lambda-6.0.0.tgz#be3414a1ed2d49c84f8370203e136849c205fdb5" integrity sha512-4elLd+E0wjwj82T42pQlb3UXceVh8Wh8ADvoT5QIWBF39n4mIGL751UlHlA5W4frYZ8w45Tw0GeqhmIEGc2QKw== -"@fastify/caching@^9.0.1": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@fastify/caching/-/caching-9.0.3.tgz#f69318232f74a90f4079b993ce17d2b21720b074" - integrity sha512-5K/2shYpvWHWiSAs59SaCVBoFhHEF8Yz4TTiXZf8YWVDcxuIxw0Adn5eDQ7s132s7vwURNOnCKHBjUQSOI+PLA== - dependencies: - abstract-cache "^1.0.1" - fastify-plugin "^5.0.0" - uid-safe "^2.1.5" - "@fastify/cors@^11.0.1": version "11.1.0" resolved "https://registry.yarnpkg.com/@fastify/cors/-/cors-11.1.0.tgz#09f79748f08f147d19cfc3f1807b59791bc77cf0" @@ -2510,199 +2148,124 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz#282046f03e886e352b2d5f5da5eb755e01457f3f" integrity sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA== -"@smithy/abort-controller@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.0.4.tgz#ab991d521fc78b5c7f24907fcd6803c0f2da51d9" - integrity sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA== - dependencies: - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@smithy/abort-controller@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.0.5.tgz#2872a12d0f11dfdcc4254b39566d5f24ab26a4ab" - integrity sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g== - dependencies: - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@smithy/config-resolver@^4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.1.4.tgz#05d8eab8bb8eb73bec90c222fc19ac5608b1384e" - integrity sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w== +"@smithy/abort-controller@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.1.1.tgz#9b3872ab6b2c061486175c281dadc0a853260533" + integrity sha512-vkzula+IwRvPR6oKQhMYioM3A/oX/lFCZiwuxkQbRhqJS2S4YRY2k7k/SyR2jMf3607HLtbEwlRxi0ndXHMjRg== dependencies: - "@smithy/node-config-provider" "^4.1.3" - "@smithy/types" "^4.3.1" - "@smithy/util-config-provider" "^4.0.0" - "@smithy/util-middleware" "^4.0.4" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/config-resolver@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.1.5.tgz#3cb7cde8d13ca64630e5655812bac9ffe8182469" - integrity sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw== +"@smithy/config-resolver@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.2.2.tgz#3f6a3c163f9b5b7f852d7d1817bc9e3b2136fa5f" + integrity sha512-IT6MatgBWagLybZl1xQcURXRICvqz1z3APSCAI9IqdvfCkrA7RaQIEfgC6G/KvfxnDfQUDqFV+ZlixcuFznGBQ== dependencies: - "@smithy/node-config-provider" "^4.1.4" - "@smithy/types" "^4.3.2" - "@smithy/util-config-provider" "^4.0.0" - "@smithy/util-middleware" "^4.0.5" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/types" "^4.5.0" + "@smithy/util-config-provider" "^4.1.0" + "@smithy/util-middleware" "^4.1.1" tslib "^2.6.2" -"@smithy/core@^3.7.2": - version "3.7.2" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.7.2.tgz#ae21591dbb983df7d986cc984123cf43f64e3a5a" - integrity sha512-JoLw59sT5Bm8SAjFCYZyuCGxK8y3vovmoVbZWLDPTH5XpPEIwpFd9m90jjVMwoypDuB/SdVgje5Y4T7w50lJaw== +"@smithy/core@^3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.12.0.tgz#81bb6a2a113e334ddaede9d502ff17ce4d8a2cc6" + integrity sha512-zJeAgogZfbwlPGL93y4Z/XNeIN37YCreRUd6YMIRvaq+6RnBK8PPYYIQ85Is/GglPh3kNImD5riDCXbVSDpCiQ== dependencies: - "@smithy/middleware-serde" "^4.0.8" - "@smithy/protocol-http" "^5.1.2" - "@smithy/types" "^4.3.1" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-stream" "^4.2.3" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@smithy/core@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.9.0.tgz#0d0c05136143d5207afc7bbed2367b6baf8de388" - integrity sha512-B/GknvCfS3llXd/b++hcrwIuqnEozQDnRL4sBmOac5/z/dr0/yG1PURNPOyU4Lsiy1IyTj8scPxVqRs5dYWf6A== - dependencies: - "@smithy/middleware-serde" "^4.0.9" - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-body-length-browser" "^4.0.0" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-stream" "^4.2.4" - "@smithy/util-utf8" "^4.0.0" - "@types/uuid" "^9.0.1" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-body-length-browser" "^4.1.0" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-stream" "^4.3.2" + "@smithy/util-utf8" "^4.1.0" + "@smithy/uuid" "^1.0.0" tslib "^2.6.2" - uuid "^9.0.1" -"@smithy/credential-provider-imds@^4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.6.tgz#4cfd79a619cdbc9a75fcdc51a1193685f6a8944e" - integrity sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw== - dependencies: - "@smithy/node-config-provider" "^4.1.3" - "@smithy/property-provider" "^4.0.4" - "@smithy/types" "^4.3.1" - "@smithy/url-parser" "^4.0.4" - tslib "^2.6.2" - -"@smithy/credential-provider-imds@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.7.tgz#d8bb566ffd8d9e556810b83d6e0b01b39036b810" - integrity sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw== +"@smithy/credential-provider-imds@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.1.2.tgz#68662c873dbe812c13159cb2be3c4ba8aeb52149" + integrity sha512-JlYNq8TShnqCLg0h+afqe2wLAwZpuoSgOyzhYvTgbiKBWRov+uUve+vrZEQO6lkdLOWPh7gK5dtb9dS+KGendg== dependencies: - "@smithy/node-config-provider" "^4.1.4" - "@smithy/property-provider" "^4.0.5" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/property-provider" "^4.1.1" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" tslib "^2.6.2" -"@smithy/eventstream-codec@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.0.5.tgz#e742a4badaaf985ac9abcf4283ff4c39d7e48438" - integrity sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA== +"@smithy/eventstream-codec@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.1.1.tgz#637eb4bceecc3ef588b86c28506439a9cdd7a41f" + integrity sha512-PwkQw1hZwHTQB6X5hSUWz2OSeuj5Z6enWuAqke7DgWoP3t6vg3ktPpqPz3Erkn6w+tmsl8Oss6nrgyezoea2Iw== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^4.3.2" - "@smithy/util-hex-encoding" "^4.0.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-browser@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.0.5.tgz#fbebe76edf542d656fe3b187ac6b1e47a63f735f" - integrity sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ== - dependencies: - "@smithy/eventstream-serde-universal" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@smithy/eventstream-serde-config-resolver@^4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.1.3.tgz#59a01611feaef9830da592bf726ee8eef4f2c11d" - integrity sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA== - dependencies: - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@smithy/eventstream-serde-node@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.0.5.tgz#44f962898cfb3de806725ea5d88e904c7f3955d7" - integrity sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g== - dependencies: - "@smithy/eventstream-serde-universal" "^4.0.5" - "@smithy/types" "^4.3.2" + "@smithy/types" "^4.5.0" + "@smithy/util-hex-encoding" "^4.1.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.0.5.tgz#ec34b9999c7db3e057d67acb14ec0c8627c7ae2e" - integrity sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw== +"@smithy/eventstream-serde-browser@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.1.1.tgz#f7df13ebd5a6028b12b496f12eecdd08c4c9b792" + integrity sha512-Q9QWdAzRaIuVkefupRPRFAasaG/droBqn1feiMnmLa+LLEUG45pqX1+FurHFmlqiCfobB3nUlgoJfeXZsr7MPA== dependencies: - "@smithy/eventstream-codec" "^4.0.5" - "@smithy/types" "^4.3.2" + "@smithy/eventstream-serde-universal" "^4.1.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.1.0.tgz#387abd9ec6c8ff0af33b268c0f6ccb289c1b1563" - integrity sha512-mADw7MS0bYe2OGKkHYMaqarOXuDwRbO6ArD91XhHcl2ynjGCFF+hvqf0LyQcYxkA1zaWjefSkU7Ne9mqgApSgQ== +"@smithy/eventstream-serde-config-resolver@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.2.1.tgz#77333a110361bfe2749b685d31e01299ede87c40" + integrity sha512-oSUkF9zDN9zcOUBMtxp8RewJlh71E9NoHWU8jE3hU9JMYCsmW4assVTpgic/iS3/dM317j6hO5x18cc3XrfvEw== dependencies: - "@smithy/protocol-http" "^5.1.2" - "@smithy/querystring-builder" "^4.0.4" - "@smithy/types" "^4.3.1" - "@smithy/util-base64" "^4.0.0" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.1.1.tgz#a444c99bffdf314deb447370429cc3e719f1a866" - integrity sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ== +"@smithy/eventstream-serde-node@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.1.1.tgz#635819a756cb8a69a7e3eb91ca9076284ea00939" + integrity sha512-tn6vulwf/ScY0vjhzptSJuDJJqlhNtUjkxJ4wiv9E3SPoEqTEKbaq6bfqRO7nvhTG29ALICRcvfFheOUPl8KNA== dependencies: - "@smithy/protocol-http" "^5.1.3" - "@smithy/querystring-builder" "^4.0.5" - "@smithy/types" "^4.3.2" - "@smithy/util-base64" "^4.0.0" + "@smithy/eventstream-serde-universal" "^4.1.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/hash-node@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.0.4.tgz#f867cfe6b702ed8893aacd3e097f8ca8ecba579e" - integrity sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ== +"@smithy/eventstream-serde-universal@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.1.1.tgz#803cdde6a17ac501cc700ce38400caf70715ecb1" + integrity sha512-uLOAiM/Dmgh2CbEXQx+6/ssK7fbzFhd+LjdyFxXid5ZBCbLHTFHLdD/QbXw5aEDsLxQhgzDxLLsZhsftAYwHJA== dependencies: - "@smithy/types" "^4.3.1" - "@smithy/util-buffer-from" "^4.0.0" - "@smithy/util-utf8" "^4.0.0" + "@smithy/eventstream-codec" "^4.1.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/hash-node@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.0.5.tgz#16cf8efe42b8b611b1f56f78464b97b27ca6a3ec" - integrity sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ== +"@smithy/fetch-http-handler@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.2.1.tgz#fe284a00f1b3a35edf9fba454d287b7f74ef20af" + integrity sha512-5/3wxKNtV3wO/hk1is+CZUhL8a1yy/U+9u9LKQ9kZTkMsHaQjJhc3stFfiujtMnkITjzWfndGA2f7g9Uh9vKng== dependencies: - "@smithy/types" "^4.3.2" - "@smithy/util-buffer-from" "^4.0.0" - "@smithy/util-utf8" "^4.0.0" + "@smithy/protocol-http" "^5.2.1" + "@smithy/querystring-builder" "^4.1.1" + "@smithy/types" "^4.5.0" + "@smithy/util-base64" "^4.1.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.0.4.tgz#8c2c539b2f22e857b4652bd2427a3d7a8befd610" - integrity sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw== +"@smithy/hash-node@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.1.1.tgz#86ceca92487492267e944e4f4507106b731e7971" + integrity sha512-H9DIU9WBLhYrvPs9v4sYvnZ1PiAI0oc8CgNQUJ1rpN3pP7QADbTOUjchI2FB764Ub0DstH5xbTqcMJu1pnVqxA== dependencies: - "@smithy/types" "^4.3.1" + "@smithy/types" "^4.5.0" + "@smithy/util-buffer-from" "^4.1.0" + "@smithy/util-utf8" "^4.1.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.0.5.tgz#ed88e209668266b09c4b501f9bd656728b5ece60" - integrity sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow== +"@smithy/invalid-dependency@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.1.1.tgz#2511335ff889944701c7d2a3b1e4a4d6fe9ddfab" + integrity sha512-1AqLyFlfrrDkyES8uhINRlJXmHA2FkG+3DY8X+rmLSqmFwk3DJnvhyGzyByPyewh2jbmV+TYQBEfngQax8IFGg== dependencies: - "@smithy/types" "^4.3.2" + "@smithy/types" "^4.5.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -2712,323 +2275,171 @@ dependencies: tslib "^2.6.2" -"@smithy/is-array-buffer@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.0.0.tgz#55a939029321fec462bcc574890075cd63e94206" - integrity sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw== - dependencies: - tslib "^2.6.2" - -"@smithy/md5-js@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.0.5.tgz#77216159386050dbcf6b58f16f4ac14ac5183474" - integrity sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA== - dependencies: - "@smithy/types" "^4.3.2" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@smithy/middleware-content-length@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.0.4.tgz#fad1f125779daf8d5f261dae6dbebba0f60c234b" - integrity sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w== - dependencies: - "@smithy/protocol-http" "^5.1.2" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@smithy/middleware-content-length@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.0.5.tgz#c5d6e47f5a9fbba20433602bec9bffaeeb821ff3" - integrity sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ== - dependencies: - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@smithy/middleware-endpoint@^4.1.17": - version "4.1.17" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.17.tgz#d6a87ccf5fe6a6edc5fe01832338854feaf18a12" - integrity sha512-S3hSGLKmHG1m35p/MObQCBCdRsrpbPU8B129BVzRqRfDvQqPMQ14iO4LyRw+7LNizYc605COYAcjqgawqi+6jA== - dependencies: - "@smithy/core" "^3.7.2" - "@smithy/middleware-serde" "^4.0.8" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/shared-ini-file-loader" "^4.0.4" - "@smithy/types" "^4.3.1" - "@smithy/url-parser" "^4.0.4" - "@smithy/util-middleware" "^4.0.4" - tslib "^2.6.2" - -"@smithy/middleware-endpoint@^4.1.19": - version "4.1.19" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.19.tgz#613b843a274b7511862a73867b44cafe8a0a0d3c" - integrity sha512-EAlEPncqo03siNZJ9Tm6adKCQ+sw5fNU8ncxWwaH0zTCwMPsgmERTi6CEKaermZdgJb+4Yvh0NFm36HeO4PGgQ== - dependencies: - "@smithy/core" "^3.9.0" - "@smithy/middleware-serde" "^4.0.9" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/shared-ini-file-loader" "^4.0.5" - "@smithy/types" "^4.3.2" - "@smithy/url-parser" "^4.0.5" - "@smithy/util-middleware" "^4.0.5" - tslib "^2.6.2" - -"@smithy/middleware-retry@^4.1.18": - version "4.1.18" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.1.18.tgz#4d57587722c341822cf8c58790f843008fef0f8e" - integrity sha512-bYLZ4DkoxSsPxpdmeapvAKy7rM5+25gR7PGxq2iMiecmbrRGBHj9s75N74Ylg+aBiw9i5jIowC/cLU2NR0qH8w== - dependencies: - "@smithy/node-config-provider" "^4.1.3" - "@smithy/protocol-http" "^5.1.2" - "@smithy/service-error-classification" "^4.0.6" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-retry" "^4.0.6" - tslib "^2.6.2" - uuid "^9.0.1" - -"@smithy/middleware-retry@^4.1.20": - version "4.1.20" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.1.20.tgz#7fa8617b424f813ab71025712094e61e0f31b0a3" - integrity sha512-T3maNEm3Masae99eFdx1Q7PIqBBEVOvRd5hralqKZNeIivnoGNx5OFtI3DiZ5gCjUkl0mNondlzSXeVxkinh7Q== - dependencies: - "@smithy/node-config-provider" "^4.1.4" - "@smithy/protocol-http" "^5.1.3" - "@smithy/service-error-classification" "^4.0.7" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-retry" "^4.0.7" - "@types/uuid" "^9.0.1" - tslib "^2.6.2" - uuid "^9.0.1" - -"@smithy/middleware-serde@^4.0.8": - version "4.0.8" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.0.8.tgz#3704c8cc46acd0a7f910a78ee1d2f23ce928701f" - integrity sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw== - dependencies: - "@smithy/protocol-http" "^5.1.2" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@smithy/middleware-serde@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.0.9.tgz#71213158bb11c1d632829001ca3f233323fb2a7c" - integrity sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg== - dependencies: - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@smithy/middleware-stack@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.0.4.tgz#58e0c6a0d7678c6ad4d6af8dd9a00f749ffac7c5" - integrity sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA== +"@smithy/is-array-buffer@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.1.0.tgz#d18a2f22280e7173633cb91a9bdb6f3d8a6560b8" + integrity sha512-ePTYUOV54wMogio+he4pBybe8fwg4sDvEVDBU8ZlHOZXbXK3/C0XfJgUCu6qAZcawv05ZhZzODGUerFBPsPUDQ== dependencies: - "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@smithy/middleware-stack@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.0.5.tgz#577050d4c0afe816f1ea85f335b2ef64f73e4328" - integrity sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ== +"@smithy/md5-js@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.1.1.tgz#df81396bef83eb17bce531c871af935df986bdfc" + integrity sha512-MvWXKK743BuHjr/hnWuT6uStdKEaoqxHAQUvbKJPPZM5ZojTNFI5D+47BoQfBE5RgGlRRty05EbWA+NXDv+hIA== dependencies: - "@smithy/types" "^4.3.2" + "@smithy/types" "^4.5.0" + "@smithy/util-utf8" "^4.1.0" tslib "^2.6.2" -"@smithy/node-config-provider@^4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.1.3.tgz#6626fe26c6fe7b0df34f71cb72764ccba414a815" - integrity sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw== +"@smithy/middleware-content-length@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.1.1.tgz#eaea7bd14c7a0b64aef87b8c372c2a04d7b9cb72" + integrity sha512-9wlfBBgTsRvC2JxLJxv4xDGNBrZuio3AgSl0lSFX7fneW2cGskXTYpFxCdRYD2+5yzmsiTuaAJD1Wp7gWt9y9w== dependencies: - "@smithy/property-provider" "^4.0.4" - "@smithy/shared-ini-file-loader" "^4.0.4" - "@smithy/types" "^4.3.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/node-config-provider@^4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.1.4.tgz#42f231b7027e5a7ce003fd80180e586fe814944a" - integrity sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w== +"@smithy/middleware-endpoint@^4.2.4": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.2.4.tgz#d815d27b7869a66ee97b41932053ca5d5ec6315e" + integrity sha512-FZ4hzupOmthm8Q8ujYrd0I+/MHwVMuSTdkDtIQE0xVuvJt9pLT6Q+b0p4/t+slDyrpcf+Wj7SN+ZqT5OryaaZg== dependencies: - "@smithy/property-provider" "^4.0.5" - "@smithy/shared-ini-file-loader" "^4.0.5" - "@smithy/types" "^4.3.2" + "@smithy/core" "^3.12.0" + "@smithy/middleware-serde" "^4.1.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/shared-ini-file-loader" "^4.2.0" + "@smithy/types" "^4.5.0" + "@smithy/url-parser" "^4.1.1" + "@smithy/util-middleware" "^4.1.1" tslib "^2.6.2" -"@smithy/node-http-handler@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.1.0.tgz#6b528cd0da0c35755b34afba207b7db972b0eb92" - integrity sha512-vqfSiHz2v8b3TTTrdXi03vNz1KLYYS3bhHCDv36FYDqxT7jvTll1mMnCrkD+gOvgwybuunh/2VmvOMqwBegxEg== +"@smithy/middleware-retry@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.3.0.tgz#453c9668b013fbfa900957857f74f3b15936b384" + integrity sha512-qhEX9745fAxZvtLM4bQJAVC98elWjiMO2OiHl1s6p7hUzS4QfZO1gXUYNwEK8m0J6NoCD5W52ggWxbIDHI0XSg== dependencies: - "@smithy/abort-controller" "^4.0.4" - "@smithy/protocol-http" "^5.1.2" - "@smithy/querystring-builder" "^4.0.4" - "@smithy/types" "^4.3.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/protocol-http" "^5.2.1" + "@smithy/service-error-classification" "^4.1.2" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-retry" "^4.1.2" + "@smithy/uuid" "^1.0.0" tslib "^2.6.2" -"@smithy/node-http-handler@^4.1.1": +"@smithy/middleware-serde@^4.1.1": version "4.1.1" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.1.1.tgz#dd806d9e08b6e73125040dd0808ab56d16a178e9" - integrity sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw== - dependencies: - "@smithy/abort-controller" "^4.0.5" - "@smithy/protocol-http" "^5.1.3" - "@smithy/querystring-builder" "^4.0.5" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@smithy/property-provider@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.0.4.tgz#303a8fd99665fff61eeb6ec3922eee53838962c5" - integrity sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw== + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.1.1.tgz#cfb99f53c744d7730928235cbe66cc7ff8a8a9b2" + integrity sha512-lh48uQdbCoj619kRouev5XbWhCwRKLmphAif16c4J6JgJ4uXjub1PI6RL38d3BLliUvSso6klyB/LTNpWSNIyg== dependencies: - "@smithy/types" "^4.3.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/property-provider@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.0.5.tgz#d3b368b31d5b130f4c30cc0c91f9ebb28d9685fc" - integrity sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ== +"@smithy/middleware-stack@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.1.1.tgz#1d533fde4ccbb62d7fc0f0b8ac518b7e4791e311" + integrity sha512-ygRnniqNcDhHzs6QAPIdia26M7e7z9gpkIMUe/pK0RsrQ7i5MblwxY8078/QCnGq6AmlUUWgljK2HlelsKIb/A== dependencies: - "@smithy/types" "^4.3.2" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/protocol-http@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.1.2.tgz#8094860c2407f250b80c95899e0385112d6eb98b" - integrity sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ== +"@smithy/node-config-provider@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.2.2.tgz#ede9ac2f689cfdf26815a53fadf139e6aa77bdbb" + integrity sha512-SYGTKyPvyCfEzIN5rD8q/bYaOPZprYUPD2f5g9M7OjaYupWOoQFYJ5ho+0wvxIRf471i2SR4GoiZ2r94Jq9h6A== dependencies: - "@smithy/types" "^4.3.1" + "@smithy/property-provider" "^4.1.1" + "@smithy/shared-ini-file-loader" "^4.2.0" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/protocol-http@^5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.1.3.tgz#86855b528c0e4cb9fa6fb4ed6ba3cdf5960f88f4" - integrity sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w== +"@smithy/node-http-handler@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.2.1.tgz#d7ab8e31659030d3d5a68f0982f15c00b1e67a0c" + integrity sha512-REyybygHlxo3TJICPF89N2pMQSf+p+tBJqpVe1+77Cfi9HBPReNjTgtZ1Vg73exq24vkqJskKDpfF74reXjxfw== dependencies: - "@smithy/types" "^4.3.2" + "@smithy/abort-controller" "^4.1.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/querystring-builder" "^4.1.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/querystring-builder@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.0.4.tgz#f7546efd59d457b3d2525a330c6137e5f907864c" - integrity sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w== +"@smithy/property-provider@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.1.1.tgz#6e11ae6729840314afed05fd6ab48f62c654116b" + integrity sha512-gm3ZS7DHxUbzC2wr8MUCsAabyiXY0gaj3ROWnhSx/9sPMc6eYLMM4rX81w1zsMaObj2Lq3PZtNCC1J6lpEY7zg== dependencies: - "@smithy/types" "^4.3.1" - "@smithy/util-uri-escape" "^4.0.0" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/querystring-builder@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.0.5.tgz#158ae170f8ec2d8af6b84cdaf774205a7dfacf68" - integrity sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A== +"@smithy/protocol-http@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.2.1.tgz#33f2b8e4e1082c3ae0372d1322577e6fa71d7824" + integrity sha512-T8SlkLYCwfT/6m33SIU/JOVGNwoelkrvGjFKDSDtVvAXj/9gOT78JVJEas5a+ETjOu4SVvpCstKgd0PxSu/aHw== dependencies: - "@smithy/types" "^4.3.2" - "@smithy/util-uri-escape" "^4.0.0" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/querystring-parser@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.0.4.tgz#307ab95ee5f1a142ab46c2eddebeae68cb2f703d" - integrity sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w== +"@smithy/querystring-builder@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.1.1.tgz#4d35c1735de8214055424045a117fa5d1d5cdec1" + integrity sha512-J9b55bfimP4z/Jg1gNo+AT84hr90p716/nvxDkPGCD4W70MPms0h8KF50RDRgBGZeL83/u59DWNqJv6tEP/DHA== dependencies: - "@smithy/types" "^4.3.1" + "@smithy/types" "^4.5.0" + "@smithy/util-uri-escape" "^4.1.0" tslib "^2.6.2" -"@smithy/querystring-parser@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.0.5.tgz#95706e56aa769f09dc8922d1b19ffaa06946e252" - integrity sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w== +"@smithy/querystring-parser@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.1.1.tgz#21b861439b2db16abeb0a6789b126705fa25eea1" + integrity sha512-63TEp92YFz0oQ7Pj9IuI3IgnprP92LrZtRAkE3c6wLWJxfy/yOPRt39IOKerVr0JS770olzl0kGafXlAXZ1vng== dependencies: - "@smithy/types" "^4.3.2" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/service-error-classification@^4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.0.6.tgz#5d4d3017f5b62258fbfc1067e14198e125a8286c" - integrity sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg== - dependencies: - "@smithy/types" "^4.3.1" - -"@smithy/service-error-classification@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.0.7.tgz#24072198a8c110d29677762162a5096e29eb4862" - integrity sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg== - dependencies: - "@smithy/types" "^4.3.2" - -"@smithy/shared-ini-file-loader@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.4.tgz#33c63468b95cfd5e7d642c8131d7acc034025e00" - integrity sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw== +"@smithy/service-error-classification@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.1.2.tgz#06839c332f4620a4b80c78a0c32377732dc6697a" + integrity sha512-Kqd8wyfmBWHZNppZSMfrQFpc3M9Y/kjyN8n8P4DqJJtuwgK1H914R471HTw7+RL+T7+kI1f1gOnL7Vb5z9+NgQ== dependencies: - "@smithy/types" "^4.3.1" - tslib "^2.6.2" + "@smithy/types" "^4.5.0" -"@smithy/shared-ini-file-loader@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.5.tgz#8d8a493276cd82a7229c755bef8d375256c5ebb9" - integrity sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ== +"@smithy/shared-ini-file-loader@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.2.0.tgz#e4717242686bf611bd1a5d6f79870abe480c1c99" + integrity sha512-OQTfmIEp2LLuWdxa8nEEPhZmiOREO6bcB6pjs0AySf4yiZhl6kMOfqmcwcY8BaBPX+0Tb+tG7/Ia/6mwpoZ7Pw== dependencies: - "@smithy/types" "^4.3.2" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/signature-v4@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.1.2.tgz#5afd9d428bd26bb660bee8075b6e89fe93600c22" - integrity sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ== +"@smithy/signature-v4@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.2.1.tgz#0048489d2f1b3c888382595a085edd31967498f8" + integrity sha512-M9rZhWQLjlQVCCR37cSjHfhriGRN+FQ8UfgrYNufv66TJgk+acaggShl3KS5U/ssxivvZLlnj7QH2CUOKlxPyA== dependencies: - "@smithy/is-array-buffer" "^4.0.0" - "@smithy/protocol-http" "^5.1.2" - "@smithy/types" "^4.3.1" - "@smithy/util-hex-encoding" "^4.0.0" - "@smithy/util-middleware" "^4.0.4" - "@smithy/util-uri-escape" "^4.0.0" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@smithy/signature-v4@^5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.1.3.tgz#92a4f6e9ce66730eeb0d996cd0478c5cbaf5b3f5" - integrity sha512-mARDSXSEgllNzMw6N+mC+r1AQlEBO3meEAkR/UlfAgnMzJUB3goRBWgip1EAMG99wh36MDqzo86SfIX5Y+VEaw== - dependencies: - "@smithy/is-array-buffer" "^4.0.0" - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" - "@smithy/util-hex-encoding" "^4.0.0" - "@smithy/util-middleware" "^4.0.5" - "@smithy/util-uri-escape" "^4.0.0" - "@smithy/util-utf8" "^4.0.0" + "@smithy/is-array-buffer" "^4.1.0" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" + "@smithy/util-hex-encoding" "^4.1.0" + "@smithy/util-middleware" "^4.1.1" + "@smithy/util-uri-escape" "^4.1.0" + "@smithy/util-utf8" "^4.1.0" tslib "^2.6.2" -"@smithy/smithy-client@^4.4.9": - version "4.4.9" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.4.9.tgz#973875a750908266aaf5f73c0714016b7e883609" - integrity sha512-mbMg8mIUAWwMmb74LoYiArP04zWElPzDoA1jVOp3or0cjlDMgoS6WTC3QXK0Vxoc9I4zdrX0tq6qsOmaIoTWEQ== +"@smithy/smithy-client@^4.6.4": + version "4.6.4" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.6.4.tgz#3a66bb71c91dadf1806adab664ba2e164a1139ab" + integrity sha512-qL7O3VDyfzCSN9r+sdbQXGhaHtrfSJL30En6Jboj0I3bobf2g1/T0eP2L4qxqrEW26gWhJ4THI4ElVVLjYyBHg== dependencies: - "@smithy/core" "^3.7.2" - "@smithy/middleware-endpoint" "^4.1.17" - "@smithy/middleware-stack" "^4.0.4" - "@smithy/protocol-http" "^5.1.2" - "@smithy/types" "^4.3.1" - "@smithy/util-stream" "^4.2.3" - tslib "^2.6.2" - -"@smithy/smithy-client@^4.5.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.5.0.tgz#d8663d757d590a5049818f138ff024784eba9577" - integrity sha512-ZSdE3vl0MuVbEwJBxSftm0J5nL/gw76xp5WF13zW9cN18MFuFXD5/LV0QD8P+sCU5bSWGyy6CTgUupE1HhOo1A== - dependencies: - "@smithy/core" "^3.9.0" - "@smithy/middleware-endpoint" "^4.1.19" - "@smithy/middleware-stack" "^4.0.5" - "@smithy/protocol-http" "^5.1.3" - "@smithy/types" "^4.3.2" - "@smithy/util-stream" "^4.2.4" + "@smithy/core" "^3.12.0" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/middleware-stack" "^4.1.1" + "@smithy/protocol-http" "^5.2.1" + "@smithy/types" "^4.5.0" + "@smithy/util-stream" "^4.3.2" tslib "^2.6.2" "@smithy/types@^4.3.1": @@ -3038,51 +2449,42 @@ dependencies: tslib "^2.6.2" -"@smithy/types@^4.3.2": - version "4.3.2" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.3.2.tgz#66ac513e7057637de262e41ac15f70cf464c018a" - integrity sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw== - dependencies: - tslib "^2.6.2" - -"@smithy/url-parser@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.0.4.tgz#049143f4c156356e177bd69242675db26fe4f4db" - integrity sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ== +"@smithy/types@^4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.5.0.tgz#850e334662a1ef1286c35814940c80880400a370" + integrity sha512-RkUpIOsVlAwUIZXO1dsz8Zm+N72LClFfsNqf173catVlvRZiwPy0x2u0JLEA4byreOPKDZPGjmPDylMoP8ZJRg== dependencies: - "@smithy/querystring-parser" "^4.0.4" - "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@smithy/url-parser@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.0.5.tgz#1824a9c108b85322c5a31f345f608d47d06f073a" - integrity sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw== +"@smithy/url-parser@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.1.1.tgz#0e9a5e72b3cf9d7ab7305f9093af5528d9debaf6" + integrity sha512-bx32FUpkhcaKlEoOMbScvc93isaSiRM75pQ5IgIBaMkT7qMlIibpPRONyx/0CvrXHzJLpOn/u6YiDX2hcvs7Dg== dependencies: - "@smithy/querystring-parser" "^4.0.5" - "@smithy/types" "^4.3.2" + "@smithy/querystring-parser" "^4.1.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/util-base64@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.0.0.tgz#8345f1b837e5f636e5f8470c4d1706ae0c6d0358" - integrity sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg== +"@smithy/util-base64@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.1.0.tgz#5965026081d9aef4a8246f5702807570abe538b2" + integrity sha512-RUGd4wNb8GeW7xk+AY5ghGnIwM96V0l2uzvs/uVHf+tIuVX2WSvynk5CxNoBCsM2rQRSZElAo9rt3G5mJ/gktQ== dependencies: - "@smithy/util-buffer-from" "^4.0.0" - "@smithy/util-utf8" "^4.0.0" + "@smithy/util-buffer-from" "^4.1.0" + "@smithy/util-utf8" "^4.1.0" tslib "^2.6.2" -"@smithy/util-body-length-browser@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz#965d19109a4b1e5fe7a43f813522cce718036ded" - integrity sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA== +"@smithy/util-body-length-browser@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.1.0.tgz#636bdf4bc878c546627dab4b9b0e4db31b475be7" + integrity sha512-V2E2Iez+bo6bUMOTENPr6eEmepdY8Hbs+Uc1vkDKgKNA/brTJqOW/ai3JO1BGj9GbCeLqw90pbbH7HFQyFotGQ== dependencies: tslib "^2.6.2" -"@smithy/util-body-length-node@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz#3db245f6844a9b1e218e30c93305bfe2ffa473b3" - integrity sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg== +"@smithy/util-body-length-node@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.1.0.tgz#646750e4af58f97254a5d5cfeaba7d992f0152ec" + integrity sha512-BOI5dYjheZdgR9XiEM3HJcEMCXSoqbzu7CzIgYrx0UtmvtC3tC2iDGpJLsSRFffUpy8ymsg2ARMP5fR8mtuUQQ== dependencies: tslib "^2.6.2" @@ -3094,160 +2496,96 @@ "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@smithy/util-buffer-from@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.0.0.tgz#b23b7deb4f3923e84ef50c8b2c5863d0dbf6c0b9" - integrity sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug== +"@smithy/util-buffer-from@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.1.0.tgz#21f9e644a0eb41226d92e4eff763f76a7db7e9cc" + integrity sha512-N6yXcjfe/E+xKEccWEKzK6M+crMrlwaCepKja0pNnlSkm6SjAeLKKA++er5Ba0I17gvKfN/ThV+ZOx/CntKTVw== dependencies: - "@smithy/is-array-buffer" "^4.0.0" + "@smithy/is-array-buffer" "^4.1.0" tslib "^2.6.2" -"@smithy/util-config-provider@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz#e0c7c8124c7fba0b696f78f0bd0ccb060997d45e" - integrity sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w== +"@smithy/util-config-provider@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.1.0.tgz#6a07d73446c1e9a46d7a3c125f2a9301060bc957" + integrity sha512-swXz2vMjrP1ZusZWVTB/ai5gK+J8U0BWvP10v9fpcFvg+Xi/87LHvHfst2IgCs1i0v4qFZfGwCmeD/KNCdJZbQ== dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^4.0.25": - version "4.0.25" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.25.tgz#781411de904f616c15900ab0a88b37bd8002c5c5" - integrity sha512-pxEWsxIsOPLfKNXvpgFHBGFC3pKYKUFhrud1kyooO9CJai6aaKDHfT10Mi5iiipPXN/JhKAu3qX9o75+X85OdQ== - dependencies: - "@smithy/property-provider" "^4.0.4" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - bowser "^2.11.0" - tslib "^2.6.2" - -"@smithy/util-defaults-mode-browser@^4.0.27": - version "4.0.27" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.27.tgz#2ad80730a6e90ff82872d20ea7ea05b9d3b0f175" - integrity sha512-i/Fu6AFT5014VJNgWxKomBJP/GB5uuOsM4iHdcmplLm8B1eAqnRItw4lT2qpdO+mf+6TFmf6dGcggGLAVMZJsQ== +"@smithy/util-defaults-mode-browser@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.1.4.tgz#a967e994d4581682891f7252c7a42a2d6c1841e4" + integrity sha512-mLDJ1s4eA3vwOGaQOEPlg5LB4LdZUUMpB5UMOMofeGhWqiS7WR7dTpLiNi9zVn+YziKUd3Af5NLfxDs7NJqmIw== dependencies: - "@smithy/property-provider" "^4.0.5" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" + "@smithy/property-provider" "^4.1.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" bowser "^2.11.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^4.0.25": - version "4.0.25" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.25.tgz#8e307a15a73c56af44674aaa74cd089b3b42b019" - integrity sha512-+w4n4hKFayeCyELZLfsSQG5mCC3TwSkmRHv4+el5CzFU8ToQpYGhpV7mrRzqlwKkntlPilT1HJy1TVeEvEjWOQ== - dependencies: - "@smithy/config-resolver" "^4.1.4" - "@smithy/credential-provider-imds" "^4.0.6" - "@smithy/node-config-provider" "^4.1.3" - "@smithy/property-provider" "^4.0.4" - "@smithy/smithy-client" "^4.4.9" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@smithy/util-defaults-mode-node@^4.0.27": - version "4.0.27" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.27.tgz#119793c1ba38e1b6dcc9b7ccc17f2ab4cd56f653" - integrity sha512-3W0qClMyxl/ELqTA39aNw1N+pN0IjpXT7lPFvZ8zTxqVFP7XCpACB9QufmN4FQtd39xbgS7/Lekn7LmDa63I5w== - dependencies: - "@smithy/config-resolver" "^4.1.5" - "@smithy/credential-provider-imds" "^4.0.7" - "@smithy/node-config-provider" "^4.1.4" - "@smithy/property-provider" "^4.0.5" - "@smithy/smithy-client" "^4.5.0" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@smithy/util-endpoints@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.0.6.tgz#a24b0801a1b94c0de26ad83da206b9add68117f2" - integrity sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA== - dependencies: - "@smithy/node-config-provider" "^4.1.3" - "@smithy/types" "^4.3.1" - tslib "^2.6.2" - -"@smithy/util-endpoints@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.0.7.tgz#9d52f2e7e7a1ea4814ae284270a5f1d3930b3773" - integrity sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ== - dependencies: - "@smithy/node-config-provider" "^4.1.4" - "@smithy/types" "^4.3.2" - tslib "^2.6.2" - -"@smithy/util-hex-encoding@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.0.0.tgz#dd449a6452cffb37c5b1807ec2525bb4be551e8d" - integrity sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw== +"@smithy/util-defaults-mode-node@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.1.4.tgz#ce6b88431db4c5b42933904fd0051c91415c41ab" + integrity sha512-pjX2iMTcOASaSanAd7bu6i3fcMMezr3NTr8Rh64etB0uHRZi+Aw86DoCxPESjY4UTIuA06hhqtTtw95o//imYA== dependencies: + "@smithy/config-resolver" "^4.2.2" + "@smithy/credential-provider-imds" "^4.1.2" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/property-provider" "^4.1.1" + "@smithy/smithy-client" "^4.6.4" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/util-middleware@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.0.4.tgz#8f639de049082c687841ea5e69c6c36e12e31a3c" - integrity sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ== +"@smithy/util-endpoints@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.1.2.tgz#be4005c8616923d453347048ef26a439267b2782" + integrity sha512-+AJsaaEGb5ySvf1SKMRrPZdYHRYSzMkCoK16jWnIMpREAnflVspMIDeCVSZJuj+5muZfgGpNpijE3mUNtjv01Q== dependencies: - "@smithy/types" "^4.3.1" + "@smithy/node-config-provider" "^4.2.2" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/util-middleware@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.0.5.tgz#405caf2a66e175ce8ca6c747fa1245b3f5386879" - integrity sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ== +"@smithy/util-hex-encoding@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.1.0.tgz#9b27cf0c25d0de2c8ebfe75cc20df84e5014ccc9" + integrity sha512-1LcueNN5GYC4tr8mo14yVYbh/Ur8jHhWOxniZXii+1+ePiIbsLZ5fEI0QQGtbRRP5mOhmooos+rLmVASGGoq5w== dependencies: - "@smithy/types" "^4.3.2" tslib "^2.6.2" -"@smithy/util-retry@^4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.0.6.tgz#f931fdd1f01786b21a82711e185c58410e8e41c7" - integrity sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg== +"@smithy/util-middleware@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.1.1.tgz#e19749a127499c9bdada713a8afd807d92d846e2" + integrity sha512-CGmZ72mL29VMfESz7S6dekqzCh8ZISj3B+w0g1hZFXaOjGTVaSqfAEFAq8EGp8fUL+Q2l8aqNmt8U1tglTikeg== dependencies: - "@smithy/service-error-classification" "^4.0.6" - "@smithy/types" "^4.3.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/util-retry@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.0.7.tgz#3169450193e917da170a87557fcbdfe0faa86779" - integrity sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ== +"@smithy/util-retry@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.1.2.tgz#8d28c27cf69643e173c75cc18ff0186deb7cefed" + integrity sha512-NCgr1d0/EdeP6U5PSZ9Uv5SMR5XRRYoVr1kRVtKZxWL3tixEL3UatrPIMFZSKwHlCcp2zPLDvMubVDULRqeunA== dependencies: - "@smithy/service-error-classification" "^4.0.7" - "@smithy/types" "^4.3.2" + "@smithy/service-error-classification" "^4.1.2" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/util-stream@^4.2.3": - version "4.2.3" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.2.3.tgz#7980fb94dbee96301b0b2610de8ae1700c7daab1" - integrity sha512-cQn412DWHHFNKrQfbHY8vSFI3nTROY1aIKji9N0tpp8gUABRilr7wdf8fqBbSlXresobM+tQFNk6I+0LXK/YZg== +"@smithy/util-stream@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.3.2.tgz#7ce40c266b1e828d73c27e545959cda4f42fd61f" + integrity sha512-Ka+FA2UCC/Q1dEqUanCdpqwxOFdf5Dg2VXtPtB1qxLcSGh5C1HdzklIt18xL504Wiy9nNUKwDMRTVCbKGoK69g== dependencies: - "@smithy/fetch-http-handler" "^5.1.0" - "@smithy/node-http-handler" "^4.1.0" - "@smithy/types" "^4.3.1" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-buffer-from" "^4.0.0" - "@smithy/util-hex-encoding" "^4.0.0" - "@smithy/util-utf8" "^4.0.0" - tslib "^2.6.2" - -"@smithy/util-stream@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.2.4.tgz#fa9f0e2fd5a8a5adbd013066b475ea8f9d4f900f" - integrity sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ== - dependencies: - "@smithy/fetch-http-handler" "^5.1.1" - "@smithy/node-http-handler" "^4.1.1" - "@smithy/types" "^4.3.2" - "@smithy/util-base64" "^4.0.0" - "@smithy/util-buffer-from" "^4.0.0" - "@smithy/util-hex-encoding" "^4.0.0" - "@smithy/util-utf8" "^4.0.0" + "@smithy/fetch-http-handler" "^5.2.1" + "@smithy/node-http-handler" "^4.2.1" + "@smithy/types" "^4.5.0" + "@smithy/util-base64" "^4.1.0" + "@smithy/util-buffer-from" "^4.1.0" + "@smithy/util-hex-encoding" "^4.1.0" + "@smithy/util-utf8" "^4.1.0" tslib "^2.6.2" -"@smithy/util-uri-escape@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.0.0.tgz#a96c160c76f3552458a44d8081fade519d214737" - integrity sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg== +"@smithy/util-uri-escape@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.1.0.tgz#ed4a5c498f1da07122ca1e3df4ca3e2c67c6c18a" + integrity sha512-b0EFQkq35K5NHUYxU72JuoheM6+pytEVUGlTwiFxWFpmddA+Bpz3LgsPRIpBk8lnPE47yT7AF2Egc3jVnKLuPg== dependencies: tslib "^2.6.2" @@ -3259,21 +2597,28 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@smithy/util-utf8@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.0.0.tgz#09ca2d9965e5849e72e347c130f2a29d5c0c863c" - integrity sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow== +"@smithy/util-utf8@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.1.0.tgz#912c33c1a06913f39daa53da79cb8f7ab740d97b" + integrity sha512-mEu1/UIXAdNYuBcyEPbjScKi/+MQVXNIuY/7Cm5XLIWe319kDrT5SizBE95jqtmEXoDbGoZxKLCMttdZdqTZKQ== + dependencies: + "@smithy/util-buffer-from" "^4.1.0" + tslib "^2.6.2" + +"@smithy/util-waiter@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.1.1.tgz#5b74429ca9e37f61838800b919d0063b1a865bef" + integrity sha512-PJBmyayrlfxM7nbqjomF4YcT1sApQwZio0NHSsT0EzhJqljRmvhzqZua43TyEs80nJk2Cn2FGPg/N8phH6KeCQ== dependencies: - "@smithy/util-buffer-from" "^4.0.0" + "@smithy/abort-controller" "^4.1.1" + "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/util-waiter@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.0.7.tgz#c013cf6a5918c21f8b430b4a825dbac132163f4a" - integrity sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A== +"@smithy/uuid@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.0.0.tgz#a0fd3aa879d57e2f2fd6a7308deee864a412e1cf" + integrity sha512-OlA/yZHh0ekYFnbUkmYBDQPE6fGfdrvgz39ktp8Xf+FA6BfxLejPTMDOG0Nfk5/rDySAz1dRbFf24zaAFYVXlQ== dependencies: - "@smithy/abort-controller" "^4.0.5" - "@smithy/types" "^4.3.2" tslib "^2.6.2" "@storybook/addon-actions@8.6.14": @@ -4388,15 +3733,6 @@ resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== -abstract-cache@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/abstract-cache/-/abstract-cache-1.0.1.tgz#136151becf5c32e0ea27f78728d073d8fe07932a" - integrity sha512-EfUeMhRUbG5bVVbrSY/ogLlFXoyfMAPxMlSP7wrEqH53d+59r2foVy9a5KjmprLKFLOfPQCNKEfpBN/nQ76chw== - dependencies: - clone "^2.1.1" - lru_map "^0.3.3" - merge-options "^1.0.0" - abstract-logging@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" @@ -5013,7 +4349,7 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone@2.x, clone@^2.1.1: +clone@2.x: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== @@ -7232,11 +6568,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-plain-obj@^1.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -7845,11 +7176,6 @@ lru-memoizer@^2.2.0: lodash.clonedeep "^4.5.0" lru-cache "6.0.0" -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== - lz-string@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" @@ -7945,13 +7271,6 @@ meow@^13.2.0: resolved "https://registry.yarnpkg.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== -merge-options@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-1.0.1.tgz#2a64b24457becd4e4dc608283247e94ce589aa32" - integrity sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg== - dependencies: - is-plain-obj "^1.1" - merge-refs@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/merge-refs/-/merge-refs-1.3.0.tgz#65d7f8c5058917b9d1fc204ae4b9a727614d0119" @@ -8843,11 +8162,6 @@ quick-format-unescaped@^4.0.3: resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== -random-bytes@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" - integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== - raw-body@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.0.tgz#25b3476f07a51600619dae3fe82ddc28a36e5e0f" @@ -10397,13 +9711,6 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== -uid-safe@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" - integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== - dependencies: - random-bytes "~1.0.0" - unbox-primitive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" @@ -10546,7 +9853,7 @@ uuid@^8.3.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^9.0.0, uuid@^9.0.1: +uuid@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==