From 992c66f0ba4f185a5903649f941894f419e4831a Mon Sep 17 00:00:00 2001 From: Patryk Ziemkowski Date: Thu, 31 Aug 2023 15:46:37 +0200 Subject: [PATCH] Rewrite backend's build.sh script to node --- docker-compose.yml | 1 + packages/backend/package.json | 2 + packages/backend/project.json | 2 +- packages/backend/scripts/build.js | 108 +++ packages/backend/scripts/build.sh | 27 - .../internal/core/scripts/docker-login.js | 17 +- packages/internal/core/scripts/get-version.js | 23 +- pnpm-lock.yaml | 761 +++++++++++++++++- 8 files changed, 858 insertions(+), 83 deletions(-) create mode 100644 packages/backend/scripts/build.js delete mode 100755 packages/backend/scripts/build.sh diff --git a/docker-compose.yml b/docker-compose.yml index d73c0cf9a..012b5c5b2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,6 +7,7 @@ services: - "5432:5432" restart: unless-stopped environment: + - PGUSER=backend - POSTGRES_USER=backend - POSTGRES_PASSWORD=backend - POSTGRES_DB=backend diff --git a/packages/backend/package.json b/packages/backend/package.json index 1c3904899..18fcf11d3 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -15,6 +15,8 @@ "@sb/infra-shared": "*", "@sb/tools": "*", "aws-cdk": "^2.84.0", + "@aws-sdk/client-ecr": "^3.398.0", + "@aws-sdk/client-sts": "^3.398.0", "aws-cdk-lib": "^2.84.0", "constructs": "^10.1.225" } diff --git a/packages/backend/project.json b/packages/backend/project.json index 4233f4d01..12924c55b 100644 --- a/packages/backend/project.json +++ b/packages/backend/project.json @@ -35,7 +35,7 @@ "options": { "cwd": "packages/backend", "color": true, - "commands": ["/bin/bash scripts/build.sh"], + "commands": ["node scripts/build.js"], "parallel": false }, "dependsOn": ["test"] diff --git a/packages/backend/scripts/build.js b/packages/backend/scripts/build.js new file mode 100644 index 000000000..cd9613e71 --- /dev/null +++ b/packages/backend/scripts/build.js @@ -0,0 +1,108 @@ +const { spawn } = require('child_process'); +const { + ECRClient, + GetAuthorizationTokenCommand, +} = require('@aws-sdk/client-ecr'); +const { + STSClient, + GetCallerIdentityCommand, +} = require('@aws-sdk/client-sts'); + +const AWS_DEFAULT_REGION = process.env.AWS_DEFAULT_REGION; +const PROJECT_NAME = process.env.PROJECT_NAME; +const VERSION = process.env.VERSION; +const BACKEND_BASE_IMAGE = process.env.BACKEND_BASE_IMAGE; + +const stsClient = new STSClient(); +const ecrClient = new ECRClient(); + +function runCommand(command, args) { + return new Promise((resolve, reject) => { + const child = spawn(command, args, {stdio: 'inherit'}); + + child.on('close', (code) => { + if (code !== 0) { + reject( + new Error(`"${command} ${args.join(' ')}" failed with code ${code}`) + ); + } else { + resolve(); + } + }); + }); +} + +(async () => { + try { + const getCallerIdentityCommand = new GetCallerIdentityCommand(); + const { Account: AWS_ACCOUNT_ID } = await stsClient.send(getCallerIdentityCommand); + const BACKEND_REPO_URI = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/${PROJECT_NAME}-backend`; + + try { + const getAuthorizationTokenCommand = new GetAuthorizationTokenCommand(); + const { authorizationData } = await ecrClient.send( + getAuthorizationTokenCommand + ); + const decodedAuthToken = Buffer.from( + authorizationData[0].authorizationToken, + 'base64' + ).toString('utf8'); + const password = decodedAuthToken.split(':')[1]; + + await runCommand( + 'docker', + ['login', '--username', 'AWS', '-p', password, BACKEND_REPO_URI] + ); + } catch (error) { + console.error(error); + console.warn( + 'get-login-password not supported by the AWS CLI, trying get-login instead...' + ); + await runCommand('aws', [ + 'ecr', + 'get-login', + '--no-include-email', + '--region', + AWS_DEFAULT_REGION, + ]); + } + + try { + await runCommand('docker', ['pull', `${BACKEND_REPO_URI}:latest`]); + } catch (error) { + console.warn(`Warning: ${error.message}`); + } + + if (BACKEND_BASE_IMAGE) { + await runCommand('docker', [ + 'build', + '--target', + 'backend', + '-t', + `${BACKEND_REPO_URI}:${VERSION}`, + '--build-arg', + `BACKEND_BASE_IMAGE=${BACKEND_BASE_IMAGE}`, + '.', + ]); + } else { + await runCommand('docker', [ + 'build', + '--target', + 'backend', + '-t', + `${BACKEND_REPO_URI}:${VERSION}`, + '.', + ]); + } + + await runCommand('docker', ['push', `${BACKEND_REPO_URI}:${VERSION}`]); + await runCommand('docker', [ + 'tag', + `${BACKEND_REPO_URI}:${VERSION}`, + `${BACKEND_REPO_URI}:latest`, + ]); + await runCommand('docker', ['push', `${BACKEND_REPO_URI}:latest`]); + } catch (error) { + console.error(`Error: ${error.message}`); + } +})(); diff --git a/packages/backend/scripts/build.sh b/packages/backend/scripts/build.sh deleted file mode 100755 index 099d6f5ca..000000000 --- a/packages/backend/scripts/build.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -set -eu - -AWS_ACCOUNT_ID=$(aws sts get-caller-identity --output text --query 'Account') -BACKEND_REPO_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$PROJECT_NAME-backend - -if DOCKER_LOGIN=$(aws ecr get-login-password --region "$AWS_DEFAULT_REGION" 2> /dev/null); then - echo "$DOCKER_LOGIN" | docker login --username AWS --password-stdin "$AWS_ACCOUNT_ID".dkr.ecr."$AWS_DEFAULT_REGION".amazonaws.com -else - echo "get-login-password not supported by the AWS CLI, trying get-login instead..." - # shellcheck disable=SC2091 - $(aws ecr get-login --no-include-email --region "$AWS_DEFAULT_REGION") -fi - -docker pull "$BACKEND_REPO_URI:latest" || true - -if [[ -z "${BACKEND_BASE_IMAGE}" ]]; then - docker build --target backend -t "$BACKEND_REPO_URI:$VERSION" . -else - docker build --target backend -t "$BACKEND_REPO_URI:$VERSION" --build-arg BACKEND_BASE_IMAGE="$BACKEND_BASE_IMAGE" . -fi - -docker push "$BACKEND_REPO_URI:$VERSION" - -docker tag "$BACKEND_REPO_URI:$VERSION" "$BACKEND_REPO_URI:latest" -docker push "$BACKEND_REPO_URI:latest" diff --git a/packages/internal/core/scripts/docker-login.js b/packages/internal/core/scripts/docker-login.js index a4587cc7b..1fe4c8f91 100644 --- a/packages/internal/core/scripts/docker-login.js +++ b/packages/internal/core/scripts/docker-login.js @@ -2,12 +2,11 @@ const { spawn } = require('node:child_process'); -spawn('git', [ - 'describe', - '--tags', - '--first-parent', - '--abbrev=11', - '--long', - '--dirty', - '--always', -], {stdio: 'inherit'}); \ No newline at end of file +const username = process.env.DOCKER_USERNAME || ''; +const password = process.env.DOCKER_PASSWORD || ''; + +if (username && password) { + spawn('docker', ['login', '-u', `"${username}"`, '-p', `"${password}"`], { + stdio: 'inherit', + }); +} diff --git a/packages/internal/core/scripts/get-version.js b/packages/internal/core/scripts/get-version.js index 02c22e5b7..5d984801a 100644 --- a/packages/internal/core/scripts/get-version.js +++ b/packages/internal/core/scripts/get-version.js @@ -2,13 +2,16 @@ const { spawn } = require('node:child_process'); -const username = process.env.DOCKER_USERNAME || ''; -const password = process.env.DOCKER_PASSWORD || ''; - -if (username && password) { - spawn('docker', [ - 'login', - '-u', `"${username}"`, - '-p', `"${password}"`, - ], {stdio: 'inherit'}); -} +spawn( + 'git', + [ + 'describe', + '--tags', + '--first-parent', + '--abbrev=11', + '--long', + '--dirty', + '--always', + ], + { stdio: 'inherit' } +); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8aef691d0..16f8d81aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '6.1' settings: autoInstallPeers: true @@ -201,6 +201,12 @@ importers: packages/backend: devDependencies: + '@aws-sdk/client-ecr': + specifier: ^3.398.0 + version: 3.398.0 + '@aws-sdk/client-sts': + specifier: ^3.398.0 + version: 3.398.0 '@sb/core': specifier: '*' version: link:../internal/core @@ -2640,15 +2646,13 @@ packages: resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.342.0 + '@aws-sdk/types': 3.398.0 tslib: 1.14.1 - dev: false /@aws-crypto/ie11-detection@3.0.0: resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} dependencies: tslib: 1.14.1 - dev: false /@aws-crypto/sha256-browser@3.0.0: resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} @@ -2657,33 +2661,29 @@ packages: '@aws-crypto/sha256-js': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.342.0 + '@aws-sdk/types': 3.398.0 '@aws-sdk/util-locate-window': 3.208.0 '@aws-sdk/util-utf8-browser': 3.188.0 tslib: 1.14.1 - dev: false /@aws-crypto/sha256-js@3.0.0: resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.342.0 + '@aws-sdk/types': 3.398.0 tslib: 1.14.1 - dev: false /@aws-crypto/supports-web-crypto@3.0.0: resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} dependencies: tslib: 1.14.1 - dev: false /@aws-crypto/util@3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} dependencies: - '@aws-sdk/types': 3.342.0 + '@aws-sdk/types': 3.398.0 '@aws-sdk/util-utf8-browser': 3.188.0 tslib: 1.14.1 - dev: false /@aws-sdk/abort-controller@3.272.0: resolution: {integrity: sha512-s2TV3phapcTwZNr4qLxbfuQuE9ZMP4RoJdkvRRCkKdm6jslsWLJf2Zlcxti/23hOlINUMYv2iXE2pftIgWGdpg==} @@ -2745,6 +2745,51 @@ packages: - aws-crt dev: false + /@aws-sdk/client-ecr@3.398.0: + resolution: {integrity: sha512-HMFaxz3ZkuqvvTcQVu5o4CRDJPZzS7JWuyhODiKgL5tN+Q4CFSkLA1axUdERWXJkKNyMQN8ZoLLZ8nMAQmhyYA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.398.0 + '@aws-sdk/credential-provider-node': 3.398.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.0.5 + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-node': 2.0.5 + '@smithy/invalid-dependency': 2.0.5 + '@smithy/middleware-content-length': 2.0.5 + '@smithy/middleware-endpoint': 2.0.5 + '@smithy/middleware-retry': 2.0.5 + '@smithy/middleware-serde': 2.0.5 + '@smithy/middleware-stack': 2.0.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.5 + '@smithy/util-defaults-mode-node': 2.0.5 + '@smithy/util-retry': 2.0.0 + '@smithy/util-utf8': 2.0.0 + '@smithy/util-waiter': 2.0.5 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: true + /@aws-sdk/client-ses@3.272.0: resolution: {integrity: sha512-gXf8azWBspi+CmgbNYYTN3qf5lnWyrgEwnAs8Lxc3Q4dmzS9RlgdmYrmbxYesCqWB50meHqkfWY84qkE8Gszrw==} engines: {node: '>=14.0.0'} @@ -2952,6 +2997,47 @@ packages: - aws-crt dev: false + /@aws-sdk/client-sso@3.398.0: + resolution: {integrity: sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.0.5 + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-node': 2.0.5 + '@smithy/invalid-dependency': 2.0.5 + '@smithy/middleware-content-length': 2.0.5 + '@smithy/middleware-endpoint': 2.0.5 + '@smithy/middleware-retry': 2.0.5 + '@smithy/middleware-serde': 2.0.5 + '@smithy/middleware-stack': 2.0.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.5 + '@smithy/util-defaults-mode-node': 2.0.5 + '@smithy/util-retry': 2.0.0 + '@smithy/util-utf8': 2.0.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: true + /@aws-sdk/client-sts@3.272.0: resolution: {integrity: sha512-kigxCxURp3WupufGaL/LABMb7UQfzAQkKcj9royizL3ItJ0vw5kW/JFrPje5IW1mfLgdPF7PI9ShOjE0fCLTqA==} engines: {node: '>=14.0.0'} @@ -3041,6 +3127,51 @@ packages: - aws-crt dev: false + /@aws-sdk/client-sts@3.398.0: + resolution: {integrity: sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/credential-provider-node': 3.398.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-sdk-sts': 3.398.0 + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.0.5 + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-node': 2.0.5 + '@smithy/invalid-dependency': 2.0.5 + '@smithy/middleware-content-length': 2.0.5 + '@smithy/middleware-endpoint': 2.0.5 + '@smithy/middleware-retry': 2.0.5 + '@smithy/middleware-serde': 2.0.5 + '@smithy/middleware-stack': 2.0.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.5 + '@smithy/util-defaults-mode-node': 2.0.5 + '@smithy/util-retry': 2.0.0 + '@smithy/util-utf8': 2.0.0 + fast-xml-parser: 4.2.5 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: true + /@aws-sdk/config-resolver@3.272.0: resolution: {integrity: sha512-Dr4CffRVNsOp3LRNdpvcH6XuSgXOSLblWliCy/5I86cNl567KVMxujVx6uPrdTXYs2h1rt3MNl6jQGnAiJeTbw==} engines: {node: '>=14.0.0'} @@ -3080,6 +3211,16 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/credential-provider-env@3.398.0: + resolution: {integrity: sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/credential-provider-imds@3.272.0: resolution: {integrity: sha512-wwAfVY1jTFQEfxVfdYD5r5ieYGl+0g4nhekVxNMqE8E1JeRDd18OqiwAflzpgBIqxfqvCUkf+vl5JYyacMkNAQ==} engines: {node: '>=14.0.0'} @@ -3136,6 +3277,24 @@ packages: - aws-crt dev: false + /@aws-sdk/credential-provider-ini@3.398.0: + resolution: {integrity: sha512-AsK1lStK3nB9Cn6S6ODb1ktGh7SRejsNVQVKX3t5d3tgOaX+aX1Iwy8FzM/ZEN8uCloeRifUGIY9uQFygg5mSw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.398.0 + '@aws-sdk/credential-provider-process': 3.398.0 + '@aws-sdk/credential-provider-sso': 3.398.0 + '@aws-sdk/credential-provider-web-identity': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/credential-provider-imds': 2.0.5 + '@smithy/property-provider': 2.0.5 + '@smithy/shared-ini-file-loader': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: true + /@aws-sdk/credential-provider-node@3.272.0: resolution: {integrity: sha512-FI8uvwM1IxiRSvbkdKv8DZG5vxU3ezaseTaB1fHWTxEUFb0pWIoHX9oeOKer9Fj31SOZTCNAaYFURbSRuZlm/w==} engines: {node: '>=14.0.0'} @@ -3172,6 +3331,25 @@ packages: - aws-crt dev: false + /@aws-sdk/credential-provider-node@3.398.0: + resolution: {integrity: sha512-odmI/DSKfuWUYeDnGTCEHBbC8/MwnF6yEq874zl6+owoVv0ZsYP8qBHfiJkYqrwg7wQ7Pi40sSAPC1rhesGwzg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.398.0 + '@aws-sdk/credential-provider-ini': 3.398.0 + '@aws-sdk/credential-provider-process': 3.398.0 + '@aws-sdk/credential-provider-sso': 3.398.0 + '@aws-sdk/credential-provider-web-identity': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/credential-provider-imds': 2.0.5 + '@smithy/property-provider': 2.0.5 + '@smithy/shared-ini-file-loader': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: true + /@aws-sdk/credential-provider-process@3.272.0: resolution: {integrity: sha512-hiCAjWWm2PeBFp5cjkxqyam/XADjiS+e7GzwC34TbZn3LisS0uoweLojj9tD11NnnUhyhbLteUvu5+rotOLwrg==} engines: {node: '>=14.0.0'} @@ -3192,6 +3370,17 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/credential-provider-process@3.398.0: + resolution: {integrity: sha512-WrkBL1W7TXN508PA9wRXPFtzmGpVSW98gDaHEaa8GolAPHMPa5t2QcC/z/cFpglzrcVv8SA277zu9Z8tELdZhg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.0.5 + '@smithy/shared-ini-file-loader': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/credential-provider-sso@3.272.0: resolution: {integrity: sha512-hwYaulyiU/7chKKFecxCeo0ls6Dxs7h+5EtoYcJJGvfpvCncyOZF35t00OAsCd3Wo7HkhhgfpGdb6dmvCNQAZQ==} engines: {node: '>=14.0.0'} @@ -3220,6 +3409,21 @@ packages: - aws-crt dev: false + /@aws-sdk/credential-provider-sso@3.398.0: + resolution: {integrity: sha512-2Dl35587xbnzR/GGZqA2MnFs8+kS4wbHQO9BioU0okA+8NRueohNMdrdQmQDdSNK4BfIpFspiZmFkXFNyEAfgw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-sso': 3.398.0 + '@aws-sdk/token-providers': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.0.5 + '@smithy/shared-ini-file-loader': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: true + /@aws-sdk/credential-provider-web-identity@3.272.0: resolution: {integrity: sha512-ImrHMkcgneGa/HadHAQXPwOrX26sAKuB8qlMxZF/ZCM2B55u8deY+ZVkVuraeKb7YsahMGehPFOfRAF6mvFI5Q==} engines: {node: '>=14.0.0'} @@ -3238,6 +3442,16 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/credential-provider-web-identity@3.398.0: + resolution: {integrity: sha512-iG3905Alv9pINbQ8/MIsshgqYMbWx+NDQWpxbIW3W0MkSH3iAqdVpSCteYidYX9G/jv2Um1nW3y360ib20bvNg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/eventstream-codec@3.342.0: resolution: {integrity: sha512-IwtvSuplioMyiu/pQgpazKkGWDM5M5BOx85zmsB0uNxt6rmje8+WqPmGmuPdmJv4bLC5dJPLovcCp/fuH8XWhA==} dependencies: @@ -3376,6 +3590,16 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/middleware-host-header@3.398.0: + resolution: {integrity: sha512-m+5laWdBaxIZK2ko0OwcCHJZJ5V1MgEIt8QVQ3k4/kOkN9ICjevOYmba751pHoTnbOYB7zQd6D2OT3EYEEsUcA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/middleware-logger@3.272.0: resolution: {integrity: sha512-u2SQ0hWrFwxbxxYMG5uMEgf01pQY5jauK/LYWgGIvuCmFgiyRQQP3oN7kkmsxnS9MWmNmhbyQguX2NY02s5e9w==} engines: {node: '>=14.0.0'} @@ -3392,6 +3616,15 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/middleware-logger@3.398.0: + resolution: {integrity: sha512-CiJjW+FL12elS6Pn7/UVjVK8HWHhXMfvHZvOwx/Qkpy340sIhkuzOO6fZEruECDTZhl2Wqn81XdJ1ZQ4pRKpCg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/middleware-recursion-detection@3.272.0: resolution: {integrity: sha512-Gp/eKWeUWVNiiBdmUM2qLkBv+VLSJKoWAO+aKmyxxwjjmWhE0FrfA1NQ1a3g+NGMhRbAfQdaYswRAKsul70ISg==} engines: {node: '>=14.0.0'} @@ -3410,6 +3643,16 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/middleware-recursion-detection@3.398.0: + resolution: {integrity: sha512-7QpOqPQAZNXDXv6vsRex4R8dLniL0E/80OPK4PPFsrCh9btEyhN9Begh4i1T+5lL28hmYkztLOkTQ2N5J3hgRQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/middleware-retry@3.272.0: resolution: {integrity: sha512-pCGvHM7C76VbO/dFerH+Vwf7tGv7j+e+eGrvhQ35mRghCtfIou/WMfTZlD1TNee93crrAQQVZKjtW3dMB3WCzg==} engines: {node: '>=14.0.0'} @@ -3457,6 +3700,16 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/middleware-sdk-sts@3.398.0: + resolution: {integrity: sha512-+JH76XHEgfVihkY+GurohOQ5Z83zVN1nYcQzwCFnCDTh4dG4KwhnZKG+WPw6XJECocY0R+H0ivofeALHvVWJtQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/middleware-serde@3.272.0: resolution: {integrity: sha512-kW1uOxgPSwtXPB5rm3QLdWomu42lkYpQL94tM1BjyFOWmBLO2lQhk5a7Dw6HkTozT9a+vxtscLChRa6KZe61Hw==} engines: {node: '>=14.0.0'} @@ -3497,6 +3750,19 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/middleware-signing@3.398.0: + resolution: {integrity: sha512-O0KqXAix1TcvZBFt1qoFkHMUNJOSgjJTYS7lFTRKSwgsD27bdW2TM2r9R8DAccWFt5Amjkdt+eOwQMIXPGTm8w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/signature-v4': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/util-middleware': 2.0.0 + tslib: 2.5.0 + dev: true + /@aws-sdk/middleware-stack@3.272.0: resolution: {integrity: sha512-jhwhknnPBGhfXAGV5GXUWfEhDFoP/DN8MPCO2yC5OAxyp6oVJ8lTPLkZYMTW5VL0c0eG44dXpF4Ib01V+PlDrQ==} engines: {node: '>=14.0.0'} @@ -3530,6 +3796,17 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/middleware-user-agent@3.398.0: + resolution: {integrity: sha512-nF1jg0L+18b5HvTcYzwyFgfZQQMELJINFqI0mi4yRKaX7T5a3aGp5RVLGGju/6tAGTuFbfBoEhkhU3kkxexPYQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/node-config-provider@3.272.0: resolution: {integrity: sha512-YYCIBh9g1EQo7hm2l22HX5Yr9RoPQ2RCvhzKvF1n1e8t1QH4iObQrYUtqHG4khcm64Cft8C5MwZmgzHbya5Z6Q==} engines: {node: '>=14.0.0'} @@ -3735,6 +4012,49 @@ packages: - aws-crt dev: false + /@aws-sdk/token-providers@3.398.0: + resolution: {integrity: sha512-nrYgjzavGCKJL/48Vt0EL+OlIc5UZLfNGpgyUW9cv3XZwl+kXV0QB+HH0rHZZLfpbBgZ2RBIJR9uD5ieu/6hpQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.0.5 + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-node': 2.0.5 + '@smithy/invalid-dependency': 2.0.5 + '@smithy/middleware-content-length': 2.0.5 + '@smithy/middleware-endpoint': 2.0.5 + '@smithy/middleware-retry': 2.0.5 + '@smithy/middleware-serde': 2.0.5 + '@smithy/middleware-stack': 2.0.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/property-provider': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/shared-ini-file-loader': 2.0.5 + '@smithy/smithy-client': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.5 + '@smithy/util-defaults-mode-node': 2.0.5 + '@smithy/util-retry': 2.0.0 + '@smithy/util-utf8': 2.0.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: true + /@aws-sdk/types@3.272.0: resolution: {integrity: sha512-MmmL6vxMGP5Bsi+4wRx4mxYlU/LX6M0noOXrDh/x5FfG7/4ZOar/nDxqDadhJtNM88cuWVHZWY59P54JzkGWmA==} engines: {node: '>=14.0.0'} @@ -3749,6 +4069,13 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/types@3.398.0: + resolution: {integrity: sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.5.0 + /@aws-sdk/url-parser@3.272.0: resolution: {integrity: sha512-vX/Tx02PlnQ/Kgtf5TnrNDHPNbY+amLZjW0Z1d9vzAvSZhQ4i9Y18yxoRDIaDTCNVRDjdhV8iuctW+05PB5JtQ==} dependencies: @@ -3897,6 +4224,14 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/util-endpoints@3.398.0: + resolution: {integrity: sha512-Fy0gLYAei/Rd6BrXG4baspCnWTUSd0NdokU1pZh4KlfEAEN1i8SPPgfiO5hLk7+2inqtCmqxVJlfqbMVe9k4bw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.398.0 + tslib: 2.5.0 + dev: true + /@aws-sdk/util-hex-encoding@3.201.0: resolution: {integrity: sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==} engines: {node: '>=14.0.0'} @@ -3916,7 +4251,6 @@ packages: engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: false /@aws-sdk/util-middleware@3.272.0: resolution: {integrity: sha512-Abw8m30arbwxqmeMMha5J11ESpHUNmCeSqSzE8/C4B8jZQtHY4kq7f+upzcNIQ11lsd+uzBEzNG3+dDRi0XOJQ==} @@ -3978,6 +4312,15 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/util-user-agent-browser@3.398.0: + resolution: {integrity: sha512-A3Tzx1tkDHlBT+IgxmsMCHbV8LM7SwwCozq2ZjJRx0nqw3MCrrcxQFXldHeX/gdUMO+0Oocb7HGSnVODTq+0EA==} + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.2.2 + bowser: 2.11.0 + tslib: 2.5.0 + dev: true + /@aws-sdk/util-user-agent-node@3.272.0: resolution: {integrity: sha512-ljK+R3l+Q1LIHrcR+Knhk0rmcSkfFadZ8V+crEGpABf/QUQRg7NkZMsoe814tfBO5F7tMxo8wwwSdaVNNHtoRA==} engines: {node: '>=14.0.0'} @@ -4006,11 +4349,25 @@ packages: tslib: 2.5.0 dev: false + /@aws-sdk/util-user-agent-node@3.398.0: + resolution: {integrity: sha512-RTVQofdj961ej4//fEkppFf4KXqKGMTCqJYghx3G0C/MYXbg7MGl7LjfNGtJcboRE8pfHHQ/TUWBDA7RIAPPlQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@aws-sdk/util-utf8-browser@3.188.0: resolution: {integrity: sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==} dependencies: tslib: 2.5.0 - dev: false /@aws-sdk/util-utf8@3.254.0: resolution: {integrity: sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==} @@ -11944,6 +12301,155 @@ packages: webpack-sources: 3.2.3 dev: false + /@smithy/abort-controller@2.0.5: + resolution: {integrity: sha512-byVZ2KWLMPYAZGKjRpniAzLcygJO4ruClZKdJTuB0eCB76ONFTdptBHlviHpAZXknRz7skYWPfcgO9v30A1SyA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/config-resolver@2.0.5: + resolution: {integrity: sha512-n0c2AXz+kjALY2FQr7Zy9zhYigXzboIh1AuUUVCqFBKFtdEvTwnwPXrTDoEehLiRTUHNL+4yzZ3s+D0kKYSLSg==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + '@smithy/util-config-provider': 2.0.0 + '@smithy/util-middleware': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/credential-provider-imds@2.0.5: + resolution: {integrity: sha512-KFcf/e0meFkQNyteJ65f1G19sgUEY1e5zL7hyAEUPz2SEfBmC9B37WyRq87G3MEEsvmAWwCRu7nFFYUKtR3svQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/node-config-provider': 2.0.5 + '@smithy/property-provider': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + tslib: 2.5.0 + dev: true + + /@smithy/eventstream-codec@2.0.5: + resolution: {integrity: sha512-iqR6OuOV3zbQK8uVs9o+9AxhVk8kW9NAxA71nugwUB+kTY9C35pUd0A5/m4PRT0Y0oIW7W4kgnSR3fdYXQjECw==} + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@smithy/types': 2.2.2 + '@smithy/util-hex-encoding': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/fetch-http-handler@2.0.5: + resolution: {integrity: sha512-EzFoMowdBNy1VqtvkiXgPFEdosIAt4/4bgZ8uiDiUyfhmNXq/3bV+CagPFFBsgFOR/X2XK4zFZHRsoa7PNHVVg==} + dependencies: + '@smithy/protocol-http': 2.0.5 + '@smithy/querystring-builder': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/util-base64': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/hash-node@2.0.5: + resolution: {integrity: sha512-mk551hIywBITT+kXruRNXk7f8Fy7DTzBjZJSr/V6nolYKmUHIG3w5QU6nO9qPYEQGKc/yEPtkpdS28ndeG93lA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + '@smithy/util-buffer-from': 2.0.0 + '@smithy/util-utf8': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/invalid-dependency@2.0.5: + resolution: {integrity: sha512-0wEi+JT0hM+UUwrJVYbqjuGFhy5agY/zXyiN7BNAJ1XoCDjU5uaNSj8ekPWsXd/d4yM6NSe8UbPd8cOc1+3oBQ==} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/is-array-buffer@2.0.0: + resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: true + + /@smithy/middleware-content-length@2.0.5: + resolution: {integrity: sha512-E7VwV5H02fgZIUGRli4GevBCAPvkyEI/fgl9SU47nPPi3DAAX3nEtUb8xfGbXjOcJ5BdSUoWWZn42tEd/blOqA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/middleware-endpoint@2.0.5: + resolution: {integrity: sha512-tyzDuoNTbsMQCq5Xkc4QOt6e2GACUllQIV8SQ5fc59FtOIV9/vbf58/GxVjZm2o8+MMbdDBANjTDZe/ijZKfyA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/middleware-serde': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-middleware': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/middleware-retry@2.0.5: + resolution: {integrity: sha512-ulIfbFyzQTVnJbLjUl1CTSi0etg6tej/ekwaLp0Gn8ybUkDkKYa+uB6CF/m2J5B6meRwyJlsryR+DjaOVyiicg==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/protocol-http': 2.0.5 + '@smithy/service-error-classification': 2.0.0 + '@smithy/types': 2.2.2 + '@smithy/util-middleware': 2.0.0 + '@smithy/util-retry': 2.0.0 + tslib: 2.5.0 + uuid: 8.3.2 + dev: true + + /@smithy/middleware-serde@2.0.5: + resolution: {integrity: sha512-in0AA5sous74dOfTGU9rMJBXJ0bDVNxwdXtEt5lh3FVd2sEyjhI+rqpLLRF1E4ixbw3RSEf80hfRpcPdjg4vvQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/middleware-stack@2.0.0: + resolution: {integrity: sha512-31XC1xNF65nlbc16yuh3wwTudmqs6qy4EseQUGF8A/p2m/5wdd/cnXJqpniy/XvXVwkHPz/GwV36HqzHtIKATQ==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: true + + /@smithy/node-config-provider@2.0.5: + resolution: {integrity: sha512-LRtjV9WkhONe2lVy+ipB/l1GX60ybzBmFyeRUoLUXWKdnZ3o81jsnbKzMK8hKq8eFSWPk+Lmyx6ZzCQabGeLxg==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/property-provider': 2.0.5 + '@smithy/shared-ini-file-loader': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/node-http-handler@2.0.5: + resolution: {integrity: sha512-lZm5DZf4b3V0saUw9WTC4/du887P6cy2fUyQgQQKRRV6OseButyD5yTzeMmXE53CaXJBMBsUvvIQ0hRVxIq56w==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/abort-controller': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/querystring-builder': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/property-provider@2.0.5: + resolution: {integrity: sha512-cAFSUhX6aiHcmpWfrCLKvwBtgN1F6A0N8qY/8yeSi0LRLmhGqsY1/YTxFE185MCVzYbqBGXVr9TBv4RUcIV4rA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@smithy/protocol-http@1.0.1: resolution: {integrity: sha512-9OrEn0WfOVtBNYJUjUAn9AOiJ4lzERCJJ/JeZs8E6yajTGxBaFRxUnNBHiNqoDJVg076hY36UmEnPx7xXrvUSg==} engines: {node: '>=14.0.0'} @@ -11952,6 +12458,68 @@ packages: tslib: 2.5.0 dev: false + /@smithy/protocol-http@2.0.5: + resolution: {integrity: sha512-d2hhHj34mA2V86doiDfrsy2fNTnUOowGaf9hKb0hIPHqvcnShU4/OSc4Uf1FwHkAdYF3cFXTrj5VGUYbEuvMdw==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/querystring-builder@2.0.5: + resolution: {integrity: sha512-4DCX9krxLzATj+HdFPC3i8pb7XTAWzzKqSw8aTZMjXjtQY+vhe4azMAqIvbb6g7JKwIkmkRAjK6EXO3YWSnJVQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + '@smithy/util-uri-escape': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/querystring-parser@2.0.5: + resolution: {integrity: sha512-C2stCULH0r54KBksv3AWcN8CLS3u9+WsEW8nBrvctrJ5rQTNa1waHkffpVaiKvcW2nP0aIMBPCobD/kYf/q9mA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/service-error-classification@2.0.0: + resolution: {integrity: sha512-2z5Nafy1O0cTf69wKyNjGW/sNVMiqDnb4jgwfMG8ye8KnFJ5qmJpDccwIbJNhXIfbsxTg9SEec2oe1cexhMJvw==} + engines: {node: '>=14.0.0'} + dev: true + + /@smithy/shared-ini-file-loader@2.0.5: + resolution: {integrity: sha512-Mvtk6FwMtfbKRC4YuSsIqRYp9WTxsSUJVVo2djgyhcacKGMqicHDWSAmgy3sDrKv+G/G6xTZCPwm6pJARtdxVg==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/signature-v4@2.0.5: + resolution: {integrity: sha512-ABIzXmUDXK4n2c9cXjQLELgH2RdtABpYKT+U131e2I6RbCypFZmxIHmIBufJzU2kdMCQ3+thBGDWorAITFW04A==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/eventstream-codec': 2.0.5 + '@smithy/is-array-buffer': 2.0.0 + '@smithy/types': 2.2.2 + '@smithy/util-hex-encoding': 2.0.0 + '@smithy/util-middleware': 2.0.0 + '@smithy/util-uri-escape': 2.0.0 + '@smithy/util-utf8': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/smithy-client@2.0.5: + resolution: {integrity: sha512-kCTFr8wfOAWKDzGvfBElc6shHigWtHNhMQ1IbosjC4jOlayFyZMSs2PysKB+Ox/dhQ41KqOzgVjgiQ+PyWqHMQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/middleware-stack': 2.0.0 + '@smithy/types': 2.2.2 + '@smithy/util-stream': 2.0.5 + tslib: 2.5.0 + dev: true + /@smithy/types@1.0.0: resolution: {integrity: sha512-kc1m5wPBHQCTixwuaOh9vnak/iJm21DrSf9UK6yDE5S3mQQ4u11pqAUiKWnlrZnYkeLfAI9UEHj9OaMT1v5Umg==} engines: {node: '>=14.0.0'} @@ -11959,6 +12527,138 @@ packages: tslib: 2.5.0 dev: false + /@smithy/types@2.2.2: + resolution: {integrity: sha512-4PS0y1VxDnELGHGgBWlDksB2LJK8TG8lcvlWxIsgR+8vROI7Ms8h1P4FQUx+ftAX2QZv5g1CJCdhdRmQKyonyw==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + + /@smithy/url-parser@2.0.5: + resolution: {integrity: sha512-OdMBvZhpckQSkugCXNJQCvqJ71wE7Ftxce92UOQLQ9pwF6hoS5PLL7wEfpnuEXtStzBqJYkzu1C1ZfjuFGOXAA==} + dependencies: + '@smithy/querystring-parser': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/util-base64@2.0.0: + resolution: {integrity: sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/util-buffer-from': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/util-body-length-browser@2.0.0: + resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==} + dependencies: + tslib: 2.5.0 + dev: true + + /@smithy/util-body-length-node@2.1.0: + resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: true + + /@smithy/util-buffer-from@2.0.0: + resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/is-array-buffer': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/util-config-provider@2.0.0: + resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: true + + /@smithy/util-defaults-mode-browser@2.0.5: + resolution: {integrity: sha512-yciP6TPttLsj731aHTvekgyuCGXQrEAJibEwEWAh3kzaDsfGAVCuZSBlyvC2Dl3TZmHKCOQwHV8mIE7KQCTPuQ==} + engines: {node: '>= 10.0.0'} + dependencies: + '@smithy/property-provider': 2.0.5 + '@smithy/types': 2.2.2 + bowser: 2.11.0 + tslib: 2.5.0 + dev: true + + /@smithy/util-defaults-mode-node@2.0.5: + resolution: {integrity: sha512-M07t99rWasXt+IaDZDyP3BkcoEm/mgIE1RIMASrE49LKSNxaVN7PVcgGc77+4uu2kzBAyqJKy79pgtezuknyjQ==} + engines: {node: '>= 10.0.0'} + dependencies: + '@smithy/config-resolver': 2.0.5 + '@smithy/credential-provider-imds': 2.0.5 + '@smithy/node-config-provider': 2.0.5 + '@smithy/property-provider': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + + /@smithy/util-hex-encoding@2.0.0: + resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: true + + /@smithy/util-middleware@2.0.0: + resolution: {integrity: sha512-eCWX4ECuDHn1wuyyDdGdUWnT4OGyIzV0LN1xRttBFMPI9Ff/4heSHVxneyiMtOB//zpXWCha1/SWHJOZstG7kA==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: true + + /@smithy/util-retry@2.0.0: + resolution: {integrity: sha512-/dvJ8afrElasuiiIttRJeoS2sy8YXpksQwiM/TcepqdRVp7u4ejd9C4IQURHNjlfPUT7Y6lCDSa2zQJbdHhVTg==} + engines: {node: '>= 14.0.0'} + dependencies: + '@smithy/service-error-classification': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/util-stream@2.0.5: + resolution: {integrity: sha512-ylx27GwI05xLpYQ4hDIfS15vm+wYjNN0Sc2P0FxuzgRe8v0BOLHppGIQ+Bezcynk8C9nUzsUue3TmtRhjut43g==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/util-base64': 2.0.0 + '@smithy/util-buffer-from': 2.0.0 + '@smithy/util-hex-encoding': 2.0.0 + '@smithy/util-utf8': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/util-uri-escape@2.0.0: + resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: true + + /@smithy/util-utf8@2.0.0: + resolution: {integrity: sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/util-buffer-from': 2.0.0 + tslib: 2.5.0 + dev: true + + /@smithy/util-waiter@2.0.5: + resolution: {integrity: sha512-1lkkUmI/bhaDX+LIT3RiUNAn+NzPmsWjE7beMq0oQ3H1/CffaILIN67riDA0aE1YBj6xll7uWMIy4tJqc+peXw==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/abort-controller': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.5.0 + dev: true + /@storybook/addon-actions@7.0.23(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xsLUZez6fzHc+be8BypVO5aA7kjeH9jymLAib68SSQoF0GQry7mb/fhumifQno2BKfCyCw++lYqLHzwV0EISxg==} peerDependencies: @@ -15638,24 +16338,8 @@ packages: uuid: 8.0.0 xml2js: 0.4.19 - /aws-sdk@2.1316.0: - resolution: {integrity: sha512-5y0PR0RcswLlDkIq2E3dF4rvCn7b7yqyVae8SzDv5tcjebwt+YCSD2jJu5Cu7nahqtpWz35I2QGD1OcLK+rlUQ==} - engines: {node: '>= 10.0.0'} - dependencies: - buffer: 4.9.2 - events: 1.1.1 - ieee754: 1.1.13 - jmespath: 0.16.0 - querystring: 0.2.0 - sax: 1.2.1 - url: 0.10.3 - util: 0.12.5 - uuid: 8.0.0 - xml2js: 0.4.19 - dev: true - - /aws-sdk@2.1428.0: - resolution: {integrity: sha512-z8RfFfbPCbtEPeu2W7UJTRcwXu5WNj2ehoDAhmIkvwKMGb5Y1/TbGmny51bucSWt8QKqZlmLxWs9zBGgy7slXw==} + /aws-sdk@2.1448.0: + resolution: {integrity: sha512-15r8YKdAAXLgtPfQTAzD/qNxxgndF1SMEw6F+mXvLxZrLkG4BHnzOW2g2sQc3C2qG5yqCb3K6R+OrjbvGOAmdQ==} engines: {node: '>= 10.0.0'} dependencies: buffer: 4.9.2 @@ -16336,7 +17020,6 @@ packages: /bowser@2.11.0: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} - dev: false /boxen@5.1.2: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} @@ -20576,6 +21259,13 @@ packages: strnum: 1.0.5 dev: false + /fast-xml-parser@4.2.5: + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: true + /fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -30559,7 +31249,7 @@ packages: /serverless-localstack@1.0.2: resolution: {integrity: sha512-sWKCDugurkloKYmOAQ8UjtJg/CL9JTpQWS2x4LGWEw5OGYVA7Wl4CXI1nrPHxGN2VXiyvsho5FBDkXCZ21rQMg==} dependencies: - aws-sdk: 2.1316.0 + aws-sdk: 2.1448.0 es6-promisify: 6.1.1 dev: true @@ -30591,7 +31281,7 @@ packages: ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) archiver: 5.3.1 - aws-sdk: 2.1316.0 + aws-sdk: 2.1448.0 bluebird: 3.7.2 cachedir: 2.3.0 chalk: 4.1.2 @@ -30657,7 +31347,7 @@ packages: ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) archiver: 5.3.1 - aws-sdk: 2.1428.0 + aws-sdk: 2.1448.0 bluebird: 3.7.2 cachedir: 2.3.0 chalk: 4.1.2 @@ -31565,7 +32255,6 @@ packages: /strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false /strong-log-transformer@2.1.0: resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==}