From 1f10e0322905d4bd8dad77e094d57a937701a8f7 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Wed, 5 Jul 2023 13:52:47 -0700 Subject: [PATCH 01/21] feat: add codebuild workflows and scripts --- .codebuild/build_linux.yml | 10 + .codebuild/cleanup_e2e_resources.yml | 11 + .codebuild/cleanup_workflow.yml | 12 + .codebuild/deploy.yml | 8 + .codebuild/e2e_workflow.yml | 36 ++ .codebuild/e2e_workflow_base.yml | 36 ++ .codebuild/lint.yml | 7 + .codebuild/pr_workflow.yml | 26 ++ .codebuild/publish_to_local_registry.yml | 11 + .codebuild/release_workflow.yml | 30 ++ .codebuild/run_e2e_tests.yml | 26 ++ ...ifact-storage-path-allow-list-codebuild.ts | 32 ++ .codebuild/scripts/lint_pr.sh | 12 + .codebuild/scripts/local_publish_helpers.sh | 67 ++++ .codebuild/scripts/publish.sh | 49 +++ .codebuild/scripts/scan_artifacts.ts | 50 +++ .codebuild/test.yml | 12 + .codebuild/verify_api_extract.yml | 7 + .codebuild/verify_yarn_lock.yml | 7 + .gitignore | 3 +- package.json | 10 +- scripts/cloud-release.sh | 11 + scripts/cloud-utils.sh | 87 +++++ scripts/sample.env | 3 + scripts/view-test-artifacts.sh | 55 +++ shared-scripts.sh | 340 ++++++++++++++++++ 26 files changed, 955 insertions(+), 3 deletions(-) create mode 100644 .codebuild/build_linux.yml create mode 100644 .codebuild/cleanup_e2e_resources.yml create mode 100644 .codebuild/cleanup_workflow.yml create mode 100644 .codebuild/deploy.yml create mode 100644 .codebuild/e2e_workflow.yml create mode 100644 .codebuild/e2e_workflow_base.yml create mode 100644 .codebuild/lint.yml create mode 100644 .codebuild/pr_workflow.yml create mode 100644 .codebuild/publish_to_local_registry.yml create mode 100644 .codebuild/release_workflow.yml create mode 100644 .codebuild/run_e2e_tests.yml create mode 100644 .codebuild/scripts/artifact-storage-path-allow-list-codebuild.ts create mode 100644 .codebuild/scripts/lint_pr.sh create mode 100644 .codebuild/scripts/local_publish_helpers.sh create mode 100755 .codebuild/scripts/publish.sh create mode 100644 .codebuild/scripts/scan_artifacts.ts create mode 100644 .codebuild/test.yml create mode 100644 .codebuild/verify_api_extract.yml create mode 100644 .codebuild/verify_yarn_lock.yml create mode 100644 scripts/cloud-release.sh create mode 100644 scripts/cloud-utils.sh create mode 100644 scripts/sample.env create mode 100644 scripts/view-test-artifacts.sh create mode 100644 shared-scripts.sh diff --git a/.codebuild/build_linux.yml b/.codebuild/build_linux.yml new file mode 100644 index 000000000..f3af95851 --- /dev/null +++ b/.codebuild/build_linux.yml @@ -0,0 +1,10 @@ +version: 0.2 +env: + shell: bash +phases: + build: + commands: + - source ./shared-scripts.sh && _buildLinux +artifacts: + files: + - 'shared-scripts.sh' \ No newline at end of file diff --git a/.codebuild/cleanup_e2e_resources.yml b/.codebuild/cleanup_e2e_resources.yml new file mode 100644 index 000000000..7f2010e32 --- /dev/null +++ b/.codebuild/cleanup_e2e_resources.yml @@ -0,0 +1,11 @@ +version: 0.2 +env: + shell: bash + variables: + CI: true + CODEBUILD: true + +phases: + build: + commands: + - source ./shared-scripts.sh && _cleanupE2EResources \ No newline at end of file diff --git a/.codebuild/cleanup_workflow.yml b/.codebuild/cleanup_workflow.yml new file mode 100644 index 000000000..4d7fdfe7b --- /dev/null +++ b/.codebuild/cleanup_workflow.yml @@ -0,0 +1,12 @@ +version: 0.2 +env: + shell: bash + variables: + CI: true + CODEBUILD: true + +phases: + build: + commands: + - yarn production-build + - cd packages/amplify-e2e-tests && yarn clean-cb-e2e-resources \ No newline at end of file diff --git a/.codebuild/deploy.yml b/.codebuild/deploy.yml new file mode 100644 index 000000000..6018bcebe --- /dev/null +++ b/.codebuild/deploy.yml @@ -0,0 +1,8 @@ +version: 0.2 +env: + shell: bash + git-credential-helper: yes +phases: + build: + commands: + - source ./shared-scripts.sh && _deploy diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml new file mode 100644 index 000000000..a47c3945d --- /dev/null +++ b/.codebuild/e2e_workflow.yml @@ -0,0 +1,36 @@ +version: 0.2 +env: + shell: bash + compute-type: BUILD_GENERAL1_MEDIUM + +batch: + fast-fail: false + build-graph: + - identifier: build_linux + buildspec: codebuild_specs/build_linux.yml + env: + compute-type: BUILD_GENERAL1_LARGE + - identifier: test + buildspec: codebuild_specs/test.yml + env: + compute-type: BUILD_GENERAL1_LARGE + depend-on: + - build_linux + - identifier: verify_api_extract + buildspec: codebuild_specs/verify_api_extract.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + depend-on: + - build_linux + - identifier: verify_yarn_lock + buildspec: codebuild_specs/verify_yarn_lock.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + depend-on: + - build_linux + - identifier: publish_to_local_registry + buildspec: codebuild_specs/publish_to_local_registry.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + depend-on: + - build_linux diff --git a/.codebuild/e2e_workflow_base.yml b/.codebuild/e2e_workflow_base.yml new file mode 100644 index 000000000..a47c3945d --- /dev/null +++ b/.codebuild/e2e_workflow_base.yml @@ -0,0 +1,36 @@ +version: 0.2 +env: + shell: bash + compute-type: BUILD_GENERAL1_MEDIUM + +batch: + fast-fail: false + build-graph: + - identifier: build_linux + buildspec: codebuild_specs/build_linux.yml + env: + compute-type: BUILD_GENERAL1_LARGE + - identifier: test + buildspec: codebuild_specs/test.yml + env: + compute-type: BUILD_GENERAL1_LARGE + depend-on: + - build_linux + - identifier: verify_api_extract + buildspec: codebuild_specs/verify_api_extract.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + depend-on: + - build_linux + - identifier: verify_yarn_lock + buildspec: codebuild_specs/verify_yarn_lock.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + depend-on: + - build_linux + - identifier: publish_to_local_registry + buildspec: codebuild_specs/publish_to_local_registry.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + depend-on: + - build_linux diff --git a/.codebuild/lint.yml b/.codebuild/lint.yml new file mode 100644 index 000000000..75c7c5cd4 --- /dev/null +++ b/.codebuild/lint.yml @@ -0,0 +1,7 @@ +version: 0.2 +env: + shell: bash +phases: + build: + commands: + - source ./shared-scripts.sh && _lint \ No newline at end of file diff --git a/.codebuild/pr_workflow.yml b/.codebuild/pr_workflow.yml new file mode 100644 index 000000000..66da8f701 --- /dev/null +++ b/.codebuild/pr_workflow.yml @@ -0,0 +1,26 @@ +version: 0.2 +env: + shell: bash + compute-type: BUILD_GENERAL1_LARGE + +batch: + fast-fail: false + build-graph: + - identifier: build_linux + buildspec: codebuild_specs/build_linux.yml + - identifier: test + buildspec: codebuild_specs/test.yml + depend-on: + - build_linux + - identifier: lint + buildspec: codebuild_specs/lint.yml + depend-on: + - build_linux + - identifier: verify_api_extract + buildspec: codebuild_specs/verify_api_extract.yml + depend-on: + - build_linux + - identifier: verify_yarn_lock + buildspec: codebuild_specs/verify_yarn_lock.yml + depend-on: + - build_linux \ No newline at end of file diff --git a/.codebuild/publish_to_local_registry.yml b/.codebuild/publish_to_local_registry.yml new file mode 100644 index 000000000..b9dfe84d6 --- /dev/null +++ b/.codebuild/publish_to_local_registry.yml @@ -0,0 +1,11 @@ +version: 0.2 +env: + shell: bash +phases: + build: + commands: + - source ./shared-scripts.sh && _publishToLocalRegistry + +artifacts: + files: + - 'shared-scripts.sh' \ No newline at end of file diff --git a/.codebuild/release_workflow.yml b/.codebuild/release_workflow.yml new file mode 100644 index 000000000..66872b0d8 --- /dev/null +++ b/.codebuild/release_workflow.yml @@ -0,0 +1,30 @@ +version: 0.2 +env: + shell: bash + compute-type: BUILD_GENERAL1_LARGE + +batch: + fast-fail: false + build-graph: + - identifier: build_linux + buildspec: codebuild_specs/build_linux.yml + - identifier: test + buildspec: codebuild_specs/test.yml + depend-on: + - build_linux + - identifier: lint + buildspec: codebuild_specs/lint.yml + depend-on: + - build_linux + - identifier: verify_api_extract + buildspec: codebuild_specs/verify_api_extract.yml + depend-on: + - build_linux + - identifier: verify_yarn_lock + buildspec: codebuild_specs/verify_yarn_lock.yml + depend-on: + - build_linux + - identifier: deploy + buildspec: codebuild_specs/deploy.yml + depend-on: + - test diff --git a/.codebuild/run_e2e_tests.yml b/.codebuild/run_e2e_tests.yml new file mode 100644 index 000000000..4a17505cf --- /dev/null +++ b/.codebuild/run_e2e_tests.yml @@ -0,0 +1,26 @@ +version: 0.2 +env: + shell: bash + variables: + AMPLIFY_DIR: /root/.npm-global/lib/node_modules/@aws-amplify/cli-internal/bin + AMPLIFY_PATH: /root/.npm-global/lib/node_modules/@aws-amplify/cli-internal/bin/amplify + CI: true + CODEBUILD: true + NODE_OPTIONS: --max-old-space-size=8096 + # mock values to test artifact scanning + ENV_VAR_WITH_SECRETS: 'MOCK_ENV_VAR_FOR_SCANNING_SECRETS' + MOCK_ENV_VAR_FOR_SCANNING_SECRETS: 'abc123xyz' +phases: + build: + commands: + # you can provide a codebuild source version to use old cache and skip all other jobs :) + - source ./shared-scripts.sh && _runE2ETestsLinux + post_build: + commands: + - aws sts get-caller-identity + - source ./shared-scripts.sh && _scanArtifacts + +artifacts: + files: + - $CODEBUILD_SRC_DIR/packages/amplify-codegen-e2e-tests/amplify-e2e-reports/* + discard-paths: yes \ No newline at end of file diff --git a/.codebuild/scripts/artifact-storage-path-allow-list-codebuild.ts b/.codebuild/scripts/artifact-storage-path-allow-list-codebuild.ts new file mode 100644 index 000000000..f89fa334a --- /dev/null +++ b/.codebuild/scripts/artifact-storage-path-allow-list-codebuild.ts @@ -0,0 +1,32 @@ +/** + * Codebuild allows you to store test results & artifacts after each job, + * but we need to scan those results/artifacts before we upload those files. + * + * You must register all paths where artifacts will be stored, using $CODEBUILD_SRC_DIR as the root folder. + * + * For example: + * In run_e2e_tests.yml, we have the following steps: + * + artifacts: + files: + - $CODEBUILD_SRC_DIR/packages/amplify-e2e-tests/amplify-e2e-reports/* + * + * From the above job, 'path' includes the following: + * $CODEBUILD_SRC_DIR/packages/amplify-e2e-tests/amplify-e2e-reports + * + * Those paths must be included in this list. + * + * This ensures that we will scan all of these directories before uploading any files. + * + * If you try to upload artifacts from a directory that is not listed below, your build + * will not execute, and you'll be prompted to update this list. + * + * NOTE: Make sure to use '$CODEBUILD_SRC_DIR' as the first segment in your paths, + * this allows for path resolution in both linux & windows machines. + * You do not need to include pathing for Windows, as the scanning script + * will automatically normalize these paths for Windows if it detects it. + */ +export const ARTIFACT_STORAGE_PATH_ALLOW_LIST_CODEBUILD = [ + '$CODEBUILD_SRC_DIR/packages/amplify-e2e-tests/', + '$CODEBUILD_SRC_DIR/packages/amplify-e2e-tests/amplify-e2e-reports' +]; \ No newline at end of file diff --git a/.codebuild/scripts/lint_pr.sh b/.codebuild/scripts/lint_pr.sh new file mode 100644 index 000000000..26bb57c43 --- /dev/null +++ b/.codebuild/scripts/lint_pr.sh @@ -0,0 +1,12 @@ +set -xeo pipefail +# extract the PR number from the PR link +PR_NUM=${CODEBUILD_WEBHOOK_TRIGGER##*/} + +if [ -z "$PR_NUM" ]; then + echo "Could not determine PR number. Cannot determine fork point for linting. Skipping linting." + exit +fi + +# get PR file list, filter out removed files, filter only JS/TS files, then pass to the linter +curl -fsSL https://api.github.com/repos/$PROJECT_USERNAME/$REPO_NAME/pulls/$PR_NUM/files | jq -r '.[] | select(.status!="removed") | .filename' | grep -E '\.(js|jsx|ts|tsx)$' || true | xargs yarn eslint +set +x diff --git a/.codebuild/scripts/local_publish_helpers.sh b/.codebuild/scripts/local_publish_helpers.sh new file mode 100644 index 000000000..c96de99e9 --- /dev/null +++ b/.codebuild/scripts/local_publish_helpers.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +custom_registry_url=http://localhost:4873 +default_verdaccio_package=verdaccio@5.1.2 + +function startLocalRegistry { + # Start local registry + tmp_registry_log="$(mktemp)" + echo "Registry output file: $tmp_registry_log" + (cd && nohup npx ${VERDACCIO_PACKAGE:-$default_verdaccio_package} -c $1 &>$tmp_registry_log &) + # Wait for Verdaccio to boot + grep -q 'http address' <(tail -f $tmp_registry_log) +} + +function setNpmTag { + if [ -z $NPM_TAG ]; then + if [[ "$BRANCH_NAME" =~ ^tagged-release ]]; then + if [[ "$BRANCH_NAME" =~ ^tagged-release-without-e2e-tests\/.* ]]; then + export NPM_TAG="${BRANCH_NAME/tagged-release-without-e2e-tests\//}" + elif [[ "$BRANCH_NAME" =~ ^tagged-release\/.* ]]; then + export NPM_TAG="${BRANCH_NAME/tagged-release\//}" + fi + fi + if [[ "$BRANCH_NAME" == "beta" ]]; then + export NPM_TAG="beta" + fi + else + echo "NPM tag was already set!" + fi + echo $NPM_TAG +} + +function unsetNpmRegistryUrl { + # Restore the original NPM and Yarn registry URLs + npm set registry "https://registry.npmjs.org/" + yarn config set registry "https://registry.npmjs.org/" +} + +function unsetSudoNpmRegistryUrl { + # Restore the original NPM and Yarn registry URLs + sudo npm set registry "https://registry.npmjs.org/" + sudo yarn config set registry "https://registry.npmjs.org/" +} + +function changeNpmGlobalPath { + mkdir -p ~/.npm-global + npm config set prefix '~/.npm-global' + export PATH=~/.npm-global/bin:$PATH +} + +function changeSudoNpmGlobalPath { + mkdir -p ~/.npm-global-sudo + npm config set prefix '~/.npm-global-sudo' + export PATH=~/.npm-global/bin:$PATH +} + +function setNpmRegistryUrlToLocal { + # Set registry to local registry + npm set registry "$custom_registry_url" + yarn config set registry "$custom_registry_url" +} + +function setSudoNpmRegistryUrlToLocal { + # Set registry to local registry + sudo npm set registry "$custom_registry_url" + sudo yarn config set registry "$custom_registry_url" +} diff --git a/.codebuild/scripts/publish.sh b/.codebuild/scripts/publish.sh new file mode 100755 index 000000000..43a967bd1 --- /dev/null +++ b/.codebuild/scripts/publish.sh @@ -0,0 +1,49 @@ +#!/bin/bash -e + +if [ -z "$BRANCH_NAME" ]; then + echo "BRANCH_NAME is missing" + exit 1 +else + git checkout $BRANCH_NAME + yarn install + git restore . +fi + +if [ -z "$GITHUB_EMAIL" ]; then + echo "GITHUB_EMAIL is missing" + exit 1 +else + git config --global user.email $GITHUB_EMAIL +fi + +if [ -z "$GITHUB_USER" ]; then + echo "GITHUB_USER is missing" + exit 1 +else + git config --global user.name $GITHUB_USER +fi + +RESERVED_TAGS=(alpha beta dev latest main) + +if [[ "$BRANCH_NAME" =~ ^cb-tagged-release ]]; then + if [[ "$BRANCH_NAME" =~ ^cb-tagged-release-without-e2e-tests\/.* ]]; then + # Remove tagged-release-without-e2e-tests/ + NPM_TAG="${BRANCH_NAME/cb-tagged-release-without-e2e-tests\//}" + elif [[ "$BRANCH_NAME" =~ ^cb-tagged-release\/.* ]]; then + # Remove tagged-release/ + NPM_TAG="${BRANCH_NAME/cb-tagged-release\//}" + fi + if [ -z "$NPM_TAG" ]; then + echo "Tag name is missing. Name your branch with either cb-tagged-release/ or cb-tagged-release-without-e2e-tests/" + exit 1 + fi + if [[ " ${RESERVED_TAGS[*]} " =~ " ${NPM_TAG} " ]]; then + echo "The $NPM_TAG tag is reserved. Use alternate tag name" + else + echo "Publishing to NPM with tag $NPM_TAG" + export NPM_TAG="$NPM_TAG" + yarn publish:tag + fi +else + yarn publish:$BRANCH_NAME +fi \ No newline at end of file diff --git a/.codebuild/scripts/scan_artifacts.ts b/.codebuild/scripts/scan_artifacts.ts new file mode 100644 index 000000000..e3d6f209a --- /dev/null +++ b/.codebuild/scripts/scan_artifacts.ts @@ -0,0 +1,50 @@ +import * as execa from 'execa'; +import * as path from 'path'; + +// This list contains a platform agnostic list of paths where artifacts are stored after each test. +import { ARTIFACT_STORAGE_PATH_ALLOW_LIST_CODEBUILD } from './artifact-storage-path-allow-list-codebuild'; + +const ROOT_FOLDER_ABSOLUTE_PATH = process.env.CODEBUILD_SRC_DIR as string; + +export const hasMatchingContentInFolder = (patterns: string[], folder: string, excludeFolder = '{node_modules,.cache,.git}'): boolean => { + console.log('Scanning folder:', folder); + const patternParam = patterns.reduce((acc, v) => [...acc, '-e', v], []); + + try { + execa.sync('grep', ['-r', `--exclude-dir=${excludeFolder}`, ...patternParam, folder]); + return true; + } catch (e) { + // When there is no match exit code is set to 1 + if (e.exitCode === 1) { + return false; + } + if (e.message.includes('No such file or directory')) { + console.log('No artifacts found at:', folder); + return false; + } + throw new Error('Scanning artifacts failed'); + } +}; + +const main = () => { + const envVarNameWithCredentialValues = (process.env.ENV_VAR_WITH_SECRETS || '').split(',').map((v) => v.trim()); + const values = envVarNameWithCredentialValues.map((v) => process.env[v]).filter(Boolean); + if (values.length) { + for (let folder of ARTIFACT_STORAGE_PATH_ALLOW_LIST_CODEBUILD) { + if (folder.startsWith('$CODEBUILD_SRC_DIR')) { + const normalizedFolder = path.normalize(folder.replace('$CODEBUILD_SRC_DIR', ROOT_FOLDER_ABSOLUTE_PATH)); + const hasContent = hasMatchingContentInFolder(values as string[], normalizedFolder); + if (hasContent) { + console.log('Scanning artifact has found secret value. Failing the build: ', normalizedFolder); + process.exit(1); + } + } else { + console.log('Paths in ARTIFACT_STORAGE_PATH_ALLOW_LIST_CODEBUILD must start with $CODEBUILD_SRC_DIR/'); + console.log('Update the path to use $CODEBUILD_SRC_DIR/ and make sure to do the same in the codebuild_specs/*.yml files'); + process.exit(1); + } + } + } +}; + +main(); \ No newline at end of file diff --git a/.codebuild/test.yml b/.codebuild/test.yml new file mode 100644 index 000000000..080b4b9a3 --- /dev/null +++ b/.codebuild/test.yml @@ -0,0 +1,12 @@ +version: 0.2 +env: + shell: bash + variables: + NODE_OPTIONS: --max-old-space-size=8192 +phases: + build: + commands: + - source ./shared-scripts.sh && _testLinux +artifacts: + files: + - 'shared-scripts.sh' diff --git a/.codebuild/verify_api_extract.yml b/.codebuild/verify_api_extract.yml new file mode 100644 index 000000000..d68f393b4 --- /dev/null +++ b/.codebuild/verify_api_extract.yml @@ -0,0 +1,7 @@ +version: 0.2 +env: + shell: bash +phases: + build: + commands: + - source ./shared-scripts.sh && _verifyAPIExtract \ No newline at end of file diff --git a/.codebuild/verify_yarn_lock.yml b/.codebuild/verify_yarn_lock.yml new file mode 100644 index 000000000..e8cbf9736 --- /dev/null +++ b/.codebuild/verify_yarn_lock.yml @@ -0,0 +1,7 @@ +version: 0.2 +env: + shell: bash +phases: + build: + commands: + - source ./shared-scripts.sh && _verifyYarnLock \ No newline at end of file diff --git a/.gitignore b/.gitignore index 0ea050207..5008007a9 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,5 @@ packages/**/reports/junit/* test.out.log *.tsbuildinfo package-lock.json -.idea \ No newline at end of file +.idea +scripts/.env \ No newline at end of file diff --git a/package.json b/package.json index d0a19293a..04939650b 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,12 @@ "refresh-lockfile": "rimraf yarn.lock && yarn", "cloud-e2e": "CURR_BRANCH=$(git branch | awk '/\\*/{printf \"%s\", $2}') && UPSTREAM_BRANCH=run-e2e/$USER/$CURR_BRANCH && git push $(git remote -v | grep aws-amplify/amplify-codegen | head -n1 | awk '{print $1;}') $CURR_BRANCH:$UPSTREAM_BRANCH --no-verify --force-with-lease && echo \"\n\n 🏃 E2E test are running at:\nhttps://app.circleci.com/pipelines/github/aws-amplify/amplify-codegen?branch=$UPSTREAM_BRANCH\"", "extract-api": "lerna run extract-api", - "verify-api-extract": "yarn extract-api && ./scripts/verify-extract-api.sh" + "verify-api-extract": "yarn extract-api && ./scripts/verify-extract-api.sh", + "release-codebuild": "source ./scripts/cloud-release.sh && release", + "view-test-artifact": "./scripts/view-test-artifacts.sh", + "cleanup-stale-resources": "source ./scripts/cloud-utils.sh && cleanupStaleResources", + "cloud-e2e-cb": "source scripts/cloud-utils.sh && cloudE2E", + "cloud-e2e-cb-beta": "source scripts/cloud-utils.sh && cloudE2EBeta" }, "bugs": { "url": "https://github.com/aws-amplify/amplify-codegen/issues" @@ -102,7 +107,8 @@ "rimraf": "^3.0.0", "ts-jest": "^27.0.0", "ts-node": "^8.10.1", - "typescript": "4.7.4" + "typescript": "4.7.4", + "execa": "^5.1.1" }, "resolutions": { "minimist": "^1.2.6", diff --git a/scripts/cloud-release.sh b/scripts/cloud-release.sh new file mode 100644 index 000000000..f35eb7dc2 --- /dev/null +++ b/scripts/cloud-release.sh @@ -0,0 +1,11 @@ +#!/bin/bash +source ./scripts/cloud-utils.sh +export RELEASE_ROLE_NAME=CodebuildDeveloper +export RELEASE_PROFILE_NAME=AmplifyAPIPluginRelease +export RELEASE_PROJECT_NAME=amplify-codegen-release-workflow + +function release { + branch_name=$(git branch --show-current) + echo "Running release workflow from branch ${branch_name}" + triggerProjectBatch $RELEASE_ACCOUNT_PROD $RELEASE_ROLE_NAME "${RELEASE_PROFILE_NAME}Prod" $RELEASE_PROJECT_NAME $branch_name +} diff --git a/scripts/cloud-utils.sh b/scripts/cloud-utils.sh new file mode 100644 index 000000000..7d1a702bb --- /dev/null +++ b/scripts/cloud-utils.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +# set exit on error to true +set -e +# load .env +set -o allexport +source ./scripts/.env set + +REGION=us-east-1 +CURR_BRANCH=$(git branch --show-current) + +function authenticate { + account_number=$1 + role_name=$2 + profile_name=$3 + echo Loading account credentials for Account $account_number with Role: $role_name... + ada cred update --profile="${profile_name}" --account="${account_number}" --role=${role_name} --provider=isengard --once + aws configure set region $REGION --profile $profile_name +} + +function triggerProjectBatch { + account_number=$1 + role_name=$2 + profile_name=$3 + project_name=$4 + target_branch=$5 + authenticate $account_number $role_name $profile_name + echo AWS Account: $account_number + echo Project: $project_name + echo Target Branch: $target_branch + RESULT=$(aws codebuild start-build-batch --profile="${profile_name}" --project-name $project_name --source-version=$target_branch \ + --environment-variables-override name=BRANCH_NAME,value=$target_branch,type=PLAINTEXT \ + --query 'buildBatch.id' --output text) + echo "https://$REGION.console.aws.amazon.com/codesuite/codebuild/$account_number/projects/$project_name/batch/$RESULT?region=$REGION" +} + +function triggerProject { + account_number=$1 + role_name=$2 + profile_name=$3 + project_name=$4 + target_branch=$5 + authenticate $account_number $role_name $profile_name + echo AWS Account: $account_number + echo Project: $project_name + echo Target Branch: $target_branch + RESULT=$(aws codebuild start-build --profile="${profile_name}" --project-name $project_name --source-version=$target_branch \ + --environment-variables-override name=BRANCH_NAME,value=$target_branch,type=PLAINTEXT \ + --query 'build.id' --output text) + echo "https://$REGION.console.aws.amazon.com/codesuite/codebuild/$account_number/projects/$project_name/build/$RESULT?region=$REGION" +} + +function cloudE2EBeta { + echo Running Beta E2E Test Suite + E2E_ROLE_NAME=CodebuildDeveloper + E2E_PROFILE_NAME=AmplifyAPIE2EBeta + E2E_PROJECT_NAME=amplify-codegen-e2e-workflow + TARGET_BRANCH=$CURR_BRANCH + triggerProjectBatch $E2E_ACCOUNT_BETA $E2E_ROLE_NAME $E2E_PROFILE_NAME $E2E_PROJECT_NAME $TARGET_BRANCH +} + +function cloudE2E { + echo Running Prod E2E Test Suite + E2E_ROLE_NAME=CodebuildDeveloper + E2E_PROFILE_NAME=AmplifyAPIE2EProd + E2E_PROJECT_NAME=amplify-codegen-e2e-workflow + TARGET_BRANCH=$CURR_BRANCH + triggerProjectBatch $E2E_ACCOUNT_PROD $E2E_ROLE_NAME $E2E_PROFILE_NAME $E2E_PROJECT_NAME $TARGET_BRANCH +} + +function cleanupStaleResourcesBeta { + echo Running Beta E2E resource stale resource cleanup + CLEANUP_ROLE_NAME=CodebuildDeveloper + CLEANUP_PROFILE_NAME=AmplifyAPIE2EBeta + CLEANUP_PROJECT_NAME=amplify-codegen-cleanup-workflow + TARGET_BRANCH=$CURR_BRANCH + triggerProject $E2E_ACCOUNT_BETA $CLEANUP_ROLE_NAME $CLEANUP_PROFILE_NAME $CLEANUP_PROJECT_NAME $TARGET_BRANCH +} + +function cleanupStaleResources { + echo Running Prod E2E resource stale resource cleanup + CLEANUP_ROLE_NAME=CodebuildDeveloper + CLEANUP_PROFILE_NAME=AmplifyAPIE2EProd + CLEANUP_PROJECT_NAME=amplify-codegen-cleanup-workflow + TARGET_BRANCH=$CURR_BRANCH + triggerProject $E2E_ACCOUNT_PROD $CLEANUP_ROLE_NAME $CLEANUP_PROFILE_NAME $CLEANUP_PROJECT_NAME $TARGET_BRANCH +} diff --git a/scripts/sample.env b/scripts/sample.env new file mode 100644 index 000000000..e18728876 --- /dev/null +++ b/scripts/sample.env @@ -0,0 +1,3 @@ +E2E_ACCOUNT_BETA= +E2E_ACCOUNT_PROD= +RELEASE_ACCOUNT_PROD= \ No newline at end of file diff --git a/scripts/view-test-artifacts.sh b/scripts/view-test-artifacts.sh new file mode 100644 index 000000000..edcd3ae1d --- /dev/null +++ b/scripts/view-test-artifacts.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +source ./scripts/cloud-utils.sh + +function downloadS3Artifact { + # Get temporary access for the account + E2E_ROLE_NAME=CodebuildDeveloper + E2E_PROFILE_NAME=AmplifyAPIE2EProd + authenticate $E2E_ACCOUNT_PROD $E2E_ROLE_NAME "$E2E_PROFILE_NAME" + + local s3_object_uri=$1 + local destination_dir=$2 + + echo "Downloading objects from S3 bucket..." + aws s3 cp "$s3_object_uri" "$destination_dir" --recursive --profile="$E2E_PROFILE_NAME" + echo "Download complete. Files are saved in: $destination_dir" +} + +function playTestArtifact { + # Check if an S3 object URI is provided + if [ $# -eq 0 ]; then + echo "Provide the S3 URI of the artifact: $0 " + exit 1 + fi + + local s3_object_uri=$1 + local temp_dir=$(mktemp -d) # Create a temporary directory + + trap "cleanup $temp_dir" SIGINT SIGTERM # Register cleanup function to handle Ctrl+C + + echo "Starting test artifact playback..." + downloadS3Artifact "$s3_object_uri" "$temp_dir" + + + local subfolders=("$temp_dir"/*/) + if [ ${#subfolders[@]} -eq 1 ]; then + cd "${subfolders[0]}" || exit 1 + else + cd "$temp_dir" || exit 1 + fi + + # Spin up a local HTTP server + echo "Starting local HTTP server from directory $(pwd)..." + npx http-server -p 0 + + cleanup "$temp_dir" +} + +function cleanup { + echo "Cleaning up and deleting the temporary directory..." + rm -rf "$1" + echo "Temporary directory deleted. Exiting script." +} + +playTestArtifact "$@" diff --git a/shared-scripts.sh b/shared-scripts.sh new file mode 100644 index 000000000..4353f1cba --- /dev/null +++ b/shared-scripts.sh @@ -0,0 +1,340 @@ +#!/bin/bash + +# set exit on error to true +set -e + +# storeCache +function storeCache { + localPath="$1" + alias="$2" + s3Path="s3://$CACHE_BUCKET_NAME/$CODEBUILD_SOURCE_VERSION/$alias" + echo "Writing cache folder $alias to $s3Path" + # zip contents and upload to s3 + if ! (cd $localPath && tar cz . | aws s3 cp - $s3Path); then + echo "Something went wrong storing the cache folder $alias." + fi + echo "Done writing cache folder $alias" + cd $CODEBUILD_SRC_DIR +} + +# loadCache +function loadCache { + alias="$1" + localPath="$2" + s3Path="s3://$CACHE_BUCKET_NAME/$CODEBUILD_SOURCE_VERSION/$alias" + echo "Loading cache folder from $s3Path" + # create directory if it doesn't exist yet + mkdir -p $localPath + # check if cache exists in s3 + if ! aws s3 ls $s3Path > /dev/null; then + echo "Cache folder $alias not found." + exit 0 + fi + # load cache and unzip it + if ! (cd $localPath && aws s3 cp $s3Path - | tar xz); then + echo "Something went wrong fetching the cache folder $alias. Continuing anyway." + fi + echo "Done loading cache folder $alias" + cd $CODEBUILD_SRC_DIR +} + +function storeCacheForBuildJob { + # upload [repo, .cache] to s3 + storeCache $CODEBUILD_SRC_DIR repo + storeCache $HOME/.cache .cache +} + +function loadCacheFromBuildJob { + # download [repo, .cache] from s3 + loadCache repo $CODEBUILD_SRC_DIR + loadCache .cache $HOME/.cache +} + +function storeCacheFile { + localFilePath="$1" + alias="$2" + s3Path="s3://$CACHE_BUCKET_NAME/$CODEBUILD_SOURCE_VERSION/$alias" + echo "Writing cache file $alias to $s3Path" + # upload file to s3 + if ! (aws s3 cp $localFilePath $s3Path); then + echo "Something went wrong storing the cache file $alias." + fi + echo "Done writing cache file $alias" + cd $CODEBUILD_SRC_DIR +} + +function loadCacheFile { + alias="$1" + localFilePath="$2" + s3Path="s3://$CACHE_BUCKET_NAME/$CODEBUILD_SOURCE_VERSION/$alias" + echo "Loading cache file $alias from $s3Path" + # check if cache file exists in s3 + if ! aws s3 ls $s3Path > /dev/null; then + echo "Cache file $alias not found." + exit 0 + fi + # load cache file + if ! (aws s3 cp $s3Path $localFilePath); then + echo "Something went wrong fetching the cache file $alias. Continuing anyway." + fi + echo "Done loading cache file $alias" + cd $CODEBUILD_SRC_DIR +} + +function _setShell { + echo "Setting Shell" + yarn config set script-shell $(which bash) +} + +function _buildLinux { + _setShell + echo "Linux Build" + yarn run production-build + yarn build-tests + storeCacheForBuildJob +} + +function _testLinux { + echo "Run Unit Test" + loadCacheFromBuildJob + yarn test-ci +} + +function _verifyAPIExtract { + echo "Verify API Extract" + loadCacheFromBuildJob + yarn verify-api-extract +} + +function _verifyYarnLock { + echo "Verify Yarn Lock" + loadCacheFromBuildJob + yarn verify-yarn-lock +} + +function _lint { + echo "Lint" + loadCacheFromBuildJob + chmod +x .codebuild/scripts/lint_pr.sh && ./.codebuild/scripts/lint_pr.sh +} + +function _publishToLocalRegistry { + echo "Publish To Local Registry" + loadCacheFromBuildJob + if [ -z "$BRANCH_NAME" ]; then + export BRANCH_NAME="$(git symbolic-ref HEAD --short 2>/dev/null)" + if [ "$BRANCH_NAME" = "" ] ; then + BRANCH_NAME="$(git rev-parse HEAD | xargs git name-rev | cut -d' ' -f2 | sed 's/remotes\/origin\///g')"; + fi + fi + git checkout $BRANCH_NAME + + # Fetching git tags from upstream + # For forked repo only + # Can be removed when using team account + echo "fetching tags" + git fetch --tags https://github.com/aws-amplify/amplify-codegen + + source .codebuild/scripts/local_publish_helpers.sh + startLocalRegistry "$(pwd)/.circleci/verdaccio.yaml" + setNpmRegistryUrlToLocal + git config user.email not@used.com + git config user.name "Doesnt Matter" + setNpmTag + if [ -z $NPM_TAG ]; then + yarn publish-to-verdaccio + else + yarn lerna publish --exact --dist-tag=latest --preid=$NPM_TAG --conventional-commits --conventional-prerelease --no-verify-access --yes --no-commit-hooks --no-push --no-git-tag-version + fi + unsetNpmRegistryUrl + # copy [verdaccio-cache] to s3 + storeCache $CODEBUILD_SRC_DIR/../verdaccio-cache verdaccio-cache + + _generateChangeLog +} + +function _generateChangeLog { + echo "Generate Change Log" + git reset --hard HEAD + yarn update-versions + yarn ts-node scripts/unified-changelog.ts + # copy [changelog] to s3 + storeCacheFile $CODEBUILD_SRC_DIR/UNIFIED_CHANGELOG.md UNIFIED_CHANGELOG.md +} + +function _installCLIFromLocalRegistry { + echo "Start verdaccio, install CLI" + source .codebuild/scripts/local_publish_helpers.sh + startLocalRegistry "$(pwd)/.circleci/verdaccio.yaml" + setNpmRegistryUrlToLocal + changeNpmGlobalPath + npm install -g @aws-amplify/cli-internal + echo "using Amplify CLI version: "$(amplify --version) + npm list -g --depth=1 | grep -e '@aws-amplify/amplify-category-api' -e 'amplify-codegen' + unsetNpmRegistryUrl +} + +function _loadTestAccountCredentials { + echo ASSUMING PARENT TEST ACCOUNT credentials + session_id=$((1 + $RANDOM % 10000)) + # Use longer time for parent account role + creds=$(aws sts assume-role --role-arn $TEST_ACCOUNT_ROLE --role-session-name testSession${session_id} --duration-seconds 3600) + if [ -z $(echo $creds | jq -c -r '.AssumedRoleUser.Arn') ]; then + echo "Unable to assume parent e2e account role." + return + fi + echo "Using account credentials for $(echo $creds | jq -c -r '.AssumedRoleUser.Arn')" + export AWS_ACCESS_KEY_ID=$(echo $creds | jq -c -r ".Credentials.AccessKeyId") + export AWS_SECRET_ACCESS_KEY=$(echo $creds | jq -c -r ".Credentials.SecretAccessKey") + export AWS_SESSION_TOKEN=$(echo $creds | jq -c -r ".Credentials.SessionToken") +} + +function _runE2ETestsLinux { + echo "RUN E2E Tests Linux" + loadCacheFromBuildJob + loadCache verdaccio-cache $CODEBUILD_SRC_DIR/../verdaccio-cache + _installCLIFromLocalRegistry + _loadTestAccountCredentials + _setShell + retry runE2eTest +} + +function _scanArtifacts { + if ! yarn ts-node .codebuild/scripts/scan_artifacts.ts; then + echo "Cleaning the repository" + git clean -fdx + exit 1 + fi +} + +function _cleanupE2EResources { + echo "Cleanup E2E resources" + loadCacheFromBuildJob + cd packages/amplify-codegen-e2e-tests + echo "Running clean up script" + build_batch_arn=$(aws codebuild batch-get-builds --ids $CODEBUILD_BUILD_ID | jq -r -c '.builds[0].buildBatchArn') + echo "Cleanup resources for batch build $build_batch_arn" + yarn clean-cb-e2e-resources --buildBatchArn $build_batch_arn +} + +# The following functions are forked from circleci local publish helper +# The e2e helper functions are moved for codebuild usage +function useChildAccountCredentials { + if [ -z "$USE_PARENT_ACCOUNT" ]; then + export AWS_PAGER="" + parent_acct=$(aws sts get-caller-identity | jq -cr '.Account') + child_accts=$(aws organizations list-accounts | jq -c "[.Accounts[].Id | select(. != \"$parent_acct\")]") + org_size=$(echo $child_accts | jq 'length') + pick_acct=$(echo $child_accts | jq -cr ".[$RANDOM % $org_size]") + session_id=$((1 + $RANDOM % 10000)) + if [[ -z "$pick_acct" || -z "$session_id" ]]; then + echo "Unable to find a child account. Falling back to parent AWS account" + return + fi + creds=$(aws sts assume-role --role-arn arn:aws:iam::${pick_acct}:role/OrganizationAccountAccessRole --role-session-name testSession${session_id} --duration-seconds 3600) + if [ -z $(echo $creds | jq -c -r '.AssumedRoleUser.Arn') ]; then + echo "Unable to assume child account role. Falling back to parent AWS account" + return + fi + export ORGANIZATION_SIZE=$org_size + export CREDS=$creds + echo "Using account credentials for $(echo $creds | jq -c -r '.AssumedRoleUser.Arn')" + export AWS_ACCESS_KEY_ID=$(echo $creds | jq -c -r ".Credentials.AccessKeyId") + export AWS_SECRET_ACCESS_KEY=$(echo $creds | jq -c -r ".Credentials.SecretAccessKey") + export AWS_SESSION_TOKEN=$(echo $creds | jq -c -r ".Credentials.SessionToken") + else + echo "Using parent account credentials." + fi + echo "Region is set to use $CLI_REGION" +} + +function retry { + MAX_ATTEMPTS=2 + SLEEP_DURATION=5 + FIRST_RUN=true + n=0 + FAILED_TEST_REGEX_FILE="./amplify-e2e-reports/amplify-e2e-failed-test.txt" + if [ -f $FAILED_TEST_REGEX_FILE ]; then + rm -f $FAILED_TEST_REGEX_FILE + fi + until [ $n -ge $MAX_ATTEMPTS ] + do + echo "Attempting $@ with max retries $MAX_ATTEMPTS" + setAwsAccountCredentials + "$@" && break + n=$[$n+1] + FIRST_RUN=false + echo "Attempt $n completed." + sleep $SLEEP_DURATION + done + if [ $n -ge $MAX_ATTEMPTS ]; then + echo "failed: ${@}" >&2 + exit 1 + fi + + resetAwsAccountCredentials + TEST_SUITE=${TEST_SUITE:-"TestSuiteNotSet"} + echo "Attempt $n succeeded." + exit 0 # don't fail the step if putting the metric fails +} + +function resetAwsAccountCredentials { + if [ -z "$AWS_ACCESS_KEY_ID_ORIG" ]; then + echo "AWS Access Key environment variable is already set" + else + export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID_ORIG + fi + if [ -z "$AWS_SECRET_ACCESS_KEY_ORIG" ]; then + echo "AWS Secret Access Key environment variable is already set" + else + export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY_ORIG + fi + if [ -z "$AWS_SESSION_TOKEN_ORIG" ]; then + echo "AWS Session Token environment variable is already set" + else + export AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN_ORIG + fi +} + +function setAwsAccountCredentials { + resetAwsAccountCredentials + export AWS_ACCESS_KEY_ID_ORIG=$AWS_ACCESS_KEY_ID + export AWS_SECRET_ACCESS_KEY_ORIG=$AWS_SECRET_ACCESS_KEY + export AWS_SESSION_TOKEN_ORIG=$AWS_SESSION_TOKEN + if [[ "$OSTYPE" == "msys" ]]; then + # windows provided by circleci has this OSTYPE + useChildAccountCredentials + else + echo "OSTYPE is $OSTYPE" + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + unzip -o awscliv2.zip >/dev/null + export PATH=$PATH:$(pwd)/aws/dist + useChildAccountCredentials + fi +} + +function runE2eTest { + FAILED_TEST_REGEX_FILE="./amplify-e2e-reports/amplify-e2e-failed-test.txt" + + if [ -z "$FIRST_RUN" ] || [ "$FIRST_RUN" == "true" ]; then + echo "using Amplify CLI version: "$(amplify --version) + cd $(pwd)/packages/amplify-e2e-tests + fi + + if [ -f $FAILED_TEST_REGEX_FILE ]; then + # read the content of failed tests + failedTests=$(<$FAILED_TEST_REGEX_FILE) + yarn run e2e --maxWorkers=4 $TEST_SUITE -t "$failedTests" + else + yarn run e2e --maxWorkers=4 $TEST_SUITE + fi +} + +function _deploy { + echo "Deploy" + loadCacheFromBuildJob + echo "Authenticate with NPM" + PUBLISH_TOKEN=$(echo "$NPM_PUBLISH_TOKEN" | jq -r '.token') + echo "//registry.npmjs.org/:_authToken=$PUBLISH_TOKEN" > ~/.npmrc + ./.codebuild/scripts/publish.sh +} \ No newline at end of file From 86bc852062b884fd7cac6d33bd757a4914804cde Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Thu, 6 Jul 2023 14:50:47 -0700 Subject: [PATCH 02/21] fix: rename codebuild_specs directory references --- .codebuild/e2e_workflow.yml | 10 +++++----- .codebuild/e2e_workflow_base.yml | 10 +++++----- .codebuild/pr_workflow.yml | 10 +++++----- .codebuild/release_workflow.yml | 12 ++++++------ .codebuild/scripts/scan_artifacts.ts | 2 +- .github/CODEOWNERS | 8 ++++++++ 6 files changed, 30 insertions(+), 22 deletions(-) diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml index a47c3945d..67986ca72 100644 --- a/.codebuild/e2e_workflow.yml +++ b/.codebuild/e2e_workflow.yml @@ -7,29 +7,29 @@ batch: fast-fail: false build-graph: - identifier: build_linux - buildspec: codebuild_specs/build_linux.yml + buildspec: .codebuild/build_linux.yml env: compute-type: BUILD_GENERAL1_LARGE - identifier: test - buildspec: codebuild_specs/test.yml + buildspec: .codebuild/test.yml env: compute-type: BUILD_GENERAL1_LARGE depend-on: - build_linux - identifier: verify_api_extract - buildspec: codebuild_specs/verify_api_extract.yml + buildspec: .codebuild/verify_api_extract.yml env: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - identifier: verify_yarn_lock - buildspec: codebuild_specs/verify_yarn_lock.yml + buildspec: .codebuild/verify_yarn_lock.yml env: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - identifier: publish_to_local_registry - buildspec: codebuild_specs/publish_to_local_registry.yml + buildspec: .codebuild/publish_to_local_registry.yml env: compute-type: BUILD_GENERAL1_MEDIUM depend-on: diff --git a/.codebuild/e2e_workflow_base.yml b/.codebuild/e2e_workflow_base.yml index a47c3945d..67986ca72 100644 --- a/.codebuild/e2e_workflow_base.yml +++ b/.codebuild/e2e_workflow_base.yml @@ -7,29 +7,29 @@ batch: fast-fail: false build-graph: - identifier: build_linux - buildspec: codebuild_specs/build_linux.yml + buildspec: .codebuild/build_linux.yml env: compute-type: BUILD_GENERAL1_LARGE - identifier: test - buildspec: codebuild_specs/test.yml + buildspec: .codebuild/test.yml env: compute-type: BUILD_GENERAL1_LARGE depend-on: - build_linux - identifier: verify_api_extract - buildspec: codebuild_specs/verify_api_extract.yml + buildspec: .codebuild/verify_api_extract.yml env: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - identifier: verify_yarn_lock - buildspec: codebuild_specs/verify_yarn_lock.yml + buildspec: .codebuild/verify_yarn_lock.yml env: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - identifier: publish_to_local_registry - buildspec: codebuild_specs/publish_to_local_registry.yml + buildspec: .codebuild/publish_to_local_registry.yml env: compute-type: BUILD_GENERAL1_MEDIUM depend-on: diff --git a/.codebuild/pr_workflow.yml b/.codebuild/pr_workflow.yml index 66da8f701..abcfb0500 100644 --- a/.codebuild/pr_workflow.yml +++ b/.codebuild/pr_workflow.yml @@ -7,20 +7,20 @@ batch: fast-fail: false build-graph: - identifier: build_linux - buildspec: codebuild_specs/build_linux.yml + buildspec: .codebuild/build_linux.yml - identifier: test - buildspec: codebuild_specs/test.yml + buildspec: .codebuild/test.yml depend-on: - build_linux - identifier: lint - buildspec: codebuild_specs/lint.yml + buildspec: .codebuild/lint.yml depend-on: - build_linux - identifier: verify_api_extract - buildspec: codebuild_specs/verify_api_extract.yml + buildspec: .codebuild/verify_api_extract.yml depend-on: - build_linux - identifier: verify_yarn_lock - buildspec: codebuild_specs/verify_yarn_lock.yml + buildspec: .codebuild/verify_yarn_lock.yml depend-on: - build_linux \ No newline at end of file diff --git a/.codebuild/release_workflow.yml b/.codebuild/release_workflow.yml index 66872b0d8..b1e61b856 100644 --- a/.codebuild/release_workflow.yml +++ b/.codebuild/release_workflow.yml @@ -7,24 +7,24 @@ batch: fast-fail: false build-graph: - identifier: build_linux - buildspec: codebuild_specs/build_linux.yml + buildspec: .codebuild/build_linux.yml - identifier: test - buildspec: codebuild_specs/test.yml + buildspec: .codebuild/test.yml depend-on: - build_linux - identifier: lint - buildspec: codebuild_specs/lint.yml + buildspec: .codebuild/lint.yml depend-on: - build_linux - identifier: verify_api_extract - buildspec: codebuild_specs/verify_api_extract.yml + buildspec: .codebuild/verify_api_extract.yml depend-on: - build_linux - identifier: verify_yarn_lock - buildspec: codebuild_specs/verify_yarn_lock.yml + buildspec: .codebuild/verify_yarn_lock.yml depend-on: - build_linux - identifier: deploy - buildspec: codebuild_specs/deploy.yml + buildspec: .codebuild/deploy.yml depend-on: - test diff --git a/.codebuild/scripts/scan_artifacts.ts b/.codebuild/scripts/scan_artifacts.ts index e3d6f209a..989a978b6 100644 --- a/.codebuild/scripts/scan_artifacts.ts +++ b/.codebuild/scripts/scan_artifacts.ts @@ -40,7 +40,7 @@ const main = () => { } } else { console.log('Paths in ARTIFACT_STORAGE_PATH_ALLOW_LIST_CODEBUILD must start with $CODEBUILD_SRC_DIR/'); - console.log('Update the path to use $CODEBUILD_SRC_DIR/ and make sure to do the same in the codebuild_specs/*.yml files'); + console.log('Update the path to use $CODEBUILD_SRC_DIR/ and make sure to do the same in the .codebuild/*.yml files'); process.exit(1); } } diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3a74f10be..3e125477b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,3 +3,11 @@ # API approval - public surface and dependencies. **/API.md @aws-amplify/amplify-data-admins + +# Changes to CI/CD scripts/buildspecs need admin approval + +/.circleci/ @aws-amplify/amplify-data-admins +/scripts/ @aws-amplify/amplify-data-admins +/shared-scripts.sh @aws-amplify/amplify-data-admins +/.codebuild/ @aws-amplify/amplify-data-admins +/.codebuild/e2e_workflow.yml @aws-amplify/amplify-data From 507665c50bc84a5539de76d6ea97e56621593bd0 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Thu, 6 Jul 2023 15:06:22 -0700 Subject: [PATCH 03/21] fix: do not add yarn lock verification yet --- .codebuild/e2e_workflow.yml | 6 ------ .codebuild/e2e_workflow_base.yml | 6 ------ .codebuild/pr_workflow.yml | 4 ---- .codebuild/release_workflow.yml | 4 ---- .codebuild/verify_yarn_lock.yml | 7 ------- shared-scripts.sh | 1 - 6 files changed, 28 deletions(-) delete mode 100644 .codebuild/verify_yarn_lock.yml diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml index 67986ca72..74d4e57bc 100644 --- a/.codebuild/e2e_workflow.yml +++ b/.codebuild/e2e_workflow.yml @@ -22,12 +22,6 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - - identifier: verify_yarn_lock - buildspec: .codebuild/verify_yarn_lock.yml - env: - compute-type: BUILD_GENERAL1_MEDIUM - depend-on: - - build_linux - identifier: publish_to_local_registry buildspec: .codebuild/publish_to_local_registry.yml env: diff --git a/.codebuild/e2e_workflow_base.yml b/.codebuild/e2e_workflow_base.yml index 67986ca72..74d4e57bc 100644 --- a/.codebuild/e2e_workflow_base.yml +++ b/.codebuild/e2e_workflow_base.yml @@ -22,12 +22,6 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - - identifier: verify_yarn_lock - buildspec: .codebuild/verify_yarn_lock.yml - env: - compute-type: BUILD_GENERAL1_MEDIUM - depend-on: - - build_linux - identifier: publish_to_local_registry buildspec: .codebuild/publish_to_local_registry.yml env: diff --git a/.codebuild/pr_workflow.yml b/.codebuild/pr_workflow.yml index abcfb0500..33b025def 100644 --- a/.codebuild/pr_workflow.yml +++ b/.codebuild/pr_workflow.yml @@ -20,7 +20,3 @@ batch: buildspec: .codebuild/verify_api_extract.yml depend-on: - build_linux - - identifier: verify_yarn_lock - buildspec: .codebuild/verify_yarn_lock.yml - depend-on: - - build_linux \ No newline at end of file diff --git a/.codebuild/release_workflow.yml b/.codebuild/release_workflow.yml index b1e61b856..87bf4b8d0 100644 --- a/.codebuild/release_workflow.yml +++ b/.codebuild/release_workflow.yml @@ -20,10 +20,6 @@ batch: buildspec: .codebuild/verify_api_extract.yml depend-on: - build_linux - - identifier: verify_yarn_lock - buildspec: .codebuild/verify_yarn_lock.yml - depend-on: - - build_linux - identifier: deploy buildspec: .codebuild/deploy.yml depend-on: diff --git a/.codebuild/verify_yarn_lock.yml b/.codebuild/verify_yarn_lock.yml deleted file mode 100644 index e8cbf9736..000000000 --- a/.codebuild/verify_yarn_lock.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: 0.2 -env: - shell: bash -phases: - build: - commands: - - source ./shared-scripts.sh && _verifyYarnLock \ No newline at end of file diff --git a/shared-scripts.sh b/shared-scripts.sh index 4353f1cba..311fd954e 100644 --- a/shared-scripts.sh +++ b/shared-scripts.sh @@ -90,7 +90,6 @@ function _buildLinux { _setShell echo "Linux Build" yarn run production-build - yarn build-tests storeCacheForBuildJob } From a506680246ff49cadc036de2ec563f1c8997a244 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Thu, 6 Jul 2023 18:09:04 -0700 Subject: [PATCH 04/21] chore: remove unused method --- shared-scripts.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/shared-scripts.sh b/shared-scripts.sh index 311fd954e..cff95f361 100644 --- a/shared-scripts.sh +++ b/shared-scripts.sh @@ -105,12 +105,6 @@ function _verifyAPIExtract { yarn verify-api-extract } -function _verifyYarnLock { - echo "Verify Yarn Lock" - loadCacheFromBuildJob - yarn verify-yarn-lock -} - function _lint { echo "Lint" loadCacheFromBuildJob From 8fb433185eb32ef5bf497ec64142dbfbba2ddace Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 14:59:48 -0700 Subject: [PATCH 05/21] build(deps): bump tough-cookie from 4.1.2 to 4.1.3 (#615) Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/salesforce/tough-cookie/releases) - [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md) - [Commits](https://github.com/salesforce/tough-cookie/compare/v4.1.2...v4.1.3) --- updated-dependencies: - dependency-name: tough-cookie dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/yarn.lock b/yarn.lock index 084a4657e..9d8eb70f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6278,10 +6278,10 @@ ansi-styles@^5.0.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -antlr4ts@^0.4.1-alpha.0: - version "0.4.1-alpha.0" - resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.4.1-alpha.0.tgz#ac5717f30f3efa3617b004e8ff4f860b9c7d4d20" - integrity sha512-7lmDJPxygDwDyq9Bn7Kb71nFCgSHLcihwRNllhm51Yf3tim7A8xfbx2qE6oru9vWooE8uHGZxcXAjH7+tO2aUQ== +antlr4ts@^0.5.0-alpha.3: + version "0.5.0-alpha.4" + resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" + integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== anymatch@^3.0.3: version "3.1.3" @@ -10300,12 +10300,12 @@ jake@^10.8.5: filelist "^1.0.4" minimatch "^3.1.2" -java-ast@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/java-ast/-/java-ast-0.1.0.tgz#1b7ea2addbe18f60ccc3f33f1d58f96b7df22fad" - integrity sha512-xa0fksWutSf2cDlhbd6yztYbDB7cChFAk5qZcN7onsOIPxT/xUtIJy3v9wgsUhiIi5+Q4vZg0lFIr7SAkkxADg== +java-ast@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/java-ast/-/java-ast-0.3.0.tgz#85786d61ce906724dffd4fc3fea89dafad0eec77" + integrity sha512-FQheUCKa8ryT2YheVKRl4238N39HT4A0wTLO5OXLAT1A0WVokw27EcXjF+Dk15eEL5RVBidhD6SCbIa5K6qLcA== dependencies: - antlr4ts "^0.4.1-alpha.0" + antlr4ts "^0.5.0-alpha.3" jest-changed-files@^27.5.1: version "27.5.1" @@ -13863,9 +13863,9 @@ toidentifier@1.0.1: integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tough-cookie@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: psl "^1.1.33" punycode "^2.1.1" From f98f810939dd5e23ca4c2e3262aac95f939061d9 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Mon, 10 Jul 2023 21:51:06 -0700 Subject: [PATCH 06/21] feat: add e2e split tests script --- .circleci/config.base.yml | 2 +- .circleci/config.yml | 2 +- .codebuild/cleanup_workflow.yml | 2 +- .codebuild/e2e_workflow.yml | 92 +- ...ifact-storage-path-allow-list-codebuild.ts | 8 +- package.json | 6 +- scripts/cci/api.ts | 117 +++ .../get-test-timing-from-cci-job-metrics.ts | 37 + scripts/cci/job.data.json | 787 ++++++++++++++++++ scripts/cci/test-timings.data.json | 5 + scripts/cci/utils.ts | 70 ++ scripts/split-e2e-tests-codebuild.ts | 207 +++++ shared-scripts.sh | 2 +- 13 files changed, 1326 insertions(+), 11 deletions(-) create mode 100644 scripts/cci/api.ts create mode 100644 scripts/cci/get-test-timing-from-cci-job-metrics.ts create mode 100644 scripts/cci/job.data.json create mode 100644 scripts/cci/test-timings.data.json create mode 100644 scripts/cci/utils.ts create mode 100644 scripts/split-e2e-tests-codebuild.ts diff --git a/.circleci/config.base.yml b/.circleci/config.base.yml index f1da5a4ff..4762bd867 100644 --- a/.circleci/config.base.yml +++ b/.circleci/config.base.yml @@ -303,7 +303,7 @@ jobs: yarn clean-e2e-resources no_output_timeout: 20m - store_artifacts: - path: ~/repo/packages/amplify-e2e-tests/amplify-e2e-reports + path: ~/repo/packages/amplify-codegen-e2e-tests/amplify-e2e-reports working_directory: ~/repo verify-api-extract: diff --git a/.circleci/config.yml b/.circleci/config.yml index f6e9a51df..e3a5af6b2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -306,7 +306,7 @@ jobs: yarn clean-e2e-resources no_output_timeout: 20m - store_artifacts: - path: ~/repo/packages/amplify-e2e-tests/amplify-e2e-reports + path: ~/repo/packages/amplify-codegen-e2e-tests/amplify-e2e-reports verify-api-extract: docker: *ref_4 working_directory: ~/repo diff --git a/.codebuild/cleanup_workflow.yml b/.codebuild/cleanup_workflow.yml index 4d7fdfe7b..e5ca317dc 100644 --- a/.codebuild/cleanup_workflow.yml +++ b/.codebuild/cleanup_workflow.yml @@ -9,4 +9,4 @@ phases: build: commands: - yarn production-build - - cd packages/amplify-e2e-tests && yarn clean-cb-e2e-resources \ No newline at end of file + - cd packages/amplify-codegen-e2e-tests && yarn clean-cb-e2e-resources \ No newline at end of file diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml index 74d4e57bc..6ecafc38d 100644 --- a/.codebuild/e2e_workflow.yml +++ b/.codebuild/e2e_workflow.yml @@ -1,8 +1,8 @@ +# auto generated file. DO NOT EDIT manually version: 0.2 env: shell: bash compute-type: BUILD_GENERAL1_MEDIUM - batch: fast-fail: false build-graph: @@ -28,3 +28,93 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux + - identifier: add_codegen_android_add_codegen_ios_add_codegen_js_build_app_android + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: >- + src/__tests__/add-codegen-android.test.ts|src/__tests__/add-codegen-ios.test.ts|src/__tests__/add-codegen-js.test.ts|src/__tests__/build-app-android.test.ts + CLI_REGION: us-east-1 + depend-on: + - publish_to_local_registry + - identifier: >- + build_app_ts_configure_codegen_android_configure_codegen_ios_configure_codegen_js + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: >- + src/__tests__/build-app-ts.test.ts|src/__tests__/configure-codegen-android.test.ts|src/__tests__/configure-codegen-ios.test.ts|src/__tests__/configure-codegen-js.test.ts + CLI_REGION: us-east-2 + depend-on: + - publish_to_local_registry + - identifier: >- + datastore_modelgen_android_datastore_modelgen_flutter_datastore_modelgen_ios_datastore_modelgen_js + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: >- + src/__tests__/datastore-modelgen-android.test.ts|src/__tests__/datastore-modelgen-flutter.test.ts|src/__tests__/datastore-modelgen-ios.test.ts|src/__tests__/datastore-modelgen-js.test.ts + CLI_REGION: eu-west-2 + depend-on: + - publish_to_local_registry + - identifier: env_codegen_feature_flags_graphql_codegen_android_graphql_codegen_ios + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: >- + src/__tests__/env-codegen.test.ts|src/__tests__/feature-flags.test.ts|src/__tests__/graphql-codegen-android.test.ts|src/__tests__/graphql-codegen-ios.test.ts + CLI_REGION: eu-central-1 + depend-on: + - publish_to_local_registry + - identifier: >- + graphql_codegen_js_graphql_documents_generator_model_introspection_codegen_pull_codegen + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: >- + src/__tests__/graphql-codegen-js.test.ts|src/__tests__/graphql-documents-generator.test.ts|src/__tests__/model-introspection-codegen.test.ts|src/__tests__/pull-codegen.test.ts + CLI_REGION: ap-northeast-1 + depend-on: + - publish_to_local_registry + - identifier: >- + push_codegen_android_push_codegen_ios_push_codegen_js_remove_codegen_android + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: >- + src/__tests__/push-codegen-android.test.ts|src/__tests__/push-codegen-ios.test.ts|src/__tests__/push-codegen-js.test.ts|src/__tests__/remove-codegen-android.test.ts + CLI_REGION: ap-southeast-1 + depend-on: + - publish_to_local_registry + - identifier: remove_codegen_ios_remove_codegen_js + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: >- + src/__tests__/remove-codegen-ios.test.ts|src/__tests__/remove-codegen-js.test.ts + CLI_REGION: ap-southeast-2 + depend-on: + - publish_to_local_registry + - identifier: build_app_swift + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_SMALL + variables: + TEST_SUITE: src/__tests__/build-app-swift.test.ts + CLI_REGION: us-west-2 + USE_PARENT_ACCOUNT: 1 + depend-on: + - publish_to_local_registry + - identifier: cleanup_e2e_resources + buildspec: .codebuild/cleanup_e2e_resources.yml + env: + compute-type: BUILD_GENERAL1_SMALL + depend-on: + - add_codegen_android_add_codegen_ios_add_codegen_js_build_app_android diff --git a/.codebuild/scripts/artifact-storage-path-allow-list-codebuild.ts b/.codebuild/scripts/artifact-storage-path-allow-list-codebuild.ts index f89fa334a..608249943 100644 --- a/.codebuild/scripts/artifact-storage-path-allow-list-codebuild.ts +++ b/.codebuild/scripts/artifact-storage-path-allow-list-codebuild.ts @@ -9,10 +9,10 @@ * artifacts: files: - - $CODEBUILD_SRC_DIR/packages/amplify-e2e-tests/amplify-e2e-reports/* + - $CODEBUILD_SRC_DIR/packages/amplify-codegen-e2e-tests/amplify-e2e-reports/* * * From the above job, 'path' includes the following: - * $CODEBUILD_SRC_DIR/packages/amplify-e2e-tests/amplify-e2e-reports + * $CODEBUILD_SRC_DIR/packages/amplify-codegen-e2e-tests/amplify-e2e-reports * * Those paths must be included in this list. * @@ -27,6 +27,6 @@ * will automatically normalize these paths for Windows if it detects it. */ export const ARTIFACT_STORAGE_PATH_ALLOW_LIST_CODEBUILD = [ - '$CODEBUILD_SRC_DIR/packages/amplify-e2e-tests/', - '$CODEBUILD_SRC_DIR/packages/amplify-e2e-tests/amplify-e2e-reports' + '$CODEBUILD_SRC_DIR/packages/amplify-codegen-e2e-tests/', + '$CODEBUILD_SRC_DIR/packages/amplify-codegen-e2e-tests/amplify-e2e-reports' ]; \ No newline at end of file diff --git a/package.json b/package.json index 04939650b..52c6e1846 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,9 @@ "view-test-artifact": "./scripts/view-test-artifacts.sh", "cleanup-stale-resources": "source ./scripts/cloud-utils.sh && cleanupStaleResources", "cloud-e2e-cb": "source scripts/cloud-utils.sh && cloudE2E", - "cloud-e2e-cb-beta": "source scripts/cloud-utils.sh && cloudE2EBeta" + "cloud-e2e-cb-beta": "source scripts/cloud-utils.sh && cloudE2EBeta", + "split-codebuild-e2e-tests": "yarn ts-node ./scripts/split-e2e-tests-codebuild.ts && git add .codebuild/e2e_workflow.yml", + "update-test-timing-data": "ts-node ./scripts/cci/get-test-timing-from-cci-job-metrics.ts" }, "bugs": { "url": "https://github.com/aws-amplify/amplify-codegen/issues" @@ -55,7 +57,7 @@ "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", "pre-push": "npm run lint && npm run test-changed", - "pre-commit": "yarn split-e2e-tests && pretty-quick --staged" + "pre-commit": "yarn split-codebuild-e2e-tests" } }, "author": "Amazon Web Services", diff --git a/scripts/cci/api.ts b/scripts/cci/api.ts new file mode 100644 index 000000000..68c6ec56a --- /dev/null +++ b/scripts/cci/api.ts @@ -0,0 +1,117 @@ +import axios from 'axios'; + +type ReportingWindow = 'last-7-days' | 'last-90-days' | 'last-24-hours' | 'last-30-days' | 'last-60-days'; +export type CircleCIClientDefaults = { + defaultBranch: string; + defaultWorkflow: string; + vcs: string; + projectSlug: string; + projectName: string; +}; +export class CircleCIAPIClient { + private headers; + private options: CircleCIClientDefaults; + private slug: string; + constructor(token: string, options: CircleCIClientDefaults) { + this.headers = { + 'Circle-Token': token, + }; + this.options = options; + this.slug = `${options.vcs}/${options.projectSlug}/${options.projectName}`; + } + + /** + * Returns a sequence of jobs for a workflow. + * + * https://circleci.com/docs/api/v2/index.html#operation/listWorkflowJobs + * @returns + */ + getWorkflowJobs = async (workflowId: string = this.options.defaultWorkflow) => { + const result = await axios.get(`https://circleci.com/api/v2/workflow/${workflowId}/job`, { + headers: this.headers, + }); + return result.data; + }; + /** + * Returns a job's details. + * + * https://circleci.com/docs/api/v2/index.html#operation/getJobDetails + * @param jobId + * @returns + */ + getJobDetails = async (jobId: string) => { + const result = await axios.get(`https://circleci.com/api/v2/project/${this.slug}/job/${jobId}`, { + headers: this.headers, + }); + return result.data; + }; + /** + * Returns a single job's artifacts. + * + * https://circleci.com/docs/api/v2/index.html#operation/getJobArtifacts + * @param jobId + * @returns + */ + getJobArtifacts = async (jobId: string) => { + const result = await axios.get(`https://circleci.com/api/v2/project/${this.slug}/${jobId}/artifacts`, { + headers: this.headers, + }); + return result.data; + }; + /** + * Get test metadata for a single job + * + * https://circleci.com/docs/api/v2/index.html#operation/getTests + * @param jobId + * @returns + */ + getJobTests = async (jobId: string) => { + const result = await axios.get(`https://circleci.com/api/v2/project/${this.slug}/${jobId}/tests`, { + headers: this.headers, + }); + return result.data; + }; + /** + * Get summary metrics for a project workflow's jobs. + * + * https://circleci.com/docs/api/v2/index.html#operation/getProjectWorkflowJobMetrics + * + * @param workflowName + * @param branch + * @param reportingWindow + * @returns + */ + getAllJobMetrics = async ( + workflowName: string = this.options.defaultWorkflow, + branch: string = this.options.defaultBranch, + reportingWindow: ReportingWindow = 'last-30-days', + ) => { + const result = await axios.get(`https://circleci.com/api/v2/insights/${this.slug}/workflows/${workflowName}/jobs`, { + headers: this.headers, + params: { + branch: branch, + 'reporting-window': reportingWindow, + }, + }); + return result.data; + }; + + /** + * Get test metrics for a project's workflows. + * + * https://circleci.com/docs/api/v2/index.html#operation/getProjectWorkflowTestMetrics + * @param workflowName + * @param branch + * @param reportingWindow + * @returns + */ + getAllTestMetrics = async (workflowName: string = this.options.defaultWorkflow, branch: string = this.options.defaultBranch) => { + const result = await axios.get(`https://circleci.com/api/v2/insights/${this.slug}/workflows/${workflowName}/test-metrics`, { + headers: this.headers, + params: { + branch: branch, + }, + }); + return result.data; + }; +} \ No newline at end of file diff --git a/scripts/cci/get-test-timing-from-cci-job-metrics.ts b/scripts/cci/get-test-timing-from-cci-job-metrics.ts new file mode 100644 index 000000000..5ee839416 --- /dev/null +++ b/scripts/cci/get-test-timing-from-cci-job-metrics.ts @@ -0,0 +1,37 @@ +import { join } from 'path'; +import { REPO_ROOT, getCCIClient, getTestFiles, getTestNameFromPath, getTimingsFromJobsData, saveJobMetrics, saveTestTimings } from './utils'; + +async function main(): Promise { + const client = getCCIClient(); + console.log('Fetching job metrics...'); + const data = await client.getAllJobMetrics(); + saveJobMetrics(data); + + const testSuites = getTestFiles(join(REPO_ROOT, 'packages', 'amplify-codegen-e2e-tests')); + + const jobTimings = getTimingsFromJobsData(); + const testRuntimes = testSuites.map(t => { + const oldName = getTestNameFromPath(t); + if (jobTimings.has(oldName)) { + return { + test: t, + medianRuntime: jobTimings.get(oldName) as number, + }; + } else { + console.log('Could not find timing for:', t); + return { + test: t, + medianRuntime: 10, // default for unknown + }; + } + }); + testRuntimes.sort((a, b) => { + return a.medianRuntime - b.medianRuntime; + }); + saveTestTimings({ + lastUpdated: new Date().toISOString(), + totalTestFiles: testRuntimes.length, + timingData: testRuntimes, + }); +} +main(); \ No newline at end of file diff --git a/scripts/cci/job.data.json b/scripts/cci/job.data.json new file mode 100644 index 000000000..0b3864168 --- /dev/null +++ b/scripts/cci/job.data.json @@ -0,0 +1,787 @@ +{ + "next_page_token": null, + "items": [ + { + "name": "add-codegen-android-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 390, + "mean": 418, + "median": 426, + "p95": 432, + "max": 434, + "standard_deviation": 17, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 831, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:33.479Z", + "window_end": "2023-07-10T22:11:18.542Z" + }, + { + "name": "add-codegen-ios-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 350, + "mean": 380, + "median": 383, + "p95": 411, + "max": 417, + "standard_deviation": 25, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 757, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.473Z", + "window_end": "2023-07-10T22:10:38.898Z" + }, + { + "name": "add-codegen-js-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 522, + "mean": 532, + "median": 530, + "p95": 547, + "max": 551, + "standard_deviation": 10, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 1060, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.445Z", + "window_end": "2023-07-10T22:13:06.147Z" + }, + { + "name": "build", + "metrics": { + "total_runs": 8, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 0, + "mean": 111, + "median": 127, + "p95": 193, + "max": 195, + "standard_deviation": 75, + "total_duration": 0 + }, + "success_rate": 0.75, + "total_credits_used": 291, + "throughput": 0.2666666667 + }, + "window_start": "2023-06-19T17:28:54.389Z", + "window_end": "2023-07-10T22:03:07.678Z" + }, + { + "name": "build-app-android-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 618, + "mean": 741, + "median": 717, + "p95": 893, + "max": 917, + "standard_deviation": 111, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 1481, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:34.079Z", + "window_end": "2023-07-10T22:19:26.837Z" + }, + { + "name": "build-app-swift-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 1177, + "mean": 1221, + "median": 1210, + "p95": 1285, + "max": 1304, + "standard_deviation": 44, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 12130, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:33.769Z", + "window_end": "2023-07-10T22:24:41.323Z" + }, + { + "name": "build-app-ts-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 917, + "mean": 986, + "median": 975, + "p95": 1057, + "max": 1066, + "standard_deviation": 54, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 1967, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.161Z", + "window_end": "2023-07-10T22:21:20.385Z" + }, + { + "name": "configure-codegen-android-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 337, + "mean": 378, + "median": 380, + "p95": 409, + "max": 410, + "standard_deviation": 29, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 752, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:31.581Z", + "window_end": "2023-07-10T22:10:41.952Z" + }, + { + "name": "configure-codegen-ios-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 415, + "mean": 434, + "median": 433, + "p95": 453, + "max": 458, + "standard_deviation": 14, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 861, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:33.151Z", + "window_end": "2023-07-10T22:11:30.111Z" + }, + { + "name": "configure-codegen-js-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 352, + "mean": 403, + "median": 396, + "p95": 462, + "max": 471, + "standard_deviation": 45, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 804, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:34.375Z", + "window_end": "2023-07-10T22:11:27.834Z" + }, + { + "name": "datastore-modelgen-android-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 424, + "mean": 445, + "median": 449, + "p95": 462, + "max": 466, + "standard_deviation": 14, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 888, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.073Z", + "window_end": "2023-07-10T22:11:40.442Z" + }, + { + "name": "datastore-modelgen-flutter-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 542, + "mean": 564, + "median": 551, + "p95": 613, + "max": 632, + "standard_deviation": 33, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 1124, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:31.390Z", + "window_end": "2023-07-10T22:14:42.234Z" + }, + { + "name": "datastore-modelgen-ios-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 502, + "mean": 532, + "median": 534, + "p95": 551, + "max": 553, + "standard_deviation": 18, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 1059, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:33.381Z", + "window_end": "2023-07-10T22:13:15.115Z" + }, + { + "name": "datastore-modelgen-js-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 435, + "mean": 454, + "median": 454, + "p95": 475, + "max": 481, + "standard_deviation": 15, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 902, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:34.377Z", + "window_end": "2023-07-10T22:12:13.663Z" + }, + { + "name": "deploy", + "metrics": { + "total_runs": 3, + "failed_runs": 0, + "successful_runs": 3, + "median_credits_used": 0, + "duration_metrics": { + "min": 42, + "mean": 44, + "median": 45, + "p95": 45, + "max": 46, + "standard_deviation": 2, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 42, + "throughput": 0.1 + }, + "window_start": "2023-06-19T17:53:02.522Z", + "window_end": "2023-06-29T17:10:35.513Z" + }, + { + "name": "done_with_node_e2e_tests", + "metrics": { + "total_runs": 3, + "failed_runs": 0, + "successful_runs": 3, + "median_credits_used": 0, + "duration_metrics": { + "min": 25, + "mean": 26, + "median": 26, + "p95": 28, + "max": 29, + "standard_deviation": 2, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 24, + "throughput": 0.1 + }, + "window_start": "2023-06-19T17:52:37.213Z", + "window_end": "2023-06-29T17:09:49.727Z" + }, + { + "name": "env-codegen-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 1, + "successful_runs": 5, + "median_credits_used": 0, + "duration_metrics": { + "min": 479, + "mean": 584, + "median": 597, + "p95": 624, + "max": 629, + "standard_deviation": 53, + "total_duration": 0 + }, + "success_rate": 0.8333333333, + "total_credits_used": 1165, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.807Z", + "window_end": "2023-07-10T22:12:10.121Z" + }, + { + "name": "feature-flags-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 403, + "mean": 432, + "median": 435, + "p95": 445, + "max": 446, + "standard_deviation": 15, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 861, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:33.104Z", + "window_end": "2023-07-10T22:11:24.854Z" + }, + { + "name": "graphql-codegen-android-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 362, + "mean": 388, + "median": 397, + "p95": 404, + "max": 405, + "standard_deviation": 20, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 772, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:33.116Z", + "window_end": "2023-07-10T22:10:44.059Z" + }, + { + "name": "graphql-codegen-ios-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 414, + "mean": 428, + "median": 430, + "p95": 439, + "max": 442, + "standard_deviation": 10, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 848, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:31.872Z", + "window_end": "2023-07-10T22:11:23.361Z" + }, + { + "name": "graphql-codegen-js-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 362, + "mean": 384, + "median": 382, + "p95": 412, + "max": 419, + "standard_deviation": 19, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 761, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:31.069Z", + "window_end": "2023-07-10T22:11:11.346Z" + }, + { + "name": "graphql-documents-generator-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 2, + "successful_runs": 4, + "median_credits_used": 0, + "duration_metrics": { + "min": 626, + "mean": 745, + "median": 787, + "p95": 805, + "max": 807, + "standard_deviation": 79, + "total_duration": 0 + }, + "success_rate": 0.6666666667, + "total_credits_used": 1486, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:33.428Z", + "window_end": "2023-07-10T22:14:38.281Z" + }, + { + "name": "model-introspection-codegen-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 3, + "successful_runs": 3, + "median_credits_used": 0, + "duration_metrics": { + "min": 540, + "mean": 585, + "median": 593, + "p95": 608, + "max": 612, + "standard_deviation": 25, + "total_duration": 0 + }, + "success_rate": 0.5, + "total_credits_used": 1165, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.848Z", + "window_end": "2023-07-10T22:13:48.972Z" + }, + { + "name": "publish_to_local_registry", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 61, + "mean": 79, + "median": 78, + "p95": 95, + "max": 99, + "standard_deviation": 12, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 153, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:30:54.032Z", + "window_end": "2023-07-10T22:04:09.237Z" + }, + { + "name": "pull-codegen-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 1, + "successful_runs": 5, + "median_credits_used": 0, + "duration_metrics": { + "min": 631, + "mean": 713, + "median": 718, + "p95": 754, + "max": 762, + "standard_deviation": 43, + "total_duration": 0 + }, + "success_rate": 0.8333333333, + "total_credits_used": 1422, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.477Z", + "window_end": "2023-07-10T22:14:41.457Z" + }, + { + "name": "push-codegen-android-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 1, + "successful_runs": 5, + "median_credits_used": 0, + "duration_metrics": { + "min": 524, + "mean": 735, + "median": 779, + "p95": 788, + "max": 790, + "standard_deviation": 104, + "total_duration": 0 + }, + "success_rate": 0.8333333333, + "total_credits_used": 1468, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.825Z", + "window_end": "2023-07-10T22:12:54.137Z" + }, + { + "name": "push-codegen-ios-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 1, + "successful_runs": 5, + "median_credits_used": 0, + "duration_metrics": { + "min": 471, + "mean": 649, + "median": 682, + "p95": 705, + "max": 710, + "standard_deviation": 88, + "total_duration": 0 + }, + "success_rate": 0.8333333333, + "total_credits_used": 1292, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:34.036Z", + "window_end": "2023-07-10T22:12:00.368Z" + }, + { + "name": "push-codegen-js-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 1, + "successful_runs": 5, + "median_credits_used": 0, + "duration_metrics": { + "min": 541, + "mean": 754, + "median": 785, + "p95": 826, + "max": 829, + "standard_deviation": 106, + "total_duration": 0 + }, + "success_rate": 0.8333333333, + "total_credits_used": 1502, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:31.734Z", + "window_end": "2023-07-10T22:13:10.326Z" + }, + { + "name": "remove-codegen-android-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 357, + "mean": 383, + "median": 383, + "p95": 408, + "max": 409, + "standard_deviation": 21, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 761, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:32.235Z", + "window_end": "2023-07-10T22:10:59.009Z" + }, + { + "name": "remove-codegen-ios-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 362, + "mean": 402, + "median": 394, + "p95": 442, + "max": 447, + "standard_deviation": 31, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 799, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:33.734Z", + "window_end": "2023-07-10T22:11:38.351Z" + }, + { + "name": "remove-codegen-js-e2e-test", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 490, + "mean": 517, + "median": 521, + "p95": 529, + "max": 530, + "standard_deviation": 15, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 1029, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:32:31.843Z", + "window_end": "2023-07-10T22:13:01.480Z" + }, + { + "name": "test-l", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 137, + "mean": 144, + "median": 139, + "p95": 160, + "max": 164, + "standard_deviation": 10, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 285, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:30:54.665Z", + "window_end": "2023-07-10T22:05:25.354Z" + }, + { + "name": "test-w", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 487, + "mean": 622, + "median": 616, + "p95": 778, + "max": 807, + "standard_deviation": 123, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 2451, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:30:54.893Z", + "window_end": "2023-07-10T22:14:40.901Z" + }, + { + "name": "verify-api-extract", + "metrics": { + "total_runs": 6, + "failed_runs": 0, + "successful_runs": 6, + "median_credits_used": 0, + "duration_metrics": { + "min": 46, + "mean": 67, + "median": 71, + "p95": 74, + "max": 75, + "standard_deviation": 10, + "total_duration": 0 + }, + "success_rate": 1, + "total_credits_used": 130, + "throughput": 0.2 + }, + "window_start": "2023-06-19T17:30:54.371Z", + "window_end": "2023-07-10T22:04:22.075Z" + } + ] +} \ No newline at end of file diff --git a/scripts/cci/test-timings.data.json b/scripts/cci/test-timings.data.json new file mode 100644 index 000000000..830c96e28 --- /dev/null +++ b/scripts/cci/test-timings.data.json @@ -0,0 +1,5 @@ +{ + "lastUpdated": "2023-07-11T04:44:38.813Z", + "totalTestFiles": 0, + "timingData": [] +} \ No newline at end of file diff --git a/scripts/cci/utils.ts b/scripts/cci/utils.ts new file mode 100644 index 000000000..098854f16 --- /dev/null +++ b/scripts/cci/utils.ts @@ -0,0 +1,70 @@ +import { CircleCIAPIClient, CircleCIClientDefaults } from './api'; +import * as fs from 'fs-extra'; +import * as glob from 'glob'; +import { join } from 'path'; + +export const REPO_ROOT = join(__dirname, '..', '..'); +const JOB_METRICS_PATH = join(REPO_ROOT, 'scripts', 'cci', 'job.data.json'); +const TEST_TIMINGS_PATH = join(REPO_ROOT, 'scripts', 'cci', 'test-timings.data.json'); + +export const ClientDefaults: CircleCIClientDefaults = { + defaultBranch: 'main', + defaultWorkflow: 'build_test_deploy', + vcs: 'github', + projectSlug: 'aws-amplify', + projectName: 'amplify-codegen', +}; + +export const getCCIClient = () => { + if (!process.env.CIRCLECI_TOKEN) { + throw new Error('CIRCLECI_TOKEN is not set. Export it to your terminal, then try again.'); + } + return new CircleCIAPIClient(process.env.CIRCLECI_TOKEN, ClientDefaults); +} + +export function saveJobMetrics(data: any): any { + console.log(`saving job metrics to ${JOB_METRICS_PATH}`); + fs.writeFileSync(JOB_METRICS_PATH, JSON.stringify(data, null, 2)); +} + +export function getTestFiles(dir: string, pattern = 'src/**/*.test.ts'): string[] { + return glob.sync(pattern, { cwd: dir }); +} + +export function getTimingsFromJobsData() { + const jobData = JSON.parse(fs.readFileSync(JOB_METRICS_PATH, 'utf-8')); + const jobTimings: Map = new Map(); + for (let job of jobData.items) { + const testName = getTestNameFromJobName(job.name); + const duration = Math.floor(job.metrics.duration_metrics.median / 60); + if (jobTimings.has(testName)) { + jobTimings.set(testName, Math.max(jobTimings.get(testName)!, duration)); + } else { + jobTimings.set(testName, duration); + } + } + return jobTimings; +} + +function getTestNameFromJobName(jobName: string) { + // first, remove any - from the name + const endIndex = jobName.lastIndexOf('-l'); + const name = jobName.substring(0, endIndex); + return name; +} + +export const getTestNameFromPath = (testSuitePath: string): string => { + const startIndex = testSuitePath.lastIndexOf('/') + 1; + const endIndex = testSuitePath.lastIndexOf('.test'); + return testSuitePath + .substring(startIndex, endIndex) + .split('.e2e') + .join('') + .split('.') + .join('-'); +}; + +export function saveTestTimings(data: any): any { + console.log(`saving timing data to ${TEST_TIMINGS_PATH}`); + fs.writeFileSync(TEST_TIMINGS_PATH, JSON.stringify(data, null, 2)); +} \ No newline at end of file diff --git a/scripts/split-e2e-tests-codebuild.ts b/scripts/split-e2e-tests-codebuild.ts new file mode 100644 index 000000000..16431826d --- /dev/null +++ b/scripts/split-e2e-tests-codebuild.ts @@ -0,0 +1,207 @@ +import * as glob from 'glob'; +import * as fs from 'fs-extra'; +import { join } from 'path'; +import * as yaml from 'js-yaml'; + +// Ensure to update packages/amplify-codegen-e2e-tests/src/cleanup-e2e-resources.ts is also updated this gets updated +const AWS_REGIONS_TO_RUN_TESTS = [ + 'us-east-1', + 'us-east-2', + 'us-west-2', + 'eu-west-2', + 'eu-central-1', + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-2', +]; + +// some tests require additional time, the parent account can handle longer tests (up to 90 minutes) +const USE_PARENT_ACCOUNT = [ + 'src/__tests__/build-app-swift.test.ts', +]; +const REPO_ROOT = join(__dirname, '..'); +const TEST_TIMINGS_PATH = join(REPO_ROOT, 'scripts', 'cci', 'test-timings.data.json'); +const CODEBUILD_CONFIG_BASE_PATH = join(REPO_ROOT, '.codebuild', 'e2e_workflow_base.yml'); +const CODEBUILD_GENERATE_CONFIG_PATH = join(REPO_ROOT, '.codebuild', 'e2e_workflow.yml'); +const RUN_SOLO = [ + 'src/__tests__/build-app-swift.test.ts', +]; +const runJobOnAndroid = new Set(['build-app-android-e2e-test']); +const runJobOnMacOS = new Set(['build-app-swift-e2e-test']); + +export function loadConfigBase() { + return yaml.load(fs.readFileSync(CODEBUILD_CONFIG_BASE_PATH, 'utf8')); +} +export function saveConfig(config: any): void { + const output = ['# auto generated file. DO NOT EDIT manually', yaml.dump(config, { noRefs: true })]; + fs.writeFileSync(CODEBUILD_GENERATE_CONFIG_PATH, output.join('\n')); +} +export function loadTestTimings(): { timingData: { test: string; medianRuntime: number }[] } { + return JSON.parse(fs.readFileSync(TEST_TIMINGS_PATH, 'utf-8')); +} +function getTestFiles(dir: string, pattern = 'src/**/*.test.ts'): string[] { + return glob.sync(pattern, { cwd: dir }); +} +type COMPUTE_TYPE = 'BUILD_GENERAL1_MEDIUM' | 'BUILD_GENERAL1_LARGE'; +type BatchBuildJob = { + identifier: string; + env: { + 'compute-type': COMPUTE_TYPE; + variables: [string: string]; + }; +}; +type ConfigBase = { + batch: { + 'build-graph': BatchBuildJob[]; + 'fast-fail': boolean; + }; + env: { + 'compute-type': COMPUTE_TYPE; + shell: 'bash'; + variables: [string: string]; + }; +}; +const MAX_WORKERS = 4; +type OS_TYPE = 'w' | 'l'; +type CandidateJob = { + region: string; + os: OS_TYPE; + tests: string[]; + useParentAccount: boolean; + runSolo: boolean; +}; +const createJob = (os: OS_TYPE, jobIdx: number, runSolo: boolean = false): CandidateJob => { + const region = AWS_REGIONS_TO_RUN_TESTS[jobIdx % AWS_REGIONS_TO_RUN_TESTS.length]; + return { + region, + os, + tests: [], + useParentAccount: false, + runSolo, + }; +}; +const getTestNameFromPath = (testSuitePath: string): string => { + const startIndex = testSuitePath.lastIndexOf('/') + 1; + const endIndex = testSuitePath.lastIndexOf('.test'); + return testSuitePath + .substring(startIndex, endIndex) + .split('.e2e') + .join('') + .split('.') + .join('-'); +}; +const splitTests = ( + baseJobLinux: any, + testDirectory: string, + pickTests?: ((testSuites: string[]) => string[]), +) => { + const output: any[] = []; + let testSuites = getTestFiles(testDirectory); + if (pickTests && typeof pickTests === 'function') { + testSuites = pickTests(testSuites); + } + if (testSuites.length === 0) { + return output; + } + const testFileRunTimes = loadTestTimings().timingData; + + testSuites.sort((a, b) => { + const runtimeA = testFileRunTimes.find((t:any) => t.test === a)?.medianRuntime ?? 30; + const runtimeB = testFileRunTimes.find((t:any) => t.test === b)?.medianRuntime ?? 30; + return runtimeA - runtimeB; + }); + const generateJobsForOS = (os: OS_TYPE) => { + const soloJobs: CandidateJob[] = []; + let jobIdx = 0; + const osJobs = [createJob(os, jobIdx)]; + jobIdx++; + for (let test of testSuites) { + const currentJob = osJobs[osJobs.length - 1]; + + const USE_PARENT = USE_PARENT_ACCOUNT.some((usesParent) => test.startsWith(usesParent)); + + if (RUN_SOLO.find((solo) => test === solo)) { + const newSoloJob = createJob(os, jobIdx, true); + jobIdx++; + newSoloJob.tests.push(test); + + if (USE_PARENT) { + newSoloJob.useParentAccount = true; + } + soloJobs.push(newSoloJob); + continue; + } + + // add the test + currentJob.tests.push(test); + + if (USE_PARENT) { + currentJob.useParentAccount = true; + } + + // create a new job once the current job is full; + if (currentJob.tests.length >= MAX_WORKERS) { + osJobs.push(createJob(os, jobIdx)); + jobIdx++; + } + } + return [...osJobs, ...soloJobs]; + }; + const linuxJobs = generateJobsForOS('l'); + const getIdentifier = (os: string, names: string) => { + const jobName = `${names.replace(/-/g, '_')}`.substring(0, 127); + return jobName; + }; + const result: any[] = []; + linuxJobs.forEach((j) => { + if (j.tests.length !== 0) { + const names = j.tests.map((tn) => getTestNameFromPath(tn)).join('_'); + const tmp = { + ...JSON.parse(JSON.stringify(baseJobLinux)), // deep clone base job + identifier: getIdentifier(j.os, names), + }; + tmp.env.variables = {}; + tmp.env.variables.TEST_SUITE = j.tests.join('|'); + tmp.env.variables.CLI_REGION = j.region; + if (j.useParentAccount) { + tmp.env.variables.USE_PARENT_ACCOUNT = 1; + } + if (j.runSolo) { + tmp.env['compute-type'] = 'BUILD_GENERAL1_SMALL'; + } + result.push(tmp); + } + }); + return result; +}; +function main(): void { + const configBase: any = loadConfigBase(); + const baseBuildGraph = configBase.batch['build-graph']; + const splitE2ETests = splitTests( + { + identifier: 'run_e2e_tests', + buildspec: '.codebuild/run_e2e_tests.yml', + env: { + 'compute-type': 'BUILD_GENERAL1_MEDIUM', + }, + 'depend-on': ['publish_to_local_registry'], + }, + join(REPO_ROOT, 'packages', 'amplify-codegen-e2e-tests'), + ); + + let allBuilds = [...splitE2ETests]; + const cleanupResources = { + identifier: 'cleanup_e2e_resources', + buildspec: '.codebuild/cleanup_e2e_resources.yml', + env: { + 'compute-type': 'BUILD_GENERAL1_SMALL' + }, + 'depend-on': [allBuilds[0].identifier] + } + console.log(`Total number of splitted jobs: ${allBuilds.length}`) + let currentBatch = [...baseBuildGraph, ...allBuilds, cleanupResources]; + configBase.batch['build-graph'] = currentBatch; + saveConfig(configBase); +} + +main(); diff --git a/shared-scripts.sh b/shared-scripts.sh index cff95f361..ea0dbdc80 100644 --- a/shared-scripts.sh +++ b/shared-scripts.sh @@ -311,7 +311,7 @@ function runE2eTest { if [ -z "$FIRST_RUN" ] || [ "$FIRST_RUN" == "true" ]; then echo "using Amplify CLI version: "$(amplify --version) - cd $(pwd)/packages/amplify-e2e-tests + cd $(pwd)/packages/amplify-codegen-e2e-tests fi if [ -f $FAILED_TEST_REGEX_FILE ]; then From f0ee81b0d3747fb6498bf73a6d996a6e3c47b506 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Mon, 10 Jul 2023 22:44:33 -0700 Subject: [PATCH 07/21] fix: handle android and swift build tests separately --- .codebuild/e2e_workflow.yml | 67 +++++++----- .codebuild/e2e_workflow_base.yml | 19 ++++ .codebuild/scripts/local_publish_helpers.sh | 4 +- scripts/cci/test-timings.data.json | 115 +++++++++++++++++++- scripts/cci/utils.ts | 14 +-- scripts/split-e2e-tests-codebuild.ts | 11 +- 6 files changed, 181 insertions(+), 49 deletions(-) diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml index 6ecafc38d..0dd2c121a 100644 --- a/.codebuild/e2e_workflow.yml +++ b/.codebuild/e2e_workflow.yml @@ -28,88 +28,98 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - - identifier: add_codegen_android_add_codegen_ios_add_codegen_js_build_app_android + - identifier: build_app_android buildspec: .codebuild/run_e2e_tests.yml env: compute-type: BUILD_GENERAL1_MEDIUM variables: - TEST_SUITE: >- - src/__tests__/add-codegen-android.test.ts|src/__tests__/add-codegen-ios.test.ts|src/__tests__/add-codegen-js.test.ts|src/__tests__/build-app-android.test.ts - CLI_REGION: us-east-1 + TEST_SUITE: src/__tests__/build-app-android.test.ts + CLI_REGION: us-east-2 + SKIP_SET_NPM_PREFIX: true + depend-on: + - publish_to_local_registry + - identifier: build_app_swift + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: src/__tests__/build-app-swift.test.ts + CLI_REGION: us-east-2 depend-on: - publish_to_local_registry - identifier: >- - build_app_ts_configure_codegen_android_configure_codegen_ios_configure_codegen_js + add_codegen_ios_configure_codegen_android_configure_codegen_js_graphql_codegen_android buildspec: .codebuild/run_e2e_tests.yml env: compute-type: BUILD_GENERAL1_MEDIUM variables: TEST_SUITE: >- - src/__tests__/build-app-ts.test.ts|src/__tests__/configure-codegen-android.test.ts|src/__tests__/configure-codegen-ios.test.ts|src/__tests__/configure-codegen-js.test.ts - CLI_REGION: us-east-2 + src/__tests__/add-codegen-ios.test.ts|src/__tests__/configure-codegen-android.test.ts|src/__tests__/configure-codegen-js.test.ts|src/__tests__/graphql-codegen-android.test.ts + CLI_REGION: us-east-1 depend-on: - publish_to_local_registry - identifier: >- - datastore_modelgen_android_datastore_modelgen_flutter_datastore_modelgen_ios_datastore_modelgen_js + graphql_codegen_js_remove_codegen_android_remove_codegen_ios_add_codegen_android buildspec: .codebuild/run_e2e_tests.yml env: compute-type: BUILD_GENERAL1_MEDIUM variables: TEST_SUITE: >- - src/__tests__/datastore-modelgen-android.test.ts|src/__tests__/datastore-modelgen-flutter.test.ts|src/__tests__/datastore-modelgen-ios.test.ts|src/__tests__/datastore-modelgen-js.test.ts - CLI_REGION: eu-west-2 + src/__tests__/graphql-codegen-js.test.ts|src/__tests__/remove-codegen-android.test.ts|src/__tests__/remove-codegen-ios.test.ts|src/__tests__/add-codegen-android.test.ts + CLI_REGION: us-east-2 depend-on: - publish_to_local_registry - - identifier: env_codegen_feature_flags_graphql_codegen_android_graphql_codegen_ios + - identifier: >- + configure_codegen_ios_datastore_modelgen_android_datastore_modelgen_js_feature_flags buildspec: .codebuild/run_e2e_tests.yml env: compute-type: BUILD_GENERAL1_MEDIUM variables: TEST_SUITE: >- - src/__tests__/env-codegen.test.ts|src/__tests__/feature-flags.test.ts|src/__tests__/graphql-codegen-android.test.ts|src/__tests__/graphql-codegen-ios.test.ts - CLI_REGION: eu-central-1 + src/__tests__/configure-codegen-ios.test.ts|src/__tests__/datastore-modelgen-android.test.ts|src/__tests__/datastore-modelgen-js.test.ts|src/__tests__/feature-flags.test.ts + CLI_REGION: us-west-2 depend-on: - publish_to_local_registry - identifier: >- - graphql_codegen_js_graphql_documents_generator_model_introspection_codegen_pull_codegen + graphql_codegen_ios_add_codegen_js_datastore_modelgen_ios_remove_codegen_js buildspec: .codebuild/run_e2e_tests.yml env: compute-type: BUILD_GENERAL1_MEDIUM variables: TEST_SUITE: >- - src/__tests__/graphql-codegen-js.test.ts|src/__tests__/graphql-documents-generator.test.ts|src/__tests__/model-introspection-codegen.test.ts|src/__tests__/pull-codegen.test.ts - CLI_REGION: ap-northeast-1 + src/__tests__/graphql-codegen-ios.test.ts|src/__tests__/add-codegen-js.test.ts|src/__tests__/datastore-modelgen-ios.test.ts|src/__tests__/remove-codegen-js.test.ts + CLI_REGION: eu-west-2 depend-on: - publish_to_local_registry - identifier: >- - push_codegen_android_push_codegen_ios_push_codegen_js_remove_codegen_android + datastore_modelgen_flutter_env_codegen_model_introspection_codegen_pull_codegen buildspec: .codebuild/run_e2e_tests.yml env: compute-type: BUILD_GENERAL1_MEDIUM variables: TEST_SUITE: >- - src/__tests__/push-codegen-android.test.ts|src/__tests__/push-codegen-ios.test.ts|src/__tests__/push-codegen-js.test.ts|src/__tests__/remove-codegen-android.test.ts - CLI_REGION: ap-southeast-1 + src/__tests__/datastore-modelgen-flutter.test.ts|src/__tests__/env-codegen.test.ts|src/__tests__/model-introspection-codegen.test.ts|src/__tests__/pull-codegen.test.ts + CLI_REGION: eu-central-1 depend-on: - publish_to_local_registry - - identifier: remove_codegen_ios_remove_codegen_js + - identifier: >- + push_codegen_ios_push_codegen_android_graphql_documents_generator_push_codegen_js buildspec: .codebuild/run_e2e_tests.yml env: compute-type: BUILD_GENERAL1_MEDIUM variables: TEST_SUITE: >- - src/__tests__/remove-codegen-ios.test.ts|src/__tests__/remove-codegen-js.test.ts - CLI_REGION: ap-southeast-2 + src/__tests__/push-codegen-ios.test.ts|src/__tests__/push-codegen-android.test.ts|src/__tests__/graphql-documents-generator.test.ts|src/__tests__/push-codegen-js.test.ts + CLI_REGION: ap-northeast-1 depend-on: - publish_to_local_registry - - identifier: build_app_swift + - identifier: build_app_ts buildspec: .codebuild/run_e2e_tests.yml env: - compute-type: BUILD_GENERAL1_SMALL + compute-type: BUILD_GENERAL1_MEDIUM variables: - TEST_SUITE: src/__tests__/build-app-swift.test.ts - CLI_REGION: us-west-2 - USE_PARENT_ACCOUNT: 1 + TEST_SUITE: src/__tests__/build-app-ts.test.ts + CLI_REGION: ap-southeast-1 depend-on: - publish_to_local_registry - identifier: cleanup_e2e_resources @@ -117,4 +127,5 @@ batch: env: compute-type: BUILD_GENERAL1_SMALL depend-on: - - add_codegen_android_add_codegen_ios_add_codegen_js_build_app_android + - >- + add_codegen_ios_configure_codegen_android_configure_codegen_js_graphql_codegen_android diff --git a/.codebuild/e2e_workflow_base.yml b/.codebuild/e2e_workflow_base.yml index 74d4e57bc..4fea9bdb6 100644 --- a/.codebuild/e2e_workflow_base.yml +++ b/.codebuild/e2e_workflow_base.yml @@ -28,3 +28,22 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux + - identifier: build_app_android + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: src/__tests__/build-app-android.test.ts + CLI_REGION: us-east-2 + SKIP_SET_NPM_PREFIX: true + depend-on: + - publish_to_local_registry + - identifier: build_app_swift + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: src/__tests__/build-app-swift.test.ts + CLI_REGION: us-east-2 + depend-on: + - publish_to_local_registry diff --git a/.codebuild/scripts/local_publish_helpers.sh b/.codebuild/scripts/local_publish_helpers.sh index c96de99e9..a775ca6dc 100644 --- a/.codebuild/scripts/local_publish_helpers.sh +++ b/.codebuild/scripts/local_publish_helpers.sh @@ -44,7 +44,9 @@ function unsetSudoNpmRegistryUrl { function changeNpmGlobalPath { mkdir -p ~/.npm-global - npm config set prefix '~/.npm-global' + if [ -z $SKIP_SET_NPM_PREFIX ]; then + npm config set prefix '~/.npm-global' + fi export PATH=~/.npm-global/bin:$PATH } diff --git a/scripts/cci/test-timings.data.json b/scripts/cci/test-timings.data.json index 830c96e28..327302e7d 100644 --- a/scripts/cci/test-timings.data.json +++ b/scripts/cci/test-timings.data.json @@ -1,5 +1,114 @@ { - "lastUpdated": "2023-07-11T04:44:38.813Z", - "totalTestFiles": 0, - "timingData": [] + "lastUpdated": "2023-07-11T05:07:36.310Z", + "totalTestFiles": 27, + "timingData": [ + { + "test": "src/__tests__/add-codegen-ios.test.ts", + "medianRuntime": 6 + }, + { + "test": "src/__tests__/configure-codegen-android.test.ts", + "medianRuntime": 6 + }, + { + "test": "src/__tests__/configure-codegen-js.test.ts", + "medianRuntime": 6 + }, + { + "test": "src/__tests__/graphql-codegen-android.test.ts", + "medianRuntime": 6 + }, + { + "test": "src/__tests__/graphql-codegen-js.test.ts", + "medianRuntime": 6 + }, + { + "test": "src/__tests__/remove-codegen-android.test.ts", + "medianRuntime": 6 + }, + { + "test": "src/__tests__/remove-codegen-ios.test.ts", + "medianRuntime": 6 + }, + { + "test": "src/__tests__/add-codegen-android.test.ts", + "medianRuntime": 7 + }, + { + "test": "src/__tests__/configure-codegen-ios.test.ts", + "medianRuntime": 7 + }, + { + "test": "src/__tests__/datastore-modelgen-android.test.ts", + "medianRuntime": 7 + }, + { + "test": "src/__tests__/datastore-modelgen-js.test.ts", + "medianRuntime": 7 + }, + { + "test": "src/__tests__/feature-flags.test.ts", + "medianRuntime": 7 + }, + { + "test": "src/__tests__/graphql-codegen-ios.test.ts", + "medianRuntime": 7 + }, + { + "test": "src/__tests__/add-codegen-js.test.ts", + "medianRuntime": 8 + }, + { + "test": "src/__tests__/datastore-modelgen-ios.test.ts", + "medianRuntime": 8 + }, + { + "test": "src/__tests__/remove-codegen-js.test.ts", + "medianRuntime": 8 + }, + { + "test": "src/__tests__/datastore-modelgen-flutter.test.ts", + "medianRuntime": 9 + }, + { + "test": "src/__tests__/env-codegen.test.ts", + "medianRuntime": 9 + }, + { + "test": "src/__tests__/model-introspection-codegen.test.ts", + "medianRuntime": 9 + }, + { + "test": "src/__tests__/build-app-android.test.ts", + "medianRuntime": 11 + }, + { + "test": "src/__tests__/pull-codegen.test.ts", + "medianRuntime": 11 + }, + { + "test": "src/__tests__/push-codegen-ios.test.ts", + "medianRuntime": 11 + }, + { + "test": "src/__tests__/push-codegen-android.test.ts", + "medianRuntime": 12 + }, + { + "test": "src/__tests__/graphql-documents-generator.test.ts", + "medianRuntime": 13 + }, + { + "test": "src/__tests__/push-codegen-js.test.ts", + "medianRuntime": 13 + }, + { + "test": "src/__tests__/build-app-ts.test.ts", + "medianRuntime": 16 + }, + { + "test": "src/__tests__/build-app-swift.test.ts", + "medianRuntime": 20 + } + ] } \ No newline at end of file diff --git a/scripts/cci/utils.ts b/scripts/cci/utils.ts index 098854f16..469f1a6b7 100644 --- a/scripts/cci/utils.ts +++ b/scripts/cci/utils.ts @@ -35,7 +35,7 @@ export function getTimingsFromJobsData() { const jobData = JSON.parse(fs.readFileSync(JOB_METRICS_PATH, 'utf-8')); const jobTimings: Map = new Map(); for (let job of jobData.items) { - const testName = getTestNameFromJobName(job.name); + const testName = job.name; const duration = Math.floor(job.metrics.duration_metrics.median / 60); if (jobTimings.has(testName)) { jobTimings.set(testName, Math.max(jobTimings.get(testName)!, duration)); @@ -46,22 +46,14 @@ export function getTimingsFromJobsData() { return jobTimings; } -function getTestNameFromJobName(jobName: string) { - // first, remove any - from the name - const endIndex = jobName.lastIndexOf('-l'); - const name = jobName.substring(0, endIndex); - return name; -} - export const getTestNameFromPath = (testSuitePath: string): string => { const startIndex = testSuitePath.lastIndexOf('/') + 1; const endIndex = testSuitePath.lastIndexOf('.test'); return testSuitePath .substring(startIndex, endIndex) - .split('.e2e') - .join('') .split('.') - .join('-'); + .join('-') + + '-e2e-test'; }; export function saveTestTimings(data: any): any { diff --git a/scripts/split-e2e-tests-codebuild.ts b/scripts/split-e2e-tests-codebuild.ts index 16431826d..0a557db2c 100644 --- a/scripts/split-e2e-tests-codebuild.ts +++ b/scripts/split-e2e-tests-codebuild.ts @@ -16,18 +16,16 @@ const AWS_REGIONS_TO_RUN_TESTS = [ ]; // some tests require additional time, the parent account can handle longer tests (up to 90 minutes) -const USE_PARENT_ACCOUNT = [ - 'src/__tests__/build-app-swift.test.ts', -]; +const USE_PARENT_ACCOUNT = []; const REPO_ROOT = join(__dirname, '..'); const TEST_TIMINGS_PATH = join(REPO_ROOT, 'scripts', 'cci', 'test-timings.data.json'); const CODEBUILD_CONFIG_BASE_PATH = join(REPO_ROOT, '.codebuild', 'e2e_workflow_base.yml'); const CODEBUILD_GENERATE_CONFIG_PATH = join(REPO_ROOT, '.codebuild', 'e2e_workflow.yml'); -const RUN_SOLO = [ +const RUN_SOLO = []; +const EXCLUDE_TESTS = [ 'src/__tests__/build-app-swift.test.ts', + 'src/__tests__/build-app-android.test.ts', ]; -const runJobOnAndroid = new Set(['build-app-android-e2e-test']); -const runJobOnMacOS = new Set(['build-app-swift-e2e-test']); export function loadConfigBase() { return yaml.load(fs.readFileSync(CODEBUILD_CONFIG_BASE_PATH, 'utf8')); @@ -187,6 +185,7 @@ function main(): void { 'depend-on': ['publish_to_local_registry'], }, join(REPO_ROOT, 'packages', 'amplify-codegen-e2e-tests'), + (testSuites) => testSuites.filter((ts) => !EXCLUDE_TESTS.includes(ts)), ); let allBuilds = [...splitE2ETests]; From 9a01a285706e6e0399453aec5764d9b9db01974c Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Mon, 10 Jul 2023 22:45:21 -0700 Subject: [PATCH 08/21] chore: lint fix --- scripts/split-e2e-tests-codebuild.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/split-e2e-tests-codebuild.ts b/scripts/split-e2e-tests-codebuild.ts index 0a557db2c..624df27f4 100644 --- a/scripts/split-e2e-tests-codebuild.ts +++ b/scripts/split-e2e-tests-codebuild.ts @@ -187,7 +187,7 @@ function main(): void { join(REPO_ROOT, 'packages', 'amplify-codegen-e2e-tests'), (testSuites) => testSuites.filter((ts) => !EXCLUDE_TESTS.includes(ts)), ); - + let allBuilds = [...splitE2ETests]; const cleanupResources = { identifier: 'cleanup_e2e_resources', From 412b93369d2931ecc22bf86fdacc804aaea886c3 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Tue, 11 Jul 2023 15:36:32 -0700 Subject: [PATCH 09/21] chore: remove swift and android tests --- .codebuild/e2e_workflow.yml | 19 ------------------- .codebuild/e2e_workflow_base.yml | 19 ------------------- 2 files changed, 38 deletions(-) diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml index 0dd2c121a..3d06ed2e5 100644 --- a/.codebuild/e2e_workflow.yml +++ b/.codebuild/e2e_workflow.yml @@ -28,25 +28,6 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - - identifier: build_app_android - buildspec: .codebuild/run_e2e_tests.yml - env: - compute-type: BUILD_GENERAL1_MEDIUM - variables: - TEST_SUITE: src/__tests__/build-app-android.test.ts - CLI_REGION: us-east-2 - SKIP_SET_NPM_PREFIX: true - depend-on: - - publish_to_local_registry - - identifier: build_app_swift - buildspec: .codebuild/run_e2e_tests.yml - env: - compute-type: BUILD_GENERAL1_MEDIUM - variables: - TEST_SUITE: src/__tests__/build-app-swift.test.ts - CLI_REGION: us-east-2 - depend-on: - - publish_to_local_registry - identifier: >- add_codegen_ios_configure_codegen_android_configure_codegen_js_graphql_codegen_android buildspec: .codebuild/run_e2e_tests.yml diff --git a/.codebuild/e2e_workflow_base.yml b/.codebuild/e2e_workflow_base.yml index 4fea9bdb6..74d4e57bc 100644 --- a/.codebuild/e2e_workflow_base.yml +++ b/.codebuild/e2e_workflow_base.yml @@ -28,22 +28,3 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux - - identifier: build_app_android - buildspec: .codebuild/run_e2e_tests.yml - env: - compute-type: BUILD_GENERAL1_MEDIUM - variables: - TEST_SUITE: src/__tests__/build-app-android.test.ts - CLI_REGION: us-east-2 - SKIP_SET_NPM_PREFIX: true - depend-on: - - publish_to_local_registry - - identifier: build_app_swift - buildspec: .codebuild/run_e2e_tests.yml - env: - compute-type: BUILD_GENERAL1_MEDIUM - variables: - TEST_SUITE: src/__tests__/build-app-swift.test.ts - CLI_REGION: us-east-2 - depend-on: - - publish_to_local_registry From 525f72cc84bb16d23ec32877af1890a6b940cb4c Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Tue, 11 Jul 2023 16:12:27 -0700 Subject: [PATCH 10/21] chore: git ignore jobs data file --- .gitignore | 3 +- scripts/cci/job.data.json | 787 -------------------------------------- 2 files changed, 2 insertions(+), 788 deletions(-) delete mode 100644 scripts/cci/job.data.json diff --git a/.gitignore b/.gitignore index 5008007a9..5b8f7018e 100644 --- a/.gitignore +++ b/.gitignore @@ -26,4 +26,5 @@ test.out.log *.tsbuildinfo package-lock.json .idea -scripts/.env \ No newline at end of file +scripts/.env +scripts/cci/job.data.json \ No newline at end of file diff --git a/scripts/cci/job.data.json b/scripts/cci/job.data.json deleted file mode 100644 index 0b3864168..000000000 --- a/scripts/cci/job.data.json +++ /dev/null @@ -1,787 +0,0 @@ -{ - "next_page_token": null, - "items": [ - { - "name": "add-codegen-android-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 390, - "mean": 418, - "median": 426, - "p95": 432, - "max": 434, - "standard_deviation": 17, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 831, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:33.479Z", - "window_end": "2023-07-10T22:11:18.542Z" - }, - { - "name": "add-codegen-ios-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 350, - "mean": 380, - "median": 383, - "p95": 411, - "max": 417, - "standard_deviation": 25, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 757, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.473Z", - "window_end": "2023-07-10T22:10:38.898Z" - }, - { - "name": "add-codegen-js-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 522, - "mean": 532, - "median": 530, - "p95": 547, - "max": 551, - "standard_deviation": 10, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 1060, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.445Z", - "window_end": "2023-07-10T22:13:06.147Z" - }, - { - "name": "build", - "metrics": { - "total_runs": 8, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 0, - "mean": 111, - "median": 127, - "p95": 193, - "max": 195, - "standard_deviation": 75, - "total_duration": 0 - }, - "success_rate": 0.75, - "total_credits_used": 291, - "throughput": 0.2666666667 - }, - "window_start": "2023-06-19T17:28:54.389Z", - "window_end": "2023-07-10T22:03:07.678Z" - }, - { - "name": "build-app-android-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 618, - "mean": 741, - "median": 717, - "p95": 893, - "max": 917, - "standard_deviation": 111, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 1481, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:34.079Z", - "window_end": "2023-07-10T22:19:26.837Z" - }, - { - "name": "build-app-swift-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 1177, - "mean": 1221, - "median": 1210, - "p95": 1285, - "max": 1304, - "standard_deviation": 44, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 12130, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:33.769Z", - "window_end": "2023-07-10T22:24:41.323Z" - }, - { - "name": "build-app-ts-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 917, - "mean": 986, - "median": 975, - "p95": 1057, - "max": 1066, - "standard_deviation": 54, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 1967, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.161Z", - "window_end": "2023-07-10T22:21:20.385Z" - }, - { - "name": "configure-codegen-android-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 337, - "mean": 378, - "median": 380, - "p95": 409, - "max": 410, - "standard_deviation": 29, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 752, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:31.581Z", - "window_end": "2023-07-10T22:10:41.952Z" - }, - { - "name": "configure-codegen-ios-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 415, - "mean": 434, - "median": 433, - "p95": 453, - "max": 458, - "standard_deviation": 14, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 861, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:33.151Z", - "window_end": "2023-07-10T22:11:30.111Z" - }, - { - "name": "configure-codegen-js-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 352, - "mean": 403, - "median": 396, - "p95": 462, - "max": 471, - "standard_deviation": 45, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 804, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:34.375Z", - "window_end": "2023-07-10T22:11:27.834Z" - }, - { - "name": "datastore-modelgen-android-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 424, - "mean": 445, - "median": 449, - "p95": 462, - "max": 466, - "standard_deviation": 14, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 888, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.073Z", - "window_end": "2023-07-10T22:11:40.442Z" - }, - { - "name": "datastore-modelgen-flutter-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 542, - "mean": 564, - "median": 551, - "p95": 613, - "max": 632, - "standard_deviation": 33, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 1124, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:31.390Z", - "window_end": "2023-07-10T22:14:42.234Z" - }, - { - "name": "datastore-modelgen-ios-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 502, - "mean": 532, - "median": 534, - "p95": 551, - "max": 553, - "standard_deviation": 18, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 1059, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:33.381Z", - "window_end": "2023-07-10T22:13:15.115Z" - }, - { - "name": "datastore-modelgen-js-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 435, - "mean": 454, - "median": 454, - "p95": 475, - "max": 481, - "standard_deviation": 15, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 902, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:34.377Z", - "window_end": "2023-07-10T22:12:13.663Z" - }, - { - "name": "deploy", - "metrics": { - "total_runs": 3, - "failed_runs": 0, - "successful_runs": 3, - "median_credits_used": 0, - "duration_metrics": { - "min": 42, - "mean": 44, - "median": 45, - "p95": 45, - "max": 46, - "standard_deviation": 2, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 42, - "throughput": 0.1 - }, - "window_start": "2023-06-19T17:53:02.522Z", - "window_end": "2023-06-29T17:10:35.513Z" - }, - { - "name": "done_with_node_e2e_tests", - "metrics": { - "total_runs": 3, - "failed_runs": 0, - "successful_runs": 3, - "median_credits_used": 0, - "duration_metrics": { - "min": 25, - "mean": 26, - "median": 26, - "p95": 28, - "max": 29, - "standard_deviation": 2, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 24, - "throughput": 0.1 - }, - "window_start": "2023-06-19T17:52:37.213Z", - "window_end": "2023-06-29T17:09:49.727Z" - }, - { - "name": "env-codegen-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 1, - "successful_runs": 5, - "median_credits_used": 0, - "duration_metrics": { - "min": 479, - "mean": 584, - "median": 597, - "p95": 624, - "max": 629, - "standard_deviation": 53, - "total_duration": 0 - }, - "success_rate": 0.8333333333, - "total_credits_used": 1165, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.807Z", - "window_end": "2023-07-10T22:12:10.121Z" - }, - { - "name": "feature-flags-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 403, - "mean": 432, - "median": 435, - "p95": 445, - "max": 446, - "standard_deviation": 15, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 861, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:33.104Z", - "window_end": "2023-07-10T22:11:24.854Z" - }, - { - "name": "graphql-codegen-android-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 362, - "mean": 388, - "median": 397, - "p95": 404, - "max": 405, - "standard_deviation": 20, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 772, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:33.116Z", - "window_end": "2023-07-10T22:10:44.059Z" - }, - { - "name": "graphql-codegen-ios-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 414, - "mean": 428, - "median": 430, - "p95": 439, - "max": 442, - "standard_deviation": 10, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 848, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:31.872Z", - "window_end": "2023-07-10T22:11:23.361Z" - }, - { - "name": "graphql-codegen-js-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 362, - "mean": 384, - "median": 382, - "p95": 412, - "max": 419, - "standard_deviation": 19, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 761, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:31.069Z", - "window_end": "2023-07-10T22:11:11.346Z" - }, - { - "name": "graphql-documents-generator-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 2, - "successful_runs": 4, - "median_credits_used": 0, - "duration_metrics": { - "min": 626, - "mean": 745, - "median": 787, - "p95": 805, - "max": 807, - "standard_deviation": 79, - "total_duration": 0 - }, - "success_rate": 0.6666666667, - "total_credits_used": 1486, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:33.428Z", - "window_end": "2023-07-10T22:14:38.281Z" - }, - { - "name": "model-introspection-codegen-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 3, - "successful_runs": 3, - "median_credits_used": 0, - "duration_metrics": { - "min": 540, - "mean": 585, - "median": 593, - "p95": 608, - "max": 612, - "standard_deviation": 25, - "total_duration": 0 - }, - "success_rate": 0.5, - "total_credits_used": 1165, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.848Z", - "window_end": "2023-07-10T22:13:48.972Z" - }, - { - "name": "publish_to_local_registry", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 61, - "mean": 79, - "median": 78, - "p95": 95, - "max": 99, - "standard_deviation": 12, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 153, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:30:54.032Z", - "window_end": "2023-07-10T22:04:09.237Z" - }, - { - "name": "pull-codegen-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 1, - "successful_runs": 5, - "median_credits_used": 0, - "duration_metrics": { - "min": 631, - "mean": 713, - "median": 718, - "p95": 754, - "max": 762, - "standard_deviation": 43, - "total_duration": 0 - }, - "success_rate": 0.8333333333, - "total_credits_used": 1422, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.477Z", - "window_end": "2023-07-10T22:14:41.457Z" - }, - { - "name": "push-codegen-android-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 1, - "successful_runs": 5, - "median_credits_used": 0, - "duration_metrics": { - "min": 524, - "mean": 735, - "median": 779, - "p95": 788, - "max": 790, - "standard_deviation": 104, - "total_duration": 0 - }, - "success_rate": 0.8333333333, - "total_credits_used": 1468, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.825Z", - "window_end": "2023-07-10T22:12:54.137Z" - }, - { - "name": "push-codegen-ios-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 1, - "successful_runs": 5, - "median_credits_used": 0, - "duration_metrics": { - "min": 471, - "mean": 649, - "median": 682, - "p95": 705, - "max": 710, - "standard_deviation": 88, - "total_duration": 0 - }, - "success_rate": 0.8333333333, - "total_credits_used": 1292, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:34.036Z", - "window_end": "2023-07-10T22:12:00.368Z" - }, - { - "name": "push-codegen-js-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 1, - "successful_runs": 5, - "median_credits_used": 0, - "duration_metrics": { - "min": 541, - "mean": 754, - "median": 785, - "p95": 826, - "max": 829, - "standard_deviation": 106, - "total_duration": 0 - }, - "success_rate": 0.8333333333, - "total_credits_used": 1502, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:31.734Z", - "window_end": "2023-07-10T22:13:10.326Z" - }, - { - "name": "remove-codegen-android-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 357, - "mean": 383, - "median": 383, - "p95": 408, - "max": 409, - "standard_deviation": 21, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 761, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:32.235Z", - "window_end": "2023-07-10T22:10:59.009Z" - }, - { - "name": "remove-codegen-ios-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 362, - "mean": 402, - "median": 394, - "p95": 442, - "max": 447, - "standard_deviation": 31, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 799, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:33.734Z", - "window_end": "2023-07-10T22:11:38.351Z" - }, - { - "name": "remove-codegen-js-e2e-test", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 490, - "mean": 517, - "median": 521, - "p95": 529, - "max": 530, - "standard_deviation": 15, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 1029, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:32:31.843Z", - "window_end": "2023-07-10T22:13:01.480Z" - }, - { - "name": "test-l", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 137, - "mean": 144, - "median": 139, - "p95": 160, - "max": 164, - "standard_deviation": 10, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 285, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:30:54.665Z", - "window_end": "2023-07-10T22:05:25.354Z" - }, - { - "name": "test-w", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 487, - "mean": 622, - "median": 616, - "p95": 778, - "max": 807, - "standard_deviation": 123, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 2451, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:30:54.893Z", - "window_end": "2023-07-10T22:14:40.901Z" - }, - { - "name": "verify-api-extract", - "metrics": { - "total_runs": 6, - "failed_runs": 0, - "successful_runs": 6, - "median_credits_used": 0, - "duration_metrics": { - "min": 46, - "mean": 67, - "median": 71, - "p95": 74, - "max": 75, - "standard_deviation": 10, - "total_duration": 0 - }, - "success_rate": 1, - "total_credits_used": 130, - "throughput": 0.2 - }, - "window_start": "2023-06-19T17:30:54.371Z", - "window_end": "2023-07-10T22:04:22.075Z" - } - ] -} \ No newline at end of file From f79745da948d75f125bd231ff976db23e9b7a691 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Tue, 11 Jul 2023 17:45:02 -0700 Subject: [PATCH 11/21] fix: remove changelog step --- shared-scripts.sh | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/shared-scripts.sh b/shared-scripts.sh index ea0dbdc80..c253edd50 100644 --- a/shared-scripts.sh +++ b/shared-scripts.sh @@ -142,17 +142,6 @@ function _publishToLocalRegistry { unsetNpmRegistryUrl # copy [verdaccio-cache] to s3 storeCache $CODEBUILD_SRC_DIR/../verdaccio-cache verdaccio-cache - - _generateChangeLog -} - -function _generateChangeLog { - echo "Generate Change Log" - git reset --hard HEAD - yarn update-versions - yarn ts-node scripts/unified-changelog.ts - # copy [changelog] to s3 - storeCacheFile $CODEBUILD_SRC_DIR/UNIFIED_CHANGELOG.md UNIFIED_CHANGELOG.md } function _installCLIFromLocalRegistry { From ee9ac440f43220e4d160fd7d7b9260bc3d50dcdb Mon Sep 17 00:00:00 2001 From: Al Harris <91494052+alharris-at@users.noreply.github.com> Date: Thu, 13 Jul 2023 11:07:39 -0700 Subject: [PATCH 12/21] chore: try using dist tag for version bump (#624) * chore: try using dist tag for version bump * chore: use resolutions --- .circleci/config.base.yml | 2 +- .circleci/config.yml | 2 +- packages/amplify-codegen/package.json | 2 +- shared-scripts.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.base.yml b/.circleci/config.base.yml index 4762bd867..aa1af6ab0 100644 --- a/.circleci/config.base.yml +++ b/.circleci/config.base.yml @@ -58,7 +58,7 @@ install_cli_with_local_codegen: &install_cli startLocalRegistry "$(pwd)/.circleci/verdaccio.yaml" setNpmRegistryUrlToLocal changeNpmGlobalPath - npm install -g @aws-amplify/cli-internal + npm install -g @aws-amplify/cli-internal@cdk228withdata3 amplify -v npm list --global --depth=1 unsetNpmRegistryUrl diff --git a/.circleci/config.yml b/.circleci/config.yml index e3a5af6b2..c79c7c379 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,7 +54,7 @@ install_cli_with_local_codegen: &ref_3 startLocalRegistry "$(pwd)/.circleci/verdaccio.yaml" setNpmRegistryUrlToLocal changeNpmGlobalPath - npm install -g @aws-amplify/cli-internal + npm install -g @aws-amplify/cli-internal@cdk228withdata3 amplify -v npm list --global --depth=1 unsetNpmRegistryUrl diff --git a/packages/amplify-codegen/package.json b/packages/amplify-codegen/package.json index 41b3594f5..b53f0ee32 100644 --- a/packages/amplify-codegen/package.json +++ b/packages/amplify-codegen/package.json @@ -39,7 +39,7 @@ "slash": "^3.0.0" }, "peerDependencies": { - "@aws-amplify/amplify-cli-core": "^4.0.0", + "@aws-amplify/amplify-cli-core": "*", "graphql-transformer-core": "^8.0.0" }, "jest": { diff --git a/shared-scripts.sh b/shared-scripts.sh index c253edd50..18340af86 100644 --- a/shared-scripts.sh +++ b/shared-scripts.sh @@ -150,7 +150,7 @@ function _installCLIFromLocalRegistry { startLocalRegistry "$(pwd)/.circleci/verdaccio.yaml" setNpmRegistryUrlToLocal changeNpmGlobalPath - npm install -g @aws-amplify/cli-internal + npm install -g @aws-amplify/cli-internal@cdk228withdata3 echo "using Amplify CLI version: "$(amplify --version) npm list -g --depth=1 | grep -e '@aws-amplify/amplify-category-api' -e 'amplify-codegen' unsetNpmRegistryUrl From ceae91a62a157fe665be905438f9ec0bdf8030f1 Mon Sep 17 00:00:00 2001 From: Zeyu Li Date: Thu, 13 Jul 2023 14:15:27 -0700 Subject: [PATCH 13/21] chore: add cleanup resources script for codebuild (#622) * chore: add cleanup resources script for codebuild * fix lint error --- .codebuild/scripts/lint_pr.sh | 2 +- .../src/init/initProjectHelper.ts | 22 +- .../{add-circleci-tags.ts => add-ci-tags.ts} | 43 + .../src/utils/index.ts | 2 +- .../src/utils/pinpoint.ts | 4 +- .../src/utils/sdk-calls.ts | 4 +- .../amplify-codegen-e2e-tests/package.json | 3 +- .../src/cleanup-cb-e2e-resources.ts | 735 ++++++++++++++++++ .../src/init-special-cases/index.ts | 4 +- 9 files changed, 799 insertions(+), 20 deletions(-) rename packages/amplify-codegen-e2e-core/src/utils/{add-circleci-tags.ts => add-ci-tags.ts} (55%) create mode 100644 packages/amplify-codegen-e2e-tests/src/cleanup-cb-e2e-resources.ts diff --git a/.codebuild/scripts/lint_pr.sh b/.codebuild/scripts/lint_pr.sh index 26bb57c43..ce1fbbe79 100644 --- a/.codebuild/scripts/lint_pr.sh +++ b/.codebuild/scripts/lint_pr.sh @@ -8,5 +8,5 @@ if [ -z "$PR_NUM" ]; then fi # get PR file list, filter out removed files, filter only JS/TS files, then pass to the linter -curl -fsSL https://api.github.com/repos/$PROJECT_USERNAME/$REPO_NAME/pulls/$PR_NUM/files | jq -r '.[] | select(.status!="removed") | .filename' | grep -E '\.(js|jsx|ts|tsx)$' || true | xargs yarn eslint +curl -fsSL https://api.github.com/repos/$PROJECT_USERNAME/$REPO_NAME/pulls/$PR_NUM/files | jq -r '.[] | select(.status!="removed") | .filename' | (grep -E '\.(js|jsx|ts|tsx)$' || true) | xargs yarn eslint --quiet set +x diff --git a/packages/amplify-codegen-e2e-core/src/init/initProjectHelper.ts b/packages/amplify-codegen-e2e-core/src/init/initProjectHelper.ts index 879b3d66c..b8c888e41 100644 --- a/packages/amplify-codegen-e2e-core/src/init/initProjectHelper.ts +++ b/packages/amplify-codegen-e2e-core/src/init/initProjectHelper.ts @@ -1,4 +1,4 @@ -import { nspawn as spawn, getCLIPath, singleSelect, addCircleCITags } from '..'; +import { nspawn as spawn, getCLIPath, singleSelect, addCITags } from '..'; import { KEY_DOWN_ARROW, AmplifyFrontend } from '../utils'; import { amplifyRegions } from '../configure'; import { v4 as uuid } from 'uuid'; @@ -32,7 +32,7 @@ export function initJSProjectWithProfile(cwd: string, settings: Object = {}): Pr }; } - addCircleCITags(cwd); + addCITags(cwd); const cliArgs = ['init']; const providerConfigSpecified = !!s.providerConfig && typeof s.providerConfig === 'object'; @@ -89,7 +89,7 @@ export function initJSProjectWithProfile(cwd: string, settings: Object = {}): Pr export function initAndroidProjectWithProfile(cwd: string, settings: Object): Promise { const s = { ...defaultSettings, ...settings }; - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { spawn(getCLIPath(), ['init'], { @@ -120,7 +120,7 @@ export function initAndroidProjectWithProfile(cwd: string, settings: Object): Pr .wait('Try "amplify add api" to create a backend API and then "amplify push" to deploy everything') .run((err: Error) => { if (!err) { - addCircleCITags(cwd); + addCITags(cwd); resolve(); } else { @@ -133,7 +133,7 @@ export function initAndroidProjectWithProfile(cwd: string, settings: Object): Pr export function initIosProjectWithProfile(cwd: string, settings: Object): Promise { const s = { ...defaultSettings, ...settings }; - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { spawn(getCLIPath(), ['init'], { @@ -163,7 +163,7 @@ export function initIosProjectWithProfile(cwd: string, settings: Object): Promis .wait('Try "amplify add api" to create a backend API and then "amplify push" to deploy everything') .run((err: Error) => { if (!err) { - addCircleCITags(cwd); + addCITags(cwd); resolve(); } else { @@ -176,7 +176,7 @@ export function initIosProjectWithProfile(cwd: string, settings: Object): Promis export function initFlutterProjectWithProfile(cwd: string, settings: Object): Promise { const s = { ...defaultSettings, ...settings }; - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { let chain = spawn(getCLIPath(), ['init'], { cwd, stripColors: true }) @@ -220,7 +220,7 @@ export function initProjectWithAccessKey( ): Promise { const s = { ...defaultSettings, ...settings }; - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { let chain = spawn(getCLIPath(), ['init'], { @@ -275,7 +275,7 @@ export function initProjectWithAccessKey( } export function initNewEnvWithAccessKey(cwd: string, s: { envName: string; accessKeyId: string; secretAccessKey: string }): Promise { - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { let chain = spawn(getCLIPath(), ['init'], { @@ -314,7 +314,7 @@ export function initNewEnvWithAccessKey(cwd: string, s: { envName: string; acces } export function initNewEnvWithProfile(cwd: string, s: { envName: string }): Promise { - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { spawn(getCLIPath(), ['init'], { @@ -354,7 +354,7 @@ export function amplifyInitSandbox(cwd: string, settings: {}): Promise { }; } - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { spawn(getCLIPath(), ['init'], { cwd, stripColors: true, env }) diff --git a/packages/amplify-codegen-e2e-core/src/utils/add-circleci-tags.ts b/packages/amplify-codegen-e2e-core/src/utils/add-ci-tags.ts similarity index 55% rename from packages/amplify-codegen-e2e-core/src/utils/add-circleci-tags.ts rename to packages/amplify-codegen-e2e-core/src/utils/add-ci-tags.ts index 6ec1623ba..cfe622633 100644 --- a/packages/amplify-codegen-e2e-core/src/utils/add-circleci-tags.ts +++ b/packages/amplify-codegen-e2e-core/src/utils/add-ci-tags.ts @@ -9,6 +9,49 @@ declare global { } } } +export const addCITags = (projectPath: string): void => { + if (process.env && process.env['CODEBUILD']) { + addCodeBuildCITags(projectPath); + } + else if(process.env && process.env['CIRCLECI']) { + addCircleCITags(projectPath); + } +} + +/** + * Add CI tags for code build + * Refer https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html + * @param projectPath + */ +export const addCodeBuildCITags = (projectPath: string): void => { + const tags = stateManager.getProjectTags(projectPath); + + const addTagIfNotExist = (key: string, value: string): void => { + if (!tags.find(t => t.Key === key)) { + tags.push({ + Key: key, + Value: value, + }); + } + }; + addTagIfNotExist('codebuild', sanitizeTagValue(process.env['CODEBUILD'] || 'N/A')); + addTagIfNotExist('codebuild:batch_build_identifier', sanitizeTagValue(process.env['CODEBUILD_BATCH_BUILD_IDENTIFIER'] || 'N/A')); + addTagIfNotExist('codebuild:build_id', sanitizeTagValue(process.env['CODEBUILD_BUILD_ID'] || 'N/A')); + // exposed by custom CLI test environment + if (global.getTestName) { + addTagIfNotExist('jest:test_name', sanitizeTagValue(global.getTestName().substr(0, 255) || 'N/A')); + } + if (global.getHookName) { + addTagIfNotExist('jest:hook_name', sanitizeTagValue(global.getHookName().substr(0, 255) || 'N/A')); + } + if (global.getDescibeBlocks) { + global.getDescibeBlocks().forEach((blockName, i) => { + addTagIfNotExist(`jest:describe_${i + 1}`, sanitizeTagValue(blockName.substr(0, 255) || 'N/A')); + }); + } + + stateManager.setProjectFileTags(projectPath, tags); +}; export const addCircleCITags = (projectPath: string): void => { if (process.env && process.env['CIRCLECI']) { diff --git a/packages/amplify-codegen-e2e-core/src/utils/index.ts b/packages/amplify-codegen-e2e-core/src/utils/index.ts index 7ee8cb13c..f2583e257 100644 --- a/packages/amplify-codegen-e2e-core/src/utils/index.ts +++ b/packages/amplify-codegen-e2e-core/src/utils/index.ts @@ -4,7 +4,7 @@ import * as rimraf from 'rimraf'; import { config } from 'dotenv'; import execa from 'execa'; -export * from './add-circleci-tags'; +export * from './add-ci-tags'; export * from './api'; export * from './appsync'; export * from './envVars'; diff --git a/packages/amplify-codegen-e2e-core/src/utils/pinpoint.ts b/packages/amplify-codegen-e2e-core/src/utils/pinpoint.ts index be62de1cf..bf9cff28f 100644 --- a/packages/amplify-codegen-e2e-core/src/utils/pinpoint.ts +++ b/packages/amplify-codegen-e2e-core/src/utils/pinpoint.ts @@ -1,5 +1,5 @@ import { Pinpoint } from 'aws-sdk'; -import { getCLIPath, nspawn as spawn, singleSelect, amplifyRegions, addCircleCITags, KEY_DOWN_ARROW } from '..'; +import { getCLIPath, nspawn as spawn, singleSelect, amplifyRegions, addCITags, KEY_DOWN_ARROW } from '..'; import _ from 'lodash'; const settings = { @@ -70,7 +70,7 @@ export async function pinpointAppExist(pinpointProjectId: string): Promise { - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { let chain = spawn(getCLIPath(), ['init'], { diff --git a/packages/amplify-codegen-e2e-core/src/utils/sdk-calls.ts b/packages/amplify-codegen-e2e-core/src/utils/sdk-calls.ts index f29210974..4987ec612 100644 --- a/packages/amplify-codegen-e2e-core/src/utils/sdk-calls.ts +++ b/packages/amplify-codegen-e2e-core/src/utils/sdk-calls.ts @@ -42,8 +42,8 @@ export const bucketNotExists = async (bucket: string) => { } }; -export const deleteS3Bucket = async (bucket: string) => { - const s3 = new S3(); +export const deleteS3Bucket = async (bucket: string, providedS3Client: S3 | undefined = undefined) => { + const s3 = providedS3Client ? providedS3Client : new S3(); let continuationToken: Required> = undefined; const objectKeyAndVersion = []; let truncated = false; diff --git a/packages/amplify-codegen-e2e-tests/package.json b/packages/amplify-codegen-e2e-tests/package.json index 16cbb9ab9..f030252d2 100644 --- a/packages/amplify-codegen-e2e-tests/package.json +++ b/packages/amplify-codegen-e2e-tests/package.json @@ -19,7 +19,8 @@ "scripts": { "e2e": "npm run setup-profile && jest --verbose", "setup-profile": "ts-node ./src/configure_tests.ts", - "clean-e2e-resources": "ts-node ./src/cleanup-e2e-resources.ts" + "clean-e2e-resources": "ts-node ./src/cleanup-e2e-resources.ts", + "clean-cb-e2e-resources": "ts-node ./src/cleanup-cb-e2e-resources.ts" }, "dependencies": { "@aws-amplify/amplify-codegen-e2e-core": "1.4.9", diff --git a/packages/amplify-codegen-e2e-tests/src/cleanup-cb-e2e-resources.ts b/packages/amplify-codegen-e2e-tests/src/cleanup-cb-e2e-resources.ts new file mode 100644 index 000000000..ee53f4f3a --- /dev/null +++ b/packages/amplify-codegen-e2e-tests/src/cleanup-cb-e2e-resources.ts @@ -0,0 +1,735 @@ +/* eslint-disable spellcheck/spell-checker, camelcase, @typescript-eslint/no-explicit-any */ +import { CodeBuild } from 'aws-sdk'; +import { config } from 'dotenv'; +import yargs from 'yargs'; +import * as aws from 'aws-sdk'; +import _ from 'lodash'; +import fs from 'fs-extra'; +import path from 'path'; +import { deleteS3Bucket, sleep } from '@aws-amplify/amplify-codegen-e2e-core'; + +// Ensure to update scripts/split-e2e-tests.ts is also updated this gets updated +const AWS_REGIONS_TO_RUN_TESTS = [ + 'us-east-1', + 'us-east-2', + 'us-west-2', + 'eu-west-2', + 'eu-central-1', + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-2', +]; + +const reportPath = path.normalize(path.join(__dirname, '..', 'amplify-e2e-reports', 'stale-resources.json')); + +const MULTI_JOB_APP = ''; +const ORPHAN = ''; +const UNKNOWN = ''; + +type StackInfo = { + stackName: string; + stackStatus: string; + resourcesFailedToDelete?: string[]; + tags: Record; + region: string; + jobId: string; + cbInfo?: CodeBuild.Build; +}; + +type AmplifyAppInfo = { + appId: string; + name: string; + region: string; + backends: Record; +}; + +type S3BucketInfo = { + name: string; + jobId?: string; + cbInfo?: CodeBuild.Build; +}; + +type IamRoleInfo = { + name: string; + cbInfo?: CodeBuild.Build; +}; + +type ReportEntry = { + jobId?: string; + buildBatchArn?: string; + buildComplete?: boolean; + cbJobDetails?: CodeBuild.Build; + buildStatus?: string; + amplifyApps: Record; + stacks: Record; + buckets: Record; + roles: Record; +}; + +type JobFilterPredicate = (job: ReportEntry) => boolean; + +type CBJobInfo = { + buildBatchArn: string; + projectName: string; + buildComplete: boolean; + cbJobDetails: CodeBuild.Build; + buildStatus: string; +}; + +type AWSAccountInfo = { + accountId: string; + accessKeyId: string; + secretAccessKey: string; + sessionToken: string; +}; + +const BUCKET_TEST_REGEX = /test/; +const IAM_TEST_REGEX = /!RotateE2eAwsToken-e2eTestContextRole|-integtest$|^amplify-|^eu-|^us-|^ap-/; +const STALE_DURATION_MS = 2 * 60 * 60 * 1000; // 2 hours in milliseconds + +const isCI = (): boolean => process.env.CI && process.env.CODEBUILD ? true : false; +/* + * Exit on expired token as all future requests will fail. + */ +const handleExpiredTokenException = (): void => { + console.log('Token expired. Exiting...'); + process.exit(); +}; + +/** + * We define a resource as viable for deletion if it matches TEST_REGEX in the name, and if it is > STALE_DURATION_MS old. + */ +const testBucketStalenessFilter = (resource: aws.S3.Bucket): boolean => { + const isTestResource = resource.Name.match(BUCKET_TEST_REGEX); + const isStaleResource = (Date.now() - resource.CreationDate.getMilliseconds()) > STALE_DURATION_MS; + return isTestResource && isStaleResource; +}; + +const testRoleStalenessFilter = (resource: aws.IAM.Role): boolean => { + const isTestResource = resource.RoleName.match(IAM_TEST_REGEX); + const isStaleResource = (Date.now() - resource.CreateDate.getMilliseconds()) > STALE_DURATION_MS; + return isTestResource && isStaleResource; +}; + +/** + * Get all S3 buckets in the account, and filter down to the ones we consider stale. + */ +const getOrphanS3TestBuckets = async (account: AWSAccountInfo): Promise => { + const s3Client = new aws.S3(getAWSConfig(account)); + const listBucketResponse = await s3Client.listBuckets().promise(); + const staleBuckets = listBucketResponse.Buckets.filter(testBucketStalenessFilter); + return staleBuckets.map(it => ({ name: it.Name })); +}; + +/** + * Get all iam roles in the account, and filter down to the ones we consider stale. + */ +const getOrphanTestIamRoles = async (account: AWSAccountInfo): Promise => { + const iamClient = new aws.IAM(getAWSConfig(account)); + const listRoleResponse = await iamClient.listRoles({ MaxItems: 1000 }).promise(); + const staleRoles = listRoleResponse.Roles.filter(testRoleStalenessFilter); + return staleRoles.map(it => ({ name: it.RoleName })); +}; + +/** + * Get the relevant AWS config object for a given account and region. + */ + const getAWSConfig = ({ accessKeyId, secretAccessKey, sessionToken }: AWSAccountInfo, region?: string): unknown => ({ + credentials: { + accessKeyId, + secretAccessKey, + sessionToken, + }, + ...(region ? { region } : {}), + maxRetries: 10, +}); + +/** + * Returns a list of Amplify Apps in the region. The apps includes information about the CircleCI build that created the app + * This is determined by looking at tags of the backend environments that are associated with the Apps + * @param account aws account to query for amplify Apps + * @param region aws region to query for amplify Apps + * @returns Promise a list of Amplify Apps in the region with build info + */ +const getAmplifyApps = async (account: AWSAccountInfo, region: string): Promise => { + const amplifyClient = new aws.Amplify(getAWSConfig(account, region)); + const amplifyApps = await amplifyClient.listApps({ maxResults: 50 }).promise(); // keeping it to 50 as max supported is 50 + const result: AmplifyAppInfo[] = []; + for (const app of amplifyApps.apps) { + const backends: Record = {}; + try { + const backendEnvironments = await amplifyClient.listBackendEnvironments({ appId: app.appId, maxResults: 50 }).promise(); + for (const backendEnv of backendEnvironments.backendEnvironments) { + const buildInfo = await getStackDetails(backendEnv.stackName, account, region); + if (buildInfo) { + backends[backendEnv.environmentName] = buildInfo; + } + } + } catch (e) { + console.log(e); + } + result.push({ + appId: app.appId, + name: app.name, + region, + backends, + }); + } + return result; +}; + +/** + * Return the CodeBuild job id looking at `codebuild:build_id` in the tags + * @param tags Tags associated with the resource + * @returns build number or undefined + */ +const getJobId = (tags: aws.CloudFormation.Tags = []): string | undefined => { + const jobId = tags.find(tag => tag.Key === 'codebuild:build_id')?.Value; + return jobId; +}; + +/** + * Gets detail about a stack including the details about CircleCI job that created the stack. If a stack + * has status of `DELETE_FAILED` then it also includes the list of physical id of resources that caused + * deletion failures + * + * @param stackName name of the stack + * @param account account + * @param region region + * @returns stack details + */ +const getStackDetails = async (stackName: string, account: AWSAccountInfo, region: string): Promise => { + const cfnClient = new aws.CloudFormation(getAWSConfig(account, region)); + const stack = await cfnClient.describeStacks({ StackName: stackName }).promise(); + const tags = stack.Stacks.length && stack.Stacks[0].Tags; + const stackStatus = stack.Stacks[0].StackStatus; + let resourcesFailedToDelete: string[] = []; + if (stackStatus === 'DELETE_FAILED') { + // TODO: We need to investigate if we should go ahead and remove the resources to prevent account getting cluttered + const resources = await cfnClient.listStackResources({ StackName: stackName }).promise(); + resourcesFailedToDelete = resources.StackResourceSummaries.filter(r => r.ResourceStatus === 'DELETE_FAILED').map( + r => r.LogicalResourceId, + ); + } + const jobId = getJobId(tags); + return { + stackName, + stackStatus, + resourcesFailedToDelete, + region, + tags: tags.reduce((acc, tag) => ({ ...acc, [tag.Key]: tag.Value }), {}), + jobId + }; +}; + +const getStacks = async (account: AWSAccountInfo, region: string): Promise => { + const cfnClient = new aws.CloudFormation(getAWSConfig(account, region)); + const stacks = await cfnClient + .listStacks({ + StackStatusFilter: [ + 'CREATE_COMPLETE', + 'ROLLBACK_FAILED', + 'DELETE_FAILED', + 'UPDATE_COMPLETE', + 'UPDATE_ROLLBACK_FAILED', + 'UPDATE_ROLLBACK_COMPLETE', + 'IMPORT_COMPLETE', + 'IMPORT_ROLLBACK_FAILED', + 'IMPORT_ROLLBACK_COMPLETE', + ], + }) + .promise(); + + // We are interested in only the root stacks that are deployed by amplify-cli + const rootStacks = stacks.StackSummaries.filter(stack => !stack.RootId); + const results: StackInfo[] = []; + for (const stack of rootStacks) { + try { + const details = await getStackDetails(stack.StackName, account, region); + if (details) { + results.push(details); + } + } catch { + // don't want to barf and fail e2e tests + } + } + return results; +}; + +const getCodeBuildClient = (): CodeBuild => { + return new CodeBuild({ + apiVersion: '2016-10-06', + region: 'us-east-1', + }); +}; + +const getJobCodeBuildDetails = async (jobIds: string[]): Promise => { + if (jobIds.length === 0) { + return []; + } + const client = getCodeBuildClient(); + try { + const { builds } = await client.batchGetBuilds({ ids: jobIds }).promise(); + return builds; + } catch(e) { + console.log(e); + } +}; + +const getS3Buckets = async (account: AWSAccountInfo): Promise => { + const s3Client = new aws.S3(getAWSConfig(account)); + const buckets = await s3Client.listBuckets().promise(); + const result: S3BucketInfo[] = []; + for (const bucket of buckets.Buckets) { + try { + const bucketDetails = await s3Client.getBucketTagging({ Bucket: bucket.Name }).promise(); + const jobId = getJobId(bucketDetails.TagSet); + if (jobId) { + result.push({ + name: bucket.Name, + jobId + }); + } + } catch (e) { + if (e.code !== 'NoSuchTagSet' && e.code !== 'NoSuchBucket') { + throw e; + } + result.push({ + name: bucket.Name, + }); + } + } + return result; +}; + +/** + * extract and moves CircleCI job details + */ +const extractCCIJobInfo = ( + record: S3BucketInfo | StackInfo | AmplifyAppInfo, + buildInfos: Record + ): CBJobInfo => { + const buildId = _.get(record, ['0', 'jobId']); + return { + buildBatchArn: _.get(buildInfos, [ buildId, '0', 'buildBatchArn' ]), + projectName: _.get(buildInfos, [ buildId, '0', 'projectName' ]), + buildComplete: _.get(buildInfos, [ buildId, '0', 'buildComplete' ]), + cbJobDetails: _.get(buildInfos, [ buildId, '0' ]), + buildStatus: _.get(buildInfos, [ buildId, '0', 'buildStatus' ]) + }; +} + + +/** + * Merges stale resources and returns a list grouped by the CodeBuild jobId. Amplify Apps that don't have + * any backend environment are grouped as Orphan apps and apps that have Backend created by different CodeBuild jobs are + * grouped as MULTI_JOB_APP. Any resource that do not have a CodeBuild job is grouped under UNKNOWN + */ +const mergeResourcesByCCIJob = async ( + amplifyApp: AmplifyAppInfo[], + cfnStacks: StackInfo[], + s3Buckets: S3BucketInfo[], + orphanS3Buckets: S3BucketInfo[], + orphanIamRoles: IamRoleInfo[], +): Promise> => { + const result: Record = {}; + + const stacksByJobId = _.groupBy(cfnStacks, (stack: StackInfo) => _.get(stack, ['jobId'], UNKNOWN)); + + const bucketByJobId = _.groupBy(s3Buckets, (bucketInfo: S3BucketInfo) => _.get(bucketInfo, ['jobId'], UNKNOWN)); + + const amplifyAppByJobId = _.groupBy(amplifyApp, (appInfo: AmplifyAppInfo) => { + if (Object.keys(appInfo.backends).length === 0) { + return ORPHAN; + } + + const buildIds = _.groupBy(appInfo.backends, backendInfo => _.get(backendInfo, ['jobId'], UNKNOWN)); + if (Object.keys(buildIds).length === 1) { + return Object.keys(buildIds)[0]; + } + + return MULTI_JOB_APP; + }); + const codeBuildJobIds: string[] = _.uniq([...Object.keys(stacksByJobId), ...Object.keys(bucketByJobId), ...Object.keys(amplifyAppByJobId)]) + .filter((jobId: string) => jobId !== UNKNOWN && jobId !== ORPHAN && jobId !== MULTI_JOB_APP) + const buildInfos = await getJobCodeBuildDetails(codeBuildJobIds); + const buildInfosByJobId = _.groupBy(buildInfos, (build: CodeBuild.Build) => _.get(build, ['id'])); + _.mergeWith( + result, + _.pickBy(amplifyAppByJobId, (__, key) => key !== MULTI_JOB_APP), + (val, src, key) => ({ + ...val, + ...extractCCIJobInfo(src, buildInfosByJobId), + jobId: key, + amplifyApps: src, + }), + ); + + _.mergeWith( + result, + stacksByJobId, + (__: unknown, key: string) => key !== ORPHAN, + (val, src, key) => ({ + ...val, + ...extractCCIJobInfo(src, buildInfosByJobId), + jobId: key, + stacks: src, + }), + ); + + _.mergeWith(result, bucketByJobId, (val, src, key) => ({ + ...val, + ...extractCCIJobInfo(src, buildInfosByJobId), + jobId: key, + buckets: src, + })); + + const orphanBuckets = { + [ORPHAN]: orphanS3Buckets, + }; + + _.mergeWith(result, orphanBuckets, (val, src, key) => ({ + ...val, + jobId: key, + buckets: src, + })); + + const orphanIamRolesGroup = { + [ORPHAN]: orphanIamRoles, + }; + + _.mergeWith(result, orphanIamRolesGroup, (val, src, key) => ({ + ...val, + jobId: key, + roles: src, + })); + + return result; +}; + +const deleteAmplifyApps = async (account: AWSAccountInfo, accountIndex: number, apps: AmplifyAppInfo[]): Promise => { + await Promise.all(apps.map(app => deleteAmplifyApp(account, accountIndex, app))); +}; + +const deleteAmplifyApp = async (account: AWSAccountInfo, accountIndex: number, app: AmplifyAppInfo): Promise => { + const { name, appId, region } = app; + console.log(`${generateAccountInfo(account, accountIndex)} Deleting App ${name}(${appId})`); + const amplifyClient = new aws.Amplify(getAWSConfig(account, region)); + try { + await amplifyClient.deleteApp({ appId }).promise(); + } catch (e) { + console.log(`${generateAccountInfo(account, accountIndex)} Deleting Amplify App ${appId} failed with the following error`, e); + if (e.code === 'ExpiredTokenException') { + handleExpiredTokenException(); + } + } +}; + +const deleteIamRoles = async (account: AWSAccountInfo, accountIndex: number, roles: IamRoleInfo[]): Promise => { + // Sending consecutive delete role requests is throwing Rate limit exceeded exception. + // We introduce a brief delay between batches + const batchSize = 20; + for (var i = 0; i < roles.length; i += batchSize) { + const rolesToDelete = roles.slice(i, i + batchSize); + await Promise.all(rolesToDelete.map(role => deleteIamRole(account, accountIndex, role))); + await sleep(5000); + } +}; + +const deleteIamRole = async (account: AWSAccountInfo, accountIndex: number, role: IamRoleInfo): Promise => { + const { name: roleName } = role; + try { + console.log(`${generateAccountInfo(account, accountIndex)} Deleting Iam Role ${roleName}`); + const iamClient = new aws.IAM(getAWSConfig(account)); + await deleteAttachedRolePolicies(account, accountIndex, roleName); + await deleteRolePolicies(account, accountIndex, roleName); + await iamClient.deleteRole({ RoleName: roleName }).promise(); + } catch (e) { + console.log(`${generateAccountInfo(account, accountIndex)} Deleting iam role ${roleName} failed with error ${e.message}`); + if (e.code === 'ExpiredTokenException') { + handleExpiredTokenException(); + } + } +}; + +const deleteAttachedRolePolicies = async ( + account: AWSAccountInfo, + accountIndex: number, + roleName: string, +): Promise => { + const iamClient = new aws.IAM(getAWSConfig(account)); + const rolePolicies = await iamClient.listAttachedRolePolicies({ RoleName: roleName }).promise(); + await Promise.all(rolePolicies.AttachedPolicies.map(policy => detachIamAttachedRolePolicy(account, accountIndex, roleName, policy))); +}; + +const detachIamAttachedRolePolicy = async ( + account: AWSAccountInfo, + accountIndex: number, + roleName: string, + policy: aws.IAM.AttachedPolicy, +): Promise => { + try { + console.log(`${generateAccountInfo(account, accountIndex)} Detach Iam Attached Role Policy ${policy.PolicyName}`); + const iamClient = new aws.IAM(getAWSConfig(account)); + await iamClient.detachRolePolicy({ RoleName: roleName, PolicyArn: policy.PolicyArn }).promise(); + } catch (e) { + console.log(`${generateAccountInfo(account, accountIndex)} Detach iam role policy ${policy.PolicyName} failed with error ${e.message}`); + if (e.code === 'ExpiredTokenException') { + handleExpiredTokenException(); + } + } +}; + +const deleteRolePolicies = async ( + account: AWSAccountInfo, + accountIndex: number, + roleName: string, +): Promise => { + const iamClient = new aws.IAM(getAWSConfig(account)); + const rolePolicies = await iamClient.listRolePolicies({ RoleName: roleName }).promise(); + await Promise.all(rolePolicies.PolicyNames.map(policy => deleteIamRolePolicy(account, accountIndex, roleName, policy))); +}; + +const deleteIamRolePolicy = async ( + account: AWSAccountInfo, + accountIndex: number, + roleName: string, + policyName: string, +): Promise => { + try { + console.log(`${generateAccountInfo(account, accountIndex)} Deleting Iam Role Policy ${policyName}`); + const iamClient = new aws.IAM(getAWSConfig(account)); + await iamClient.deleteRolePolicy({ RoleName: roleName, PolicyName: policyName }).promise(); + } catch (e) { + console.log(`${generateAccountInfo(account, accountIndex)} Deleting iam role policy ${policyName} failed with error ${e.message}`); + if (e.code === 'ExpiredTokenException') { + handleExpiredTokenException(); + } + } +}; + +const deleteBuckets = async (account: AWSAccountInfo, accountIndex: number, buckets: S3BucketInfo[]): Promise => { + await Promise.all(buckets.map(bucket => deleteBucket(account, accountIndex, bucket))); +}; + +const deleteBucket = async (account: AWSAccountInfo, accountIndex: number, bucket: S3BucketInfo): Promise => { + const { name } = bucket; + try { + console.log(`${generateAccountInfo(account, accountIndex)} Deleting S3 Bucket ${name}`); + const s3 = new aws.S3(getAWSConfig(account)); + await deleteS3Bucket(name, s3); + } catch (e) { + console.log(`${generateAccountInfo(account, accountIndex)} Deleting bucket ${name} failed with error ${e.message}`); + if (e.code === 'ExpiredTokenException') { + handleExpiredTokenException(); + } + } +}; + +const deleteCfnStacks = async (account: AWSAccountInfo, accountIndex: number, stacks: StackInfo[]): Promise => { + await Promise.all(stacks.map(stack => deleteCfnStack(account, accountIndex, stack))); +}; + +const deleteCfnStack = async (account: AWSAccountInfo, accountIndex: number, stack: StackInfo): Promise => { + const { stackName, region, resourcesFailedToDelete } = stack; + const resourceToRetain = resourcesFailedToDelete.length ? resourcesFailedToDelete : undefined; + console.log(`${generateAccountInfo(account, accountIndex)} Deleting CloudFormation stack ${stackName}`); + try { + const cfnClient = new aws.CloudFormation(getAWSConfig(account, region)); + await cfnClient.deleteStack({ StackName: stackName, RetainResources: resourceToRetain }).promise(); + await cfnClient.waitFor('stackDeleteComplete', { StackName: stackName }).promise(); + } catch (e) { + console.log(`Deleting CloudFormation stack ${stackName} failed with error ${e.message}`); + if (e.code === 'ExpiredTokenException') { + handleExpiredTokenException(); + } + } +}; + +const generateReport = (jobs: _.Dictionary): void => { + fs.ensureFileSync(reportPath); + fs.writeFileSync(reportPath, JSON.stringify(jobs, null, 4)); +}; + +/** + * While we basically fan-out deletes elsewhere in this script, leaving the app->cfn->bucket delete process + * serial within a given account, it's not immediately clear if this is necessary, but seems possibly valuable. + */ +const deleteResources = async ( + account: AWSAccountInfo, + accountIndex: number, + staleResources: Record, +): Promise => { + for (const jobId of Object.keys(staleResources)) { + const resources = staleResources[jobId]; + if (resources.amplifyApps) { + await deleteAmplifyApps(account, accountIndex, Object.values(resources.amplifyApps)); + } + + if (resources.stacks) { + await deleteCfnStacks(account, accountIndex, Object.values(resources.stacks)); + } + + if (resources.buckets) { + await deleteBuckets(account, accountIndex, Object.values(resources.buckets)); + } + + if (resources.roles) { + await deleteIamRoles(account, accountIndex, Object.values(resources.roles)); + } + } +}; + +/** + * Grab the right CircleCI filter based on args passed in. + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const getFilterPredicate = (args: any): JobFilterPredicate => { + const filterByJobId = (jobId: string) => (job: ReportEntry) => job.jobId === jobId; + const filterByBuildBatchArn = (buildBatchArn: string) => (job: ReportEntry) => job.buildBatchArn === buildBatchArn; + const filterAllStaleResources = () => (job: ReportEntry) => job.buildComplete || job.jobId === ORPHAN; + + if (args._.length === 0) { + return filterAllStaleResources(); + } + if (args._[0] === 'buildBatchArn') { + return filterByBuildBatchArn(args.buildBatchArn as string); + } + if (args._[0] === 'job') { + return filterByJobId(args.jobId as string); + } + throw Error('Invalid args config'); +}; + +/** + * Retrieve the accounts to process for potential cleanup. By default we will attempt + * to get all accounts within the root account organization. + */ +const getAccountsToCleanup = async (): Promise => { + // This script runs using the codebuild project role to begin with + const stsClient = new aws.STS({ + apiVersion: '2011-06-15' + }); + const assumeRoleResForE2EParent = await stsClient + .assumeRole({ + RoleArn: process.env.TEST_ACCOUNT_ROLE, + RoleSessionName: `testSession${Math.floor(Math.random() * 100000)}`, + // One hour + DurationSeconds: 1 * 60 * 60, + }) + .promise(); + const e2eParentAccountCred = { + accessKeyId: assumeRoleResForE2EParent.Credentials.AccessKeyId, + secretAccessKey: assumeRoleResForE2EParent.Credentials.SecretAccessKey, + sessionToken: assumeRoleResForE2EParent.Credentials.SessionToken + } + const stsClientForE2E = new aws.STS({ + apiVersion: '2011-06-15', + credentials: e2eParentAccountCred + }); + const parentAccountIdentity = await stsClientForE2E.getCallerIdentity().promise() + const orgApi = new aws.Organizations({ + apiVersion: '2016-11-28', + // the region where the organization exists + region: 'us-east-1', + credentials: e2eParentAccountCred + }); + try { + const orgAccounts = await orgApi.listAccounts().promise(); + const accountCredentialPromises = orgAccounts.Accounts.map(async account => { + if (account.Id === parentAccountIdentity.Account) { + return { + accountId: account.Id, + ...e2eParentAccountCred + }; + } + const randomNumber = Math.floor(Math.random() * 100000); + const assumeRoleRes = await stsClientForE2E + .assumeRole({ + RoleArn: `arn:aws:iam::${account.Id}:role/OrganizationAccountAccessRole`, + RoleSessionName: `testSession${randomNumber}`, + // One hour + DurationSeconds: 1 * 60 * 60, + }) + .promise(); + return { + accountId: account.Id, + accessKeyId: assumeRoleRes.Credentials.AccessKeyId, + secretAccessKey: assumeRoleRes.Credentials.SecretAccessKey, + sessionToken: assumeRoleRes.Credentials.SessionToken, + }; + }); + return await Promise.all(accountCredentialPromises); + } catch (e) { + console.error(e); + console.log('Error assuming child account role. This could be because the script is already running from within a child account. Running on current AWS account only.'); + return [ + { + accountId: parentAccountIdentity.Account, + ...e2eParentAccountCred + }, + ]; + } +}; + +const cleanupAccount = async (account: AWSAccountInfo, accountIndex: number, filterPredicate: JobFilterPredicate): Promise => { + const appPromises = AWS_REGIONS_TO_RUN_TESTS.map(region => getAmplifyApps(account, region)); + const stackPromises = AWS_REGIONS_TO_RUN_TESTS.map(region => getStacks(account, region)); + const bucketPromise = getS3Buckets(account); + const orphanBucketPromise = getOrphanS3TestBuckets(account); + const orphanIamRolesPromise = getOrphanTestIamRoles(account); + + const apps = (await Promise.all(appPromises)).flat(); + const stacks = (await Promise.all(stackPromises)).flat(); + const buckets = await bucketPromise; + const orphanBuckets = await orphanBucketPromise; + const orphanIamRoles = await orphanIamRolesPromise; + + const allResources = await mergeResourcesByCCIJob(apps, stacks, buckets, orphanBuckets, orphanIamRoles); + const staleResources = _.pickBy(allResources, filterPredicate); + + generateReport(staleResources); + await deleteResources(account, accountIndex, staleResources); + console.log(`${generateAccountInfo(account, accountIndex)} Cleanup done!`); +}; + +const generateAccountInfo = (account: AWSAccountInfo, accountIndex: number): string => { + return (`[ACCOUNT ${accountIndex}][${account.accountId}]`); +}; + +/** + * Execute the cleanup script. + * Cleanup will happen in parallel across all accounts within a given organization, + * based on the requested filter parameters (i.e. for a given workflow, job, or all stale resources). + * Logs are emitted for given account ids anywhere we've fanned out, but we use an indexing scheme instead + * of account ids since the logs these are written to will be effectively public. + */ +const cleanup = async (): Promise => { + const args = yargs + .command('*', 'clean up all the stale resources') + .command('buildBatchArn ', 'clean all the resources created by batch build', _yargs => { + _yargs.positional('buildBatchArn', { + describe: 'ARN of batch build', + type: 'string', + demandOption: '', + }); + }) + .command('job ', 'clean all the resource created by a job', _yargs => { + _yargs.positional('jobId', { + describe: 'job id of the job', + type: 'string', + }); + }) + .help().argv; + config(); + + const filterPredicate = getFilterPredicate(args); + const accounts = await getAccountsToCleanup(); + accounts.map((account, i) => { + console.log(`${generateAccountInfo(account, i)} is under cleanup`); + }); + await Promise.all(accounts.map((account, i) => cleanupAccount(account, i, filterPredicate))); + console.log('Done cleaning all accounts!'); +}; + +cleanup(); diff --git a/packages/amplify-codegen-e2e-tests/src/init-special-cases/index.ts b/packages/amplify-codegen-e2e-tests/src/init-special-cases/index.ts index d26ab4d28..0490c7ffa 100644 --- a/packages/amplify-codegen-e2e-tests/src/init-special-cases/index.ts +++ b/packages/amplify-codegen-e2e-tests/src/init-special-cases/index.ts @@ -1,5 +1,5 @@ import path from 'path'; -import { nspawn as spawn, getCLIPath, singleSelect, amplifyRegions, addCircleCITags, KEY_DOWN_ARROW } from '@aws-amplify/amplify-codegen-e2e-core'; +import { nspawn as spawn, getCLIPath, singleSelect, amplifyRegions, addCITags, KEY_DOWN_ARROW } from '@aws-amplify/amplify-codegen-e2e-core'; import fs from 'fs-extra'; import os from 'os'; @@ -42,7 +42,7 @@ export async function initWithoutCredentialFileAndNoNewUserSetup(projRoot) { } async function initWorkflow(cwd: string, settings: { accessKeyId: string; secretAccessKey: string; region: string }): Promise { - addCircleCITags(cwd); + addCITags(cwd); return new Promise((resolve, reject) => { let chain = spawn(getCLIPath(), ['init'], { From b435d50818e9b995a770f109a7e79a1d1cd430ab Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Thu, 13 Jul 2023 10:29:19 -0700 Subject: [PATCH 14/21] feat: support e2e workflow on codebuild --- .codebuild/e2e_workflow.yml | 27 +++++--- .codebuild/e2e_workflow_base.yml | 11 ++- .codebuild/run_e2e_tests.yml | 5 +- .codebuild/run_ios_modelgen_e2e_test.yml | 27 ++++++++ .../scripts/run-ios-modelgen-e2e-test.sh | 68 +++++++++++++++++++ .../amplify-codegen-e2e-core/package.json | 6 +- .../src/categories/codegen.ts | 14 ++++ .../amplify-codegen-e2e-core/src/index.ts | 11 ++- .../src/__tests__/build-app-swift.test.ts | 16 ++--- .../model-introspection-codegen.test.ts | 6 +- .../src/configure_tests.ts | 9 ++- scripts/split-e2e-tests-codebuild.ts | 7 +- 12 files changed, 171 insertions(+), 36 deletions(-) create mode 100644 .codebuild/run_ios_modelgen_e2e_test.yml create mode 100644 .codebuild/scripts/run-ios-modelgen-e2e-test.sh diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml index 3d06ed2e5..161f7e9a3 100644 --- a/.codebuild/e2e_workflow.yml +++ b/.codebuild/e2e_workflow.yml @@ -2,7 +2,7 @@ version: 0.2 env: shell: bash - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE batch: fast-fail: false build-graph: @@ -28,11 +28,20 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux + - identifier: build_app_swift + buildspec: .codebuild/run_ios_modelgen_e2e_test.yml + env: + compute-type: BUILD_GENERAL1_LARGE + variables: + TEST_SUITE: src/__tests__/build-app-swift.test.ts + CLI_REGION: us-east-2 + depend-on: + - publish_to_local_registry - identifier: >- add_codegen_ios_configure_codegen_android_configure_codegen_js_graphql_codegen_android buildspec: .codebuild/run_e2e_tests.yml env: - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE variables: TEST_SUITE: >- src/__tests__/add-codegen-ios.test.ts|src/__tests__/configure-codegen-android.test.ts|src/__tests__/configure-codegen-js.test.ts|src/__tests__/graphql-codegen-android.test.ts @@ -43,7 +52,7 @@ batch: graphql_codegen_js_remove_codegen_android_remove_codegen_ios_add_codegen_android buildspec: .codebuild/run_e2e_tests.yml env: - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE variables: TEST_SUITE: >- src/__tests__/graphql-codegen-js.test.ts|src/__tests__/remove-codegen-android.test.ts|src/__tests__/remove-codegen-ios.test.ts|src/__tests__/add-codegen-android.test.ts @@ -54,7 +63,7 @@ batch: configure_codegen_ios_datastore_modelgen_android_datastore_modelgen_js_feature_flags buildspec: .codebuild/run_e2e_tests.yml env: - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE variables: TEST_SUITE: >- src/__tests__/configure-codegen-ios.test.ts|src/__tests__/datastore-modelgen-android.test.ts|src/__tests__/datastore-modelgen-js.test.ts|src/__tests__/feature-flags.test.ts @@ -65,7 +74,7 @@ batch: graphql_codegen_ios_add_codegen_js_datastore_modelgen_ios_remove_codegen_js buildspec: .codebuild/run_e2e_tests.yml env: - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE variables: TEST_SUITE: >- src/__tests__/graphql-codegen-ios.test.ts|src/__tests__/add-codegen-js.test.ts|src/__tests__/datastore-modelgen-ios.test.ts|src/__tests__/remove-codegen-js.test.ts @@ -76,7 +85,7 @@ batch: datastore_modelgen_flutter_env_codegen_model_introspection_codegen_pull_codegen buildspec: .codebuild/run_e2e_tests.yml env: - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE variables: TEST_SUITE: >- src/__tests__/datastore-modelgen-flutter.test.ts|src/__tests__/env-codegen.test.ts|src/__tests__/model-introspection-codegen.test.ts|src/__tests__/pull-codegen.test.ts @@ -87,7 +96,7 @@ batch: push_codegen_ios_push_codegen_android_graphql_documents_generator_push_codegen_js buildspec: .codebuild/run_e2e_tests.yml env: - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE variables: TEST_SUITE: >- src/__tests__/push-codegen-ios.test.ts|src/__tests__/push-codegen-android.test.ts|src/__tests__/graphql-documents-generator.test.ts|src/__tests__/push-codegen-js.test.ts @@ -97,7 +106,7 @@ batch: - identifier: build_app_ts buildspec: .codebuild/run_e2e_tests.yml env: - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE variables: TEST_SUITE: src/__tests__/build-app-ts.test.ts CLI_REGION: ap-southeast-1 @@ -106,7 +115,7 @@ batch: - identifier: cleanup_e2e_resources buildspec: .codebuild/cleanup_e2e_resources.yml env: - compute-type: BUILD_GENERAL1_SMALL + compute-type: BUILD_GENERAL1_MEDIUM depend-on: - >- add_codegen_ios_configure_codegen_android_configure_codegen_js_graphql_codegen_android diff --git a/.codebuild/e2e_workflow_base.yml b/.codebuild/e2e_workflow_base.yml index 74d4e57bc..2a707ecf3 100644 --- a/.codebuild/e2e_workflow_base.yml +++ b/.codebuild/e2e_workflow_base.yml @@ -1,7 +1,7 @@ version: 0.2 env: shell: bash - compute-type: BUILD_GENERAL1_MEDIUM + compute-type: BUILD_GENERAL1_LARGE batch: fast-fail: false @@ -28,3 +28,12 @@ batch: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - build_linux + - identifier: build_app_swift + buildspec: .codebuild/run_ios_modelgen_e2e_test.yml + env: + compute-type: BUILD_GENERAL1_LARGE + variables: + TEST_SUITE: src/__tests__/build-app-swift.test.ts + CLI_REGION: us-east-2 + depend-on: + - publish_to_local_registry diff --git a/.codebuild/run_e2e_tests.yml b/.codebuild/run_e2e_tests.yml index 4a17505cf..d2a3a8f2e 100644 --- a/.codebuild/run_e2e_tests.yml +++ b/.codebuild/run_e2e_tests.yml @@ -7,13 +7,10 @@ env: CI: true CODEBUILD: true NODE_OPTIONS: --max-old-space-size=8096 - # mock values to test artifact scanning - ENV_VAR_WITH_SECRETS: 'MOCK_ENV_VAR_FOR_SCANNING_SECRETS' - MOCK_ENV_VAR_FOR_SCANNING_SECRETS: 'abc123xyz' + phases: build: commands: - # you can provide a codebuild source version to use old cache and skip all other jobs :) - source ./shared-scripts.sh && _runE2ETestsLinux post_build: commands: diff --git a/.codebuild/run_ios_modelgen_e2e_test.yml b/.codebuild/run_ios_modelgen_e2e_test.yml new file mode 100644 index 000000000..d6c7552b9 --- /dev/null +++ b/.codebuild/run_ios_modelgen_e2e_test.yml @@ -0,0 +1,27 @@ +version: 0.2 +env: + shell: bash + variables: + AMPLIFY_DIR: /root/.npm-global/lib/node_modules/@aws-amplify/cli-internal/bin + AMPLIFY_PATH: /root/.npm-global/lib/node_modules/@aws-amplify/cli-internal/bin/amplify + CI: true + CODEBUILD: true + NODE_OPTIONS: --max-old-space-size=8096 +phases: + build: + commands: + - source ./shared-scripts.sh && _runE2ETestsLinux + - export PATH_TO_MODELS=$CODEBUILD_SRC_DIR/packages/amplify-codegen-e2e-tests/test-apps/swift/amplify/generated + - cd $PATH_TO_MODELS && zip -r models.zip models + - aws s3 cp $PATH_TO_MODELS/models.zip s3://$ARTIFACT_BUCKET_NAME/models.zip + - export MODELS_S3_URL=$(aws s3 presign s3://$ARTIFACT_BUCKET_NAME/models.zip --expires-in 3600) + - cd $CODEBUILD_SRC_DIR && ./.codebuild/scripts/run-ios-modelgen-e2e-test.sh + post_build: + commands: + - aws sts get-caller-identity + - source ./shared-scripts.sh && _scanArtifacts + +artifacts: + files: + - $CODEBUILD_SRC_DIR/packages/amplify-codegen-e2e-tests/amplify-e2e-reports/* + discard-paths: yes \ No newline at end of file diff --git a/.codebuild/scripts/run-ios-modelgen-e2e-test.sh b/.codebuild/scripts/run-ios-modelgen-e2e-test.sh new file mode 100644 index 000000000..fc0a4da05 --- /dev/null +++ b/.codebuild/scripts/run-ios-modelgen-e2e-test.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +REPO_OWNER="aws-amplify" +REPO_NAME="amplify-codegen" + +# Function to get the latest workflow run ID +get_latest_run_id() { + latest_run_id=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/runs?event=workflow_dispatch&per_page=1" | \ + jq -r '.workflow_runs[0].id') + echo "$latest_run_id" +} + +# Function to get the status of a workflow run +get_run_status() { + run_id="$1" + run_status=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/runs/$run_id" | \ + jq -r '.status') + echo "$run_status" +} + +# Function to trigger a workflow dispatch event to run the e2e test +trigger_workflow() { + curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/workflows/build-swift-modelgen.yml/dispatches" \ + -d "{\"ref\":\"main\", \"inputs\":{\"MODELS_S3_URL\":\"${MODELS_S3_URL}\"}}" +} + +main() { + trigger_workflow + sleep 10 # Wait to allow for the workflow to be triggered + + # Get the latest run ID and initial status + latest_run_id=$(get_latest_run_id) + echo "Latest run ID: $latest_run_id" + latest_status=$(get_run_status "$latest_run_id") + timeout=$((SECONDS + 600)) # 600 seconds = 10 minutes + + # Continuously check for status until completion + while [[ "$latest_status" != "completed" && "$SECONDS" -lt "$timeout" ]]; do + echo "Test run status: $latest_status" + sleep 10 # Wait before checking again + latest_status=$(get_run_status "$latest_run_id") + done + + # Check if the run completed within the specified duration + if [[ "$latest_status" != "completed" ]]; then + echo "The test run did not complete within the specified duration." + exit 1 + fi + + # Check if the run failed and throw an error if it did + if [[ "$latest_status" == "failure" ]]; then + echo "The test run failed." + exit 1 + else + echo "The test run succeeded." + fi +} + +main diff --git a/packages/amplify-codegen-e2e-core/package.json b/packages/amplify-codegen-e2e-core/package.json index 3007123fe..41d070398 100644 --- a/packages/amplify-codegen-e2e-core/package.json +++ b/packages/amplify-codegen-e2e-core/package.json @@ -32,7 +32,11 @@ "rimraf": "^3.0.0", "strip-ansi": "^6.0.0", "throat": "^5.0.0", - "uuid": "7.0.1" + "uuid": "7.0.1", + "ini": "^3.0.1" + }, + "devDependencies": { + "@types/ini": "^1.3.31" }, "peerDependencies": { "@aws-amplify/amplify-cli-core": "^4.0.0", diff --git a/packages/amplify-codegen-e2e-core/src/categories/codegen.ts b/packages/amplify-codegen-e2e-core/src/categories/codegen.ts index 98c4c72c7..c0708d11e 100644 --- a/packages/amplify-codegen-e2e-core/src/categories/codegen.ts +++ b/packages/amplify-codegen-e2e-core/src/categories/codegen.ts @@ -147,6 +147,20 @@ export function generateModelIntrospection(cwd: string, settings: { outputDir?: }); } +export function generateModelIntrospectionWithError(cwd: string, errMessage: string, settings: { outputDir?: string} = {}): Promise { + return new Promise((resolve, reject) => { + spawn(getCLIPath(), ['codegen', 'model-introspection', '--output-dir', settings.outputDir ?? ''], { cwd, stripColors: true }) + .wait(errMessage) + .run((err: Error) => { + if (!err) { + resolve(); + } else { + reject(err); + } + }); + }); +} + // CLI workflow to add codegen to non-Amplify JS project export function addCodegenNonAmplifyJS(cwd: string): Promise { return new Promise((resolve, reject) => { diff --git a/packages/amplify-codegen-e2e-core/src/index.ts b/packages/amplify-codegen-e2e-core/src/index.ts index 8fc03fa86..6c441701f 100644 --- a/packages/amplify-codegen-e2e-core/src/index.ts +++ b/packages/amplify-codegen-e2e-core/src/index.ts @@ -3,6 +3,8 @@ import * as path from 'path'; import * as fs from 'fs-extra'; import { spawnSync, execSync } from 'child_process'; import { v4 as uuid } from 'uuid'; +import * as ini from 'ini'; +import { pathManager } from '@aws-amplify/amplify-cli-core'; export * from './configure/'; export * from './init/'; @@ -29,7 +31,14 @@ export function getCLIPath(testingWithLatestCodebase = false) { } export function isCI(): boolean { - return process.env.CI && process.env.CIRCLECI ? true : false; + return process.env.CI && (process.env.CIRCLECI || process.env.CODEBUILD) ? true : false; +} + +export function injectSessionToken(profileName: string) { + const credentialsContents = ini.parse(fs.readFileSync(pathManager.getAWSCredentialsFilePath()).toString()); + credentialsContents[profileName] = credentialsContents[profileName] || {}; + credentialsContents[profileName].aws_session_token = process.env.AWS_SESSION_TOKEN; + fs.writeFileSync(pathManager.getAWSCredentialsFilePath(), ini.stringify(credentialsContents)); } export function npmInstall(cwd: string) { diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/build-app-swift.test.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/build-app-swift.test.ts index 782c12b44..c2163b2ef 100644 --- a/packages/amplify-codegen-e2e-tests/src/__tests__/build-app-swift.test.ts +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/build-app-swift.test.ts @@ -1,13 +1,11 @@ import { initProjectWithQuickstart, DEFAULT_IOS_CONFIG, - addApiWithBlankSchemaAndConflictDetection, updateApiSchemaWithText, generateModels, - swiftBuild, } from '@aws-amplify/amplify-codegen-e2e-core'; const { schemas } = require('@aws-amplify/graphql-schema-test-library'); -import { existsSync, writeFileSync, readdirSync, rmSync, readFileSync } from 'fs'; +import { writeFileSync, readdirSync, readFileSync } from 'fs'; import path from 'path'; const skip = new Set([ @@ -30,20 +28,20 @@ describe('build app - Swift', () => { }); afterEach(async () => { - await rmSync(path.join(projectRoot, 'amplify', 'generated', 'models'), { recursive: true, force: true }); writeFileSync(path.join(projectRoot, 'swift.xcodeproj', 'project.pbxproj'), projectPBXProjCache); }); Object.entries(schemas).forEach(([schemaName, schema]) => { // @ts-ignore const testName = `builds with ${schemaName}: ${schema.description}`; + const schemaFolderName = schemaName.replace(/[^a-zA-Z0-9]/g, ''); + const outputDir = path.join(projectRoot, 'amplify', 'generated', 'models', schemaFolderName); const testFunction = async () => { // @ts-ignore const schemaText = `input AMPLIFY { globalAuthRule: AuthRule = { allow: public } }\n${schema.sdl}`; console.log(schemaText); // log so that circleci does not timeout updateApiSchemaWithText(projectRoot, 'amplifyDatasource', schemaText); - await generateModels(projectRoot); - await swiftBuild(projectRoot, { ...config, scheme: 'swift' }); + await generateModels(projectRoot, outputDir); }; if (skip.has(schemaName)) { it.skip(testName, testFunction); @@ -51,10 +49,4 @@ describe('build app - Swift', () => { it(testName, testFunction); } }); - - it('fails build with syntax error', async () => { - await generateModels(projectRoot); - await writeFileSync(path.join(projectRoot, 'amplify', 'generated', 'models', 'AmplifyModels.swift'), 'foo\nbar'); - await expect(swiftBuild(projectRoot, { ...config })).rejects.toThrowError(); - }); }); diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/model-introspection-codegen.test.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/model-introspection-codegen.test.ts index fd614eccf..18c4d7960 100644 --- a/packages/amplify-codegen-e2e-tests/src/__tests__/model-introspection-codegen.test.ts +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/model-introspection-codegen.test.ts @@ -1,4 +1,4 @@ -import { addApiWithoutSchema, createNewProjectDir, generateModelIntrospection, initJSProjectWithProfile, updateApiSchema } from "@aws-amplify/amplify-codegen-e2e-core"; +import { addApiWithoutSchema, createNewProjectDir, generateModelIntrospection, initJSProjectWithProfile, updateApiSchema, generateModelIntrospectionWithError } from "@aws-amplify/amplify-codegen-e2e-core"; import { deleteAmplifyProject } from '../codegen-tests-base'; import { isNotEmptyDir } from "../utils"; import { join } from 'path'; @@ -35,7 +35,7 @@ describe('Model Introspection Codegen test', () => { await addApiWithoutSchema(projectRoot, { apiName }); await updateApiSchema(projectRoot, apiName, schema); //generate introspection schema - await expect(generateModelIntrospection(projectRoot)).rejects.toThrowError(); + await generateModelIntrospectionWithError(projectRoot, 'Expected --output-dir flag to be set'); }); it('should throw error if the GraphQL schema is invalid', async () => { @@ -46,7 +46,7 @@ describe('Model Introspection Codegen test', () => { await updateApiSchema(projectRoot, apiName, invalidSchema); const outputDir = 'output'; //generate introspection schema - await expect(generateModelIntrospection(projectRoot, { outputDir })).rejects.toThrowError(); + await generateModelIntrospectionWithError(projectRoot, 'Unknown type', { outputDir }); }); it(`should handle a schema with connected PK`, async () => { diff --git a/packages/amplify-codegen-e2e-tests/src/configure_tests.ts b/packages/amplify-codegen-e2e-tests/src/configure_tests.ts index 46b6332ff..9d04364fb 100644 --- a/packages/amplify-codegen-e2e-tests/src/configure_tests.ts +++ b/packages/amplify-codegen-e2e-tests/src/configure_tests.ts @@ -1,4 +1,4 @@ -import { amplifyConfigure as configure, isCI } from '@aws-amplify/amplify-codegen-e2e-core'; +import { amplifyConfigure as configure, injectSessionToken, isCI } from '@aws-amplify/amplify-codegen-e2e-core'; async function setupAmplify() { if (isCI()) { @@ -11,9 +11,13 @@ async function setupAmplify() { await configure({ accessKeyId: AWS_ACCESS_KEY_ID, secretAccessKey: AWS_SECRET_ACCESS_KEY, - profileName: 'e2e-test-user', + profileName: 'amplify-integ-test-user', region: REGION, }); + + if (process.env.AWS_SESSION_TOKEN) { + injectSessionToken('amplify-integ-test-user'); + } } else { console.log('AWS Profile is already configured'); @@ -27,4 +31,5 @@ process.nextTick(async () => { console.log(e.stack); process.exit(1); } + process.exit(); }); diff --git a/scripts/split-e2e-tests-codebuild.ts b/scripts/split-e2e-tests-codebuild.ts index 624df27f4..7f32cbdee 100644 --- a/scripts/split-e2e-tests-codebuild.ts +++ b/scripts/split-e2e-tests-codebuild.ts @@ -165,13 +165,14 @@ const splitTests = ( tmp.env.variables.USE_PARENT_ACCOUNT = 1; } if (j.runSolo) { - tmp.env['compute-type'] = 'BUILD_GENERAL1_SMALL'; + tmp.env['compute-type'] = 'BUILD_GENERAL1_MEDIUM'; } result.push(tmp); } }); return result; }; + function main(): void { const configBase: any = loadConfigBase(); const baseBuildGraph = configBase.batch['build-graph']; @@ -180,7 +181,7 @@ function main(): void { identifier: 'run_e2e_tests', buildspec: '.codebuild/run_e2e_tests.yml', env: { - 'compute-type': 'BUILD_GENERAL1_MEDIUM', + 'compute-type': 'BUILD_GENERAL1_LARGE', }, 'depend-on': ['publish_to_local_registry'], }, @@ -193,7 +194,7 @@ function main(): void { identifier: 'cleanup_e2e_resources', buildspec: '.codebuild/cleanup_e2e_resources.yml', env: { - 'compute-type': 'BUILD_GENERAL1_SMALL' + 'compute-type': 'BUILD_GENERAL1_MEDIUM' }, 'depend-on': [allBuilds[0].identifier] } From dd635a0a41eeed4f74334f0443265e36ac055835 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Thu, 13 Jul 2023 14:28:01 -0700 Subject: [PATCH 15/21] feat: add android test --- .codebuild/e2e_workflow.yml | 13 +++++-- .../src/categories/codegen.ts | 35 ++++++++----------- .../src/__tests__/env-codegen.test.ts | 2 +- .../model-introspection-codegen.test.ts | 6 ++-- scripts/split-e2e-tests-codebuild.ts | 5 +-- 5 files changed, 32 insertions(+), 29 deletions(-) diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml index 161f7e9a3..8a639ee70 100644 --- a/.codebuild/e2e_workflow.yml +++ b/.codebuild/e2e_workflow.yml @@ -100,7 +100,7 @@ batch: variables: TEST_SUITE: >- src/__tests__/push-codegen-ios.test.ts|src/__tests__/push-codegen-android.test.ts|src/__tests__/graphql-documents-generator.test.ts|src/__tests__/push-codegen-js.test.ts - CLI_REGION: ap-northeast-1 + CLI_REGION: ap-southeast-1 depend-on: - publish_to_local_registry - identifier: build_app_ts @@ -109,7 +109,16 @@ batch: compute-type: BUILD_GENERAL1_LARGE variables: TEST_SUITE: src/__tests__/build-app-ts.test.ts - CLI_REGION: ap-southeast-1 + CLI_REGION: ap-southeast-2 + depend-on: + - publish_to_local_registry + - identifier: build_app_android + buildspec: .codebuild/run_e2e_tests.yml + env: + compute-type: BUILD_GENERAL1_MEDIUM + variables: + TEST_SUITE: src/__tests__/build-app-android.test.ts + CLI_REGION: ap-northeast-1 depend-on: - publish_to_local_registry - identifier: cleanup_e2e_resources diff --git a/packages/amplify-codegen-e2e-core/src/categories/codegen.ts b/packages/amplify-codegen-e2e-core/src/categories/codegen.ts index c0708d11e..d8010d10c 100644 --- a/packages/amplify-codegen-e2e-core/src/categories/codegen.ts +++ b/packages/amplify-codegen-e2e-core/src/categories/codegen.ts @@ -1,11 +1,16 @@ import { AmplifyFrontend } from '../utils'; import { getCLIPath, nspawn as spawn } from '..'; -export function generateModels(cwd: string, outputDir?: string): Promise { +export function generateModels(cwd: string, outputDir?: string, settings: { errMessage?: string } = {}): Promise { return new Promise((resolve, reject) => { const params = ['codegen', 'models', ...(outputDir ? ['--output-dir', outputDir] : [])] - spawn(getCLIPath(), params, { cwd, stripColors: true }) - .run((err: Error) => { + const chain = spawn(getCLIPath(), params, { cwd, stripColors: true }); + + if (settings?.errMessage) { + chain.wait(settings.errMessage); + } + + chain.run((err: Error) => { if (!err) { resolve(); } else { @@ -134,24 +139,13 @@ export function configureCodegen(cwd: string, settings: any = {}): Promise }); } -export function generateModelIntrospection(cwd: string, settings: { outputDir?: string} = {}): Promise { - return new Promise((resolve, reject) => { - spawn(getCLIPath(), ['codegen', 'model-introspection', '--output-dir', settings.outputDir ?? ''], { cwd, stripColors: true }) - .run((err: Error) => { - if (!err) { - resolve(); - } else { - reject(err); - } - }); - }); -} - -export function generateModelIntrospectionWithError(cwd: string, errMessage: string, settings: { outputDir?: string} = {}): Promise { +export function generateModelIntrospection(cwd: string, settings: { outputDir?: string, errMessage?: string} = {}): Promise { return new Promise((resolve, reject) => { - spawn(getCLIPath(), ['codegen', 'model-introspection', '--output-dir', settings.outputDir ?? ''], { cwd, stripColors: true }) - .wait(errMessage) - .run((err: Error) => { + const chain = spawn(getCLIPath(), ['codegen', 'model-introspection', '--output-dir', settings.outputDir ?? ''], { cwd, stripColors: true }); + if (settings?.errMessage) { + chain.wait(settings.errMessage); + } + chain.run((err: Error) => { if (!err) { resolve(); } else { @@ -188,4 +182,3 @@ export function addCodegenNonAmplifyJS(cwd: string): Promise { }); }); } - diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/env-codegen.test.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/env-codegen.test.ts index 6e9fd8409..2d6da90ac 100644 --- a/packages/amplify-codegen-e2e-tests/src/__tests__/env-codegen.test.ts +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/env-codegen.test.ts @@ -35,7 +35,7 @@ describe('env codegen tests', () => { await addEnvironment(projectRoot, { envName: 'envb' }); //update schema to a invalid one in envb and generate models updateApiSchema(projectRoot, apiName, schemaWithError) - await expect(generateModels(projectRoot)).rejects.toThrowError(); + await expect(generateModels(projectRoot, undefined, { errMessage: 'Unknown type' })); //checkout back to enva and generate models await checkoutEnvironment(projectRoot, { envName: 'enva', withRestore: true }); await expect(generateModels(projectRoot)).resolves.not.toThrow(); diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/model-introspection-codegen.test.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/model-introspection-codegen.test.ts index 18c4d7960..0b3bdfade 100644 --- a/packages/amplify-codegen-e2e-tests/src/__tests__/model-introspection-codegen.test.ts +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/model-introspection-codegen.test.ts @@ -1,4 +1,4 @@ -import { addApiWithoutSchema, createNewProjectDir, generateModelIntrospection, initJSProjectWithProfile, updateApiSchema, generateModelIntrospectionWithError } from "@aws-amplify/amplify-codegen-e2e-core"; +import { addApiWithoutSchema, createNewProjectDir, generateModelIntrospection, initJSProjectWithProfile, updateApiSchema } from "@aws-amplify/amplify-codegen-e2e-core"; import { deleteAmplifyProject } from '../codegen-tests-base'; import { isNotEmptyDir } from "../utils"; import { join } from 'path'; @@ -35,7 +35,7 @@ describe('Model Introspection Codegen test', () => { await addApiWithoutSchema(projectRoot, { apiName }); await updateApiSchema(projectRoot, apiName, schema); //generate introspection schema - await generateModelIntrospectionWithError(projectRoot, 'Expected --output-dir flag to be set'); + await generateModelIntrospection(projectRoot, { errMessage: 'Expected --output-dir flag to be set'}); }); it('should throw error if the GraphQL schema is invalid', async () => { @@ -46,7 +46,7 @@ describe('Model Introspection Codegen test', () => { await updateApiSchema(projectRoot, apiName, invalidSchema); const outputDir = 'output'; //generate introspection schema - await generateModelIntrospectionWithError(projectRoot, 'Unknown type', { outputDir }); + await generateModelIntrospection(projectRoot,{ outputDir, errMessage: 'Unknown type'}); }); it(`should handle a schema with connected PK`, async () => { diff --git a/scripts/split-e2e-tests-codebuild.ts b/scripts/split-e2e-tests-codebuild.ts index 7f32cbdee..c2543a92e 100644 --- a/scripts/split-e2e-tests-codebuild.ts +++ b/scripts/split-e2e-tests-codebuild.ts @@ -21,10 +21,11 @@ const REPO_ROOT = join(__dirname, '..'); const TEST_TIMINGS_PATH = join(REPO_ROOT, 'scripts', 'cci', 'test-timings.data.json'); const CODEBUILD_CONFIG_BASE_PATH = join(REPO_ROOT, '.codebuild', 'e2e_workflow_base.yml'); const CODEBUILD_GENERATE_CONFIG_PATH = join(REPO_ROOT, '.codebuild', 'e2e_workflow.yml'); -const RUN_SOLO = []; +const RUN_SOLO = [ + 'src/__tests__/build-app-android.test.ts', +]; const EXCLUDE_TESTS = [ 'src/__tests__/build-app-swift.test.ts', - 'src/__tests__/build-app-android.test.ts', ]; export function loadConfigBase() { From a66328e79cf078815da0386178405518bbaede40 Mon Sep 17 00:00:00 2001 From: Al Harris <91494052+alharris-at@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:30:08 -0700 Subject: [PATCH 16/21] chore: dependabot updates (#616) --- .../amplify-codegen-e2e-tests/package.json | 6 +- yarn.lock | 3649 +++++++++-------- 2 files changed, 1879 insertions(+), 1776 deletions(-) diff --git a/packages/amplify-codegen-e2e-tests/package.json b/packages/amplify-codegen-e2e-tests/package.json index f030252d2..2ce6cbaa4 100644 --- a/packages/amplify-codegen-e2e-tests/package.json +++ b/packages/amplify-codegen-e2e-tests/package.json @@ -25,9 +25,9 @@ "dependencies": { "@aws-amplify/amplify-codegen-e2e-core": "1.4.9", "@aws-amplify/graphql-schema-test-library": "^1.1.18", - "aws-amplify": "^4.3.26", - "aws-appsync": "^4.0.3", - "aws-sdk": "^2.845.0", + "aws-amplify": "^5.3.3", + "aws-appsync": "^4.1.9", + "aws-sdk": "^2.1413.0", "circleci-api": "^4.1.3", "dotenv": "^8.2.0", "esm": "^3.2.25", diff --git a/yarn.lock b/yarn.lock index 9d8eb70f5..3d0384778 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,13 +41,13 @@ yargs "^15.3.1" "@aws-amplify/amplify-cli-core@^4.0.6": - version "4.0.8" - resolved "https://registry.npmjs.org/@aws-amplify/amplify-cli-core/-/amplify-cli-core-4.0.8.tgz#32837718cd614200a50d7f3c8367246c98f4a6cf" - integrity sha512-qjq55O40ddtfLjhtZYoleLO7Xxa0dHmi4jz0ri7yCz+W4+P5/N9qjr70BP17kZIjRQBelbZbog4eAT9GS2W6CA== + version "4.1.0" + resolved "https://registry.npmjs.org/@aws-amplify/amplify-cli-core/-/amplify-cli-core-4.1.0.tgz#d851ce760271a767c72d93862ab24493f1effc4d" + integrity sha512-m9EiXMkgVMGDjAd71784NbYx4dWmu1SeFmkanx40X+nx1Bg8koYIUEAuUuTQkFFYpyBy/wwooJudatNTv1V25g== dependencies: - "@aws-amplify/amplify-cli-logger" "1.3.2" - "@aws-amplify/amplify-prompts" "2.7.0" - "@aws-amplify/graphql-transformer-interfaces" "^2.2.0" + "@aws-amplify/amplify-cli-logger" "1.3.3" + "@aws-amplify/amplify-prompts" "2.8.0" + "@aws-amplify/graphql-transformer-interfaces" "^2.2.1" "@yarnpkg/lockfile" "^1.1.0" ajv "^6.12.6" aws-cdk-lib "~2.68.0" @@ -72,184 +72,198 @@ semver "^7.3.5" typescript-json-schema "~0.52.0" which "^2.0.2" - yaml "^2.2.1" + yaml "^2.2.2" -"@aws-amplify/amplify-cli-logger@1.3.2": - version "1.3.2" - resolved "https://registry.npmjs.org/@aws-amplify/amplify-cli-logger/-/amplify-cli-logger-1.3.2.tgz#802667e38276361b78d138a770f6e9f1a009d3a3" - integrity sha512-dQ7Dwh2MNIjhnqx+c48aDjsrsTMU391n23sF5fRyxoC+tmxvaMbz3N3g6XeciwNb1OB5zMBI5zCAjbm94k1S+A== +"@aws-amplify/amplify-cli-logger@1.3.3": + version "1.3.3" + resolved "https://registry.npmjs.org/@aws-amplify/amplify-cli-logger/-/amplify-cli-logger-1.3.3.tgz#d50d006f71b1a8f9e6bfe71f8e691c96d307aa04" + integrity sha512-GTaTMu6p5xJqimiCuzv0NDdx7/APV5YgOFtpX6GQoTIJ7jjCMB1MmKyfUKrt843ATQpfZ0ClokkyGJlzgMvYzw== dependencies: winston "^3.3.3" winston-daily-rotate-file "^4.5.0" -"@aws-amplify/amplify-cli-shared-interfaces@1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@aws-amplify/amplify-cli-shared-interfaces/-/amplify-cli-shared-interfaces-1.2.2.tgz#e717ef421379837519ed6cba42226874574fe505" - integrity sha512-iZZAhfPUBRZr5b4S5YnpN98oYQfZSMMxo0J/fpDQ7mh3CFOGdWcg6vIU3M9tqGZWUNYi3P0MkzreOgDE+9yJ6A== +"@aws-amplify/amplify-cli-shared-interfaces@1.2.3": + version "1.2.3" + resolved "https://registry.npmjs.org/@aws-amplify/amplify-cli-shared-interfaces/-/amplify-cli-shared-interfaces-1.2.3.tgz#01afc1508e11faadeb5d45298e8b5c486dc272b0" + integrity sha512-c/c82OMAFZvgjkfeMFE/h1ycqC7218IfeVNLN7rVGMS98hRs810zRXvFc1w8uI+zwUiDV8+bzAuzODqt5aC9iA== -"@aws-amplify/amplify-prompts@2.7.0": - version "2.7.0" - resolved "https://registry.npmjs.org/@aws-amplify/amplify-prompts/-/amplify-prompts-2.7.0.tgz#7cc4ca52478c8a9e07d7db2dd792f4f708679ec3" - integrity sha512-d0SXGD4vxjcx68npbMH/XH9dvGtT2kA0i9/u5TZWK/ILfecDtSfa59/jmrStLJvMyv8rmo37GvhCs+6fd1L5WQ== +"@aws-amplify/amplify-prompts@2.8.0": + version "2.8.0" + resolved "https://registry.npmjs.org/@aws-amplify/amplify-prompts/-/amplify-prompts-2.8.0.tgz#b8ce0a4242a4277c58cbf8a30ffb89546568bc22" + integrity sha512-tc0iVyAYNC+nSQaGs5dYIytpfaD3/Dv27tIMis+skzBPLQYd9BwxF6YlpnayspaksxIITPEzCusZKyg3iXZB7w== dependencies: - "@aws-amplify/amplify-cli-shared-interfaces" "1.2.2" + "@aws-amplify/amplify-cli-shared-interfaces" "1.2.3" chalk "^4.1.1" enquirer "^2.3.6" -"@aws-amplify/analytics@5.2.31": - version "5.2.31" - resolved "https://registry.npmjs.org/@aws-amplify/analytics/-/analytics-5.2.31.tgz#8a8a786110c880a8d5de15353f884ccf1552c600" - integrity sha512-u2j5qZRTDGD7d1TpbKU3D7928VFJK602537TWDuUibUCQWafCDLzPj1IJCiC6UdZ1yShqEmexa02/cqtq+gbwg== +"@aws-amplify/analytics@6.3.2": + version "6.3.2" + resolved "https://registry.npmjs.org/@aws-amplify/analytics/-/analytics-6.3.2.tgz#22d59edcd3d4b89321190b637118e01f1653a44f" + integrity sha512-InZLsUqbh5psG2ZV93SC4PNmH6GnYRITSvDKAyllHyCqgDk+4hDumIvaSUBPWzCmVURWwPQMxwsOopGql1In/w== dependencies: - "@aws-amplify/cache" "4.0.66" - "@aws-amplify/core" "4.7.15" + "@aws-amplify/cache" "5.1.3" + "@aws-amplify/core" "5.5.2" "@aws-sdk/client-firehose" "3.6.1" "@aws-sdk/client-kinesis" "3.6.1" "@aws-sdk/client-personalize-events" "3.6.1" - "@aws-sdk/client-pinpoint" "3.6.1" "@aws-sdk/util-utf8-browser" "3.6.1" lodash "^4.17.20" + tslib "^1.8.0" uuid "^3.2.1" -"@aws-amplify/api-graphql@2.3.28": - version "2.3.28" - resolved "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-2.3.28.tgz#d0f2f75eb8cb4bfb9be1b6b3045599caa442d1c5" - integrity sha512-n/8dwUx2i9sojcAnK1vITamx/FODGPmDM08lTfZNwpTVJ1aXB/bcA9GitF7gWa4jstVACDgQAKmTAr7j2d0tGw== +"@aws-amplify/api-graphql@3.4.3": + version "3.4.3" + resolved "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-3.4.3.tgz#7305f910fdc9c6a99f166884791a4130e9f09c4c" + integrity sha512-D0i/xU76Q5c8fTs3+nrUJQmS8MMNyHQ4CIsWOUxBTkvQnvGsVKK++Ij2lxWKLCRGUE25wDmKoBX1QDiId6W2/Q== dependencies: - "@aws-amplify/api-rest" "2.0.64" - "@aws-amplify/auth" "4.6.17" - "@aws-amplify/cache" "4.0.66" - "@aws-amplify/core" "4.7.15" - "@aws-amplify/pubsub" "4.5.14" + "@aws-amplify/api-rest" "3.3.2" + "@aws-amplify/auth" "5.5.3" + "@aws-amplify/cache" "5.1.3" + "@aws-amplify/core" "5.5.2" + "@aws-amplify/pubsub" "5.3.3" graphql "15.8.0" + tslib "^1.8.0" uuid "^3.2.1" zen-observable-ts "0.8.19" -"@aws-amplify/api-rest@2.0.64": - version "2.0.64" - resolved "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-2.0.64.tgz#ccf7ffd2d2fb1b7194c07a0ddfd5dfd21aa6638d" - integrity sha512-hS+ImRnkyjGJj5gTet+Gd979Vnsp1lKTmiUngt3MXY/0b6CeUgMAACxnIQ628J00frvguUcgmOlZ502jeHsiKQ== +"@aws-amplify/api-rest@3.3.2": + version "3.3.2" + resolved "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-3.3.2.tgz#32080c863c11ff539cc79d20a20e35e80b7ef99d" + integrity sha512-GGtHuT9OfjA6uX/5rejQ3ythSp5MLq7R1GL0vDDAmvdNg6BcI2A+MC9KM2s8vPIwsMhxgDsS1T/HIIzDe+NmCQ== dependencies: - "@aws-amplify/core" "4.7.15" + "@aws-amplify/core" "5.5.2" axios "0.26.0" + tslib "^1.8.0" + url "0.11.0" -"@aws-amplify/api@4.0.64": - version "4.0.64" - resolved "https://registry.npmjs.org/@aws-amplify/api/-/api-4.0.64.tgz#20c9d89dce4092a8735ccd70b2f9a16071dfb964" - integrity sha512-nhg7Z+TQcEnLR5ZotxvKnJgqNwDtUYVBcNuktsHgUVszkKT/Oj2vC28xv8RufdljIofrXFsBDeERviwSpVXiFA== +"@aws-amplify/api@5.3.3": + version "5.3.3" + resolved "https://registry.npmjs.org/@aws-amplify/api/-/api-5.3.3.tgz#526b386b78b77750f9dda4b271f0fda65f5e8481" + integrity sha512-odCqzefPQpjFYal0G8XLVZJ88xUsjO3CvOkmAw4PvYGp7o+9Q/mJkn5PSiOvKagc8gIn5qUcIUE1XI11wKwZdg== dependencies: - "@aws-amplify/api-graphql" "2.3.28" - "@aws-amplify/api-rest" "2.0.64" + "@aws-amplify/api-graphql" "3.4.3" + "@aws-amplify/api-rest" "3.3.2" + tslib "^1.8.0" -"@aws-amplify/auth@4.6.17": - version "4.6.17" - resolved "https://registry.npmjs.org/@aws-amplify/auth/-/auth-4.6.17.tgz#5030e515467d2f9469eaa388a46370c7d5648772" - integrity sha512-KIWHP6qODphwtzyJ6jmcSQewH0a8dOOsQ35OtAALwmPNEaftGmoUjm8wMHAtyH3EwWv1iknhPwMVzmGylr+l1A== +"@aws-amplify/auth@5.5.3": + version "5.5.3" + resolved "https://registry.npmjs.org/@aws-amplify/auth/-/auth-5.5.3.tgz#2189cdf4a86dced3d48f96d7c8eb791408100e77" + integrity sha512-vmJg2ELCzTI7OgaHzLALBvJjtr2Oy/xTGibZK4Wwhuax6cgiVTBxp9nO+EOLwhNz/hYS5rtn56ceVoS67bE2Fg== dependencies: - "@aws-amplify/cache" "4.0.66" - "@aws-amplify/core" "4.7.15" - amazon-cognito-identity-js "5.2.14" - crypto-js "^4.1.1" + "@aws-amplify/core" "5.5.2" + amazon-cognito-identity-js "6.3.1" + tslib "^1.8.0" + url "0.11.0" -"@aws-amplify/cache@4.0.66": - version "4.0.66" - resolved "https://registry.npmjs.org/@aws-amplify/cache/-/cache-4.0.66.tgz#16977bd9a3d7740c4b98101173e4bf31983a360f" - integrity sha512-dG5TSx1VbUMnIchqwoT+Pa5W+PdPTZVcXfg/4bjpv0HJ0s3LUeYMI93cpQGg0DlegKNvwV5Ib+B7UqXlWp/JEQ== +"@aws-amplify/cache@5.1.3": + version "5.1.3" + resolved "https://registry.npmjs.org/@aws-amplify/cache/-/cache-5.1.3.tgz#d3f3a4865faecf9d6cdf8cdc15cb348983091a44" + integrity sha512-+135oVxHBtHSZBKHWuSiae78voTI/bCBYNx6r8vXAWYMxWAgsbavtTszgkZzk9VQ7mWqvfdrp1z7S0AjZSbkOw== dependencies: - "@aws-amplify/core" "4.7.15" + "@aws-amplify/core" "5.5.2" + tslib "^1.8.0" -"@aws-amplify/core@4.7.15": - version "4.7.15" - resolved "https://registry.npmjs.org/@aws-amplify/core/-/core-4.7.15.tgz#b19c65c0ea8b2b52f53e15343a374bf2751c261d" - integrity sha512-upRxT6MN90pQZnJw2VwGdA7vHO6tGY1c3qLrXkq+x5XT45KrfGjbSSHmYBo7PkjWQYAUMGuX4KYwmPBuI58svg== +"@aws-amplify/core@5.5.2": + version "5.5.2" + resolved "https://registry.npmjs.org/@aws-amplify/core/-/core-5.5.2.tgz#1ad23177a9ac3305eb10a75cf8b2ce0d2e482f14" + integrity sha512-tX1N73LrmpsK5bkgzI6l1WmkSHofKFkhZ826k1yUTpGcMxx9o3DbuWSerbaEuEBBtcsSjnQMs9ob+vrpr1Xouw== dependencies: - "@aws-crypto/sha256-js" "1.0.0-alpha.0" + "@aws-crypto/sha256-js" "1.2.2" "@aws-sdk/client-cloudwatch-logs" "3.6.1" - "@aws-sdk/client-cognito-identity" "3.6.1" - "@aws-sdk/credential-provider-cognito-identity" "3.6.1" "@aws-sdk/types" "3.6.1" "@aws-sdk/util-hex-encoding" "3.6.1" + isomorphic-unfetch "^3.0.0" + react-native-url-polyfill "^1.3.0" + tslib "^1.8.0" universal-cookie "^4.0.4" zen-observable-ts "0.8.19" -"@aws-amplify/datastore@3.14.7": - version "3.14.7" - resolved "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-3.14.7.tgz#d4d683d6aa238179fd45ac899fd547c02c3a7b17" - integrity sha512-nzZHK0LXOsvmZzeBHL8VL/nrTm9dmBYdOWZOf7zSrbZBVaLEMim2l2os3DUx0+1u44XPr166QSF8OXLpl+56+w== +"@aws-amplify/datastore@4.6.3": + version "4.6.3" + resolved "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-4.6.3.tgz#56a4ceadb3b60915a297be1ae0649e7c847b479b" + integrity sha512-x0Ndzm0u1ZzYTLIHBz76KlVAHfD9w9HkKjqpmsJ0dIg4JyFjV4+qxpoZlEDYI0revFlESjjMUUhjZvHcHqazBA== dependencies: - "@aws-amplify/api" "4.0.64" - "@aws-amplify/auth" "4.6.17" - "@aws-amplify/core" "4.7.15" - "@aws-amplify/pubsub" "4.5.14" - amazon-cognito-identity-js "5.2.14" + "@aws-amplify/api" "5.3.3" + "@aws-amplify/auth" "5.5.3" + "@aws-amplify/core" "5.5.2" + "@aws-amplify/pubsub" "5.3.3" + amazon-cognito-identity-js "6.3.1" idb "5.0.6" immer "9.0.6" ulid "2.3.0" - uuid "3.3.2" + uuid "3.4.0" zen-observable-ts "0.8.19" zen-push "0.2.1" -"@aws-amplify/geo@1.3.27": - version "1.3.27" - resolved "https://registry.npmjs.org/@aws-amplify/geo/-/geo-1.3.27.tgz#b28b472022298a26070289b599f3dc83cdfb4102" - integrity sha512-7ytYD0M3EJxq9aiqJVQSRoXXUYf/bp7MU2Bb+UvKjqxOb29theJp3RJ7yJnqjxAV+6K7+jRpjoqH8lR+y3zkwQ== +"@aws-amplify/geo@2.1.3": + version "2.1.3" + resolved "https://registry.npmjs.org/@aws-amplify/geo/-/geo-2.1.3.tgz#2f27c55e0e72690dce032ecd1a88a00c31b27282" + integrity sha512-isJRh9SjxqogHNfAvxQhnrt/9nVRtNcWsjWhlFmaBMI/K6iCGHx67RrMjAHfyqB3L+OXfAgjaVx57DWK6wcgZA== dependencies: - "@aws-amplify/core" "4.7.15" - "@aws-sdk/client-location" "3.186.0" + "@aws-amplify/core" "5.5.2" + "@aws-sdk/client-location" "3.186.3" "@turf/boolean-clockwise" "6.5.0" camelcase-keys "6.2.2" + tslib "^1.8.0" "@aws-amplify/graphql-schema-test-library@^1.1.18": version "1.1.27" resolved "https://registry.npmjs.org/@aws-amplify/graphql-schema-test-library/-/graphql-schema-test-library-1.1.27.tgz#30f5a732ce65031169907c386777f0bc0adfa0c2" integrity sha512-ay27o/ZWR/wsYflQJOWrPT5j71Iklo1JkDkOU5BGzRk61QCV631i1o4R7N0TuDAIPTDewDf4Hvgy97y6n1jk3A== -"@aws-amplify/graphql-transformer-core@1.3.1": - version "1.3.1" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-core/-/graphql-transformer-core-1.3.1.tgz#7b378ffadbebc3b44b4a2420bddd642e032be5c5" - integrity sha512-ZrK52UjuQEN29UDj/+oAmQSyLU1xXUb+d4afJpjy35H7hSOuYp6inEOrytpUlx9nKQNu0OKLt4E1FGhwpn1NSQ== +"@aws-amplify/graphql-transformer-core@1.3.7": + version "1.3.7" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-core/-/graphql-transformer-core-1.3.7.tgz#9c20909002566a55257c036a328db06ebe74efd7" + integrity sha512-PSOE9nFd83Hi2xy7uxZVEVwWSfDwO4/8gLcdsv2F+HNztkr5J+uyQSIxklsaJzbeqiY5i3xBGxVkFoegn/st/Q== dependencies: - "@aws-amplify/graphql-transformer-interfaces" "2.2.0" - aws-cdk-lib "~2.68.0" - constructs "^10.0.5" + "@aws-amplify/graphql-transformer-interfaces" "2.2.4" fs-extra "^8.1.0" graphql "^15.5.0" - graphql-transformer-common "4.24.6" + graphql-transformer-common "4.24.7" hjson "^3.2.2" lodash "^4.17.21" md5 "^2.3.0" object-hash "^3.0.0" ts-dedent "^2.0.0" - vm2 "^3.9.8" -"@aws-amplify/graphql-transformer-interfaces@2.2.0", "@aws-amplify/graphql-transformer-interfaces@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-interfaces/-/graphql-transformer-interfaces-2.2.0.tgz#1c879cb3200ef12db65e8c8093d6baf899fc309e" - integrity sha512-76ZFuIuwUheRpNCVktTewTymk20s0GGTg+xiFMSHje3s8OPvjMm4YC6gfJ7xHb5djq3FUmrgu/AX6/9VmKt4ww== +"@aws-amplify/graphql-transformer-interfaces@2.2.4", "@aws-amplify/graphql-transformer-interfaces@^2.2.1": + version "2.2.4" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-interfaces/-/graphql-transformer-interfaces-2.2.4.tgz#b609a15bb184f681ca0cf1bb1a036402d18a6fce" + integrity sha512-gURfrKm2dFirw6CYLFYL4WagKqeBJw7R7B5q8+bLdQPkoDugaCijojlXmcctBo0Vxx948LeyhMYJ/jzoNgbW9Q== dependencies: - aws-cdk-lib "~2.68.0" - constructs "^10.0.5" graphql "^15.5.0" -"@aws-amplify/interactions@4.1.12": - version "4.1.12" - resolved "https://registry.npmjs.org/@aws-amplify/interactions/-/interactions-4.1.12.tgz#b4e953c335b2638890459f66a58b8484f914186f" - integrity sha512-MQjq4wdGuA7DNRywMrlwjbWZ/b5VFP0ASZdMYWSGVVkjPpHKR+/iCy/kkJvUFXIl8kEXHlFQTidv4RiNd4sYdQ== +"@aws-amplify/interactions@5.2.3": + version "5.2.3" + resolved "https://registry.npmjs.org/@aws-amplify/interactions/-/interactions-5.2.3.tgz#6a611c853095fded19ac1fe96a6df360dc69abf2" + integrity sha512-ApOyxN54YnoMLdAG3byJiu9On0aLu//hAmCeArQ5PhfxSlq+mdwe1gv2Cs2NYVBqkhYWkf7/NBDmiA4RaxEPAw== dependencies: - "@aws-amplify/core" "4.7.15" - "@aws-sdk/client-lex-runtime-service" "3.186.0" - "@aws-sdk/client-lex-runtime-v2" "3.186.0" + "@aws-amplify/core" "5.5.2" + "@aws-sdk/client-lex-runtime-service" "3.186.3" + "@aws-sdk/client-lex-runtime-v2" "3.186.3" base-64 "1.0.0" fflate "0.7.3" pako "2.0.4" + tslib "^1.8.0" + +"@aws-amplify/notifications@1.3.2": + version "1.3.2" + resolved "https://registry.npmjs.org/@aws-amplify/notifications/-/notifications-1.3.2.tgz#a25e7456729acca2f555131d3fef251a56807f2d" + integrity sha512-80O6n3xlId6PJfDUHA42H57jIFnfXZR//4BMOebvfk3pHhiIPKUdSLJz73QcR1FFDXBf25HagmhQ49Txboppmw== + dependencies: + "@aws-amplify/cache" "5.1.3" + "@aws-amplify/core" "5.5.2" + "@aws-amplify/rtn-push-notification" "1.1.1" + lodash "^4.17.21" + uuid "^3.2.1" -"@aws-amplify/predictions@4.0.64": - version "4.0.64" - resolved "https://registry.npmjs.org/@aws-amplify/predictions/-/predictions-4.0.64.tgz#edfa0e916982d1a42a20484310d71c55e9b52cba" - integrity sha512-EcRwCqf0xFGoJLAzns7TIgKZxKZUlXubVPMTGIm9imVT/ZuF7ELX/YhIygzR33M+75rzLJxQcx5OOTFj6df/1Q== +"@aws-amplify/predictions@5.4.3": + version "5.4.3" + resolved "https://registry.npmjs.org/@aws-amplify/predictions/-/predictions-5.4.3.tgz#e8a69a395d4fdba94a1b80fd7c38d5f85a5f90f9" + integrity sha512-cibSkFrbv/Uime6p12ZRzzAMSWSV0hhFo5131wRHrwaiJ1r0tHgyy0IrWtDYyzE4xdNGQ7u8xtlGlOxlk70lUg== dependencies: - "@aws-amplify/core" "4.7.15" - "@aws-amplify/storage" "4.5.17" + "@aws-amplify/core" "5.5.2" + "@aws-amplify/storage" "5.6.3" "@aws-sdk/client-comprehend" "3.6.1" "@aws-sdk/client-polly" "3.6.1" "@aws-sdk/client-rekognition" "3.6.1" @@ -257,60 +271,57 @@ "@aws-sdk/client-translate" "3.6.1" "@aws-sdk/eventstream-marshaller" "3.6.1" "@aws-sdk/util-utf8-node" "3.6.1" + buffer "4.9.2" + tslib "^1.8.0" uuid "^3.2.1" -"@aws-amplify/pubsub@4.5.14": - version "4.5.14" - resolved "https://registry.npmjs.org/@aws-amplify/pubsub/-/pubsub-4.5.14.tgz#dead3329e64ad0a69ce005de70703d185d6f05cc" - integrity sha512-WGR26nOMW2+DQE1DuWE4W9Ehx1RxmNmQN6Mq27DnKicLL0nMgyKT7OGBAHmQzVtsvMzFgUo/KcMBL3GltZ0M5g== +"@aws-amplify/pubsub@5.3.3": + version "5.3.3" + resolved "https://registry.npmjs.org/@aws-amplify/pubsub/-/pubsub-5.3.3.tgz#40968c2d2c0197d7af7c6e49eb66821c58936eb1" + integrity sha512-aSMNC7jrECmrKuZvtP0H4nnij3Kfpq0GAis1QzPuFUIk6TYuwxyYbcKrKR9CQhOZNv/+tMs68Aa/CqkaVWMHSQ== dependencies: - "@aws-amplify/auth" "4.6.17" - "@aws-amplify/cache" "4.0.66" - "@aws-amplify/core" "4.7.15" + "@aws-amplify/auth" "5.5.3" + "@aws-amplify/cache" "5.1.3" + "@aws-amplify/core" "5.5.2" graphql "15.8.0" - paho-mqtt "^1.1.0" + tslib "^1.8.0" + url "0.11.0" uuid "^3.2.1" zen-observable-ts "0.8.19" -"@aws-amplify/storage@4.5.17": - version "4.5.17" - resolved "https://registry.npmjs.org/@aws-amplify/storage/-/storage-4.5.17.tgz#9fd75d2e89fce220d0d1e1dd823416a77f2d2284" - integrity sha512-GZJvTdZ8zjlSfQ32x4EY56sOTafL843s6geqd8d/ybpJYZqEyBpfbcLZnsZFStAEERBKB4hCyCs/m+E2zZg/xg== +"@aws-amplify/rtn-push-notification@1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@aws-amplify/rtn-push-notification/-/rtn-push-notification-1.1.1.tgz#c2203600fe971f7dc1b3b38be58f1804a45afcd4" + integrity sha512-uYPyiNeK2r2g82U6ayluNrKA2z5280mlW9razEul94i/2XPt9LAXhIb1XnCtxGzxANMHd+FH9V7D7RAGK99pTQ== + +"@aws-amplify/storage@5.6.3": + version "5.6.3" + resolved "https://registry.npmjs.org/@aws-amplify/storage/-/storage-5.6.3.tgz#83349f49341e58cc3e4cd07b747900aea8073c33" + integrity sha512-Yu7OwCIgUmVWNtsxOugbiBXnveP1ZnR4IswBJMMhPywPLolWqDdD6Kllm8vDMAb/xRD+TrbMgXaYBL1d7sFGww== dependencies: - "@aws-amplify/core" "4.7.15" - "@aws-sdk/client-s3" "3.6.1" + "@aws-amplify/core" "5.5.2" + "@aws-sdk/client-s3" "3.6.4" "@aws-sdk/s3-request-presigner" "3.6.1" "@aws-sdk/util-create-request" "3.6.1" "@aws-sdk/util-format-url" "3.6.1" axios "0.26.0" events "^3.1.0" - -"@aws-amplify/ui@2.0.7": - version "2.0.7" - resolved "https://registry.npmjs.org/@aws-amplify/ui/-/ui-2.0.7.tgz#1d0b230306ca4fcd9c9ab5475f37d33c3eb83b37" - integrity sha512-tT7onRv+OCznFhUE2mKPpbGHHV+oODZk4VDX3lYNIfJ7LXv1hVtllQbPNJF5beNBRw9r6uotlXpeJrkph6v07A== - -"@aws-amplify/xr@3.0.64": - version "3.0.64" - resolved "https://registry.npmjs.org/@aws-amplify/xr/-/xr-3.0.64.tgz#a852c3d857373d34415d8050780a302ed3ac269c" - integrity sha512-YZJbHVEU9uN8yKHms2uIWyikUPEj4go6qL40vcIDwCv9LNyer2lP+yZ1Djn1FFhqUgLi5lK+yh4PUCoqPUWE8w== - dependencies: - "@aws-amplify/core" "4.7.15" + tslib "^1.8.0" "@aws-cdk/asset-awscli-v1@^2.2.97": - version "2.2.184" - resolved "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.184.tgz#5d80be70d09516db14a2e7b1e5a5145e8828568a" - integrity sha512-03q3Pm/IFEJEA4QS1GH87LwU4YhN1nuvA986k7KtaMIMPTOt/YXpUsriw/Sx2XcTpUk419sPGewr5N0D2slDCg== + version "2.2.200" + resolved "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.200.tgz#6ead533f73f705ad7350eb46955e2538e50cd013" + integrity sha512-Kf5J8DfJK4wZFWT2Myca0lhwke7LwHcHBo+4TvWOGJrFVVKVuuiLCkzPPRBQQVDj0Vtn2NBokZAz8pfMpAqAKg== "@aws-cdk/asset-kubectl-v20@^2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.1.tgz#d01c1efb867fb7f2cfd8c8b230b8eae16447e156" - integrity sha512-U1ntiX8XiMRRRH5J1IdC+1t5CE89015cwyt5U63Cpk0GnMlN5+h9WsWMlKlPXZR4rdq/m806JRlBMRpBUB2Dhw== + version "2.1.2" + resolved "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz#d8e20b5f5dc20128ea2000dc479ca3c7ddc27248" + integrity sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg== "@aws-cdk/asset-node-proxy-agent-v5@^2.0.77": - version "2.0.155" - resolved "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.155.tgz#b6541c56b21dbf1c5a5ba41bb144b0a827d23e2e" - integrity sha512-Q+Ny25hUPINlBbS6lmbUr4m6Tr6ToEJBla7sXA3FO3JUD0Z69ddcgbhuEBF8Rh1a2xmPONm89eX77kwK2fb4vQ== + version "2.0.165" + resolved "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.165.tgz#c169599d83beceea7e638082ef9833997f04c85d" + integrity sha512-bsyLQD/vqXQcc9RDmlM1XqiFNO/yewgVFXmkMcQkndJbmE/jgYkzewwYGrBlfL725hGLQipXq19+jwWwdsXQqg== "@aws-crypto/crc32@2.0.0": version "2.0.0" @@ -423,14 +434,14 @@ "@aws-sdk/util-locate-window" "^3.0.0" tslib "^1.11.1" -"@aws-crypto/sha256-js@1.0.0-alpha.0": - version "1.0.0-alpha.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0-alpha.0.tgz#1146f6fa823001a9065ce60db5bf1afcc7c1cc3a" - integrity sha512-GidX2lccEtHZw8mXDKJQj6tea7qh3pAnsNSp1eZNxsN4MMu2OvSraPSqiB1EihsQkZBMg0IiZPpZHoACUX/QMQ== +"@aws-crypto/sha256-js@1.2.2", "@aws-crypto/sha256-js@^1.0.0", "@aws-crypto/sha256-js@^1.2.0", "@aws-crypto/sha256-js@^1.2.2": + version "1.2.2" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" + integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== dependencies: - "@aws-sdk/types" "^1.0.0-alpha.0" - "@aws-sdk/util-utf8-browser" "^1.0.0-alpha.0" - tslib "^1.9.3" + "@aws-crypto/util" "^1.2.2" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" "@aws-crypto/sha256-js@2.0.0": version "2.0.0" @@ -450,15 +461,6 @@ "@aws-sdk/types" "^3.222.0" tslib "^1.11.1" -"@aws-crypto/sha256-js@^1.0.0", "@aws-crypto/sha256-js@^1.2.0", "@aws-crypto/sha256-js@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" - integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== - dependencies: - "@aws-crypto/util" "^1.2.2" - "@aws-sdk/types" "^3.1.0" - tslib "^1.11.1" - "@aws-crypto/sha256-js@^2.0.0": version "2.0.2" resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz#c81e5d378b8a74ff1671b58632779986e50f4c99" @@ -534,14 +536,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/abort-controller@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.338.0.tgz#955203aab957906479aaca978e23a3131db068cf" - integrity sha512-/yLI32+HwFNBRJ39jMXw+/cn3AnlCuJpQd7Ax4887g32Dgte5eyrfY8sJUOL6902BUmAq4oSRI5QeBXNplO0Xw== - dependencies: - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/abort-controller@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.6.1.tgz#75812875bbef6ad17e0e3a6d96aab9df636376f9" @@ -550,6 +544,14 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" +"@aws-sdk/chunked-blob-reader-native@3.310.0": + version "3.310.0" + resolved "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.310.0.tgz#98d43a6213557835b3bbb0cd2ee0a4e2088e916a" + integrity sha512-RuhyUY9hCd6KWA2DMF/U6rilYLLRYrDY6e0lq3Of1yzSRFxi4bk9ZMCF0mxf/9ppsB5eudUjrOypYgm6Axt3zw== + dependencies: + "@aws-sdk/util-base64" "3.310.0" + tslib "^2.5.0" + "@aws-sdk/chunked-blob-reader-native@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.6.1.tgz#21c2c8773c3cd8403c2a953fd0e9e4f69c120214" @@ -609,43 +611,6 @@ "@aws-sdk/util-utf8-node" "3.6.1" tslib "^2.0.0" -"@aws-sdk/client-cognito-identity@3.6.1": - version "3.6.1" - resolved "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.6.1.tgz#36992a4fef7eff1f2b1dbee30850e30ebdfc15bb" - integrity sha512-FMj2GR9R5oCKb3/NI16GIvWeHcE4uX42fBAaQKPbjg2gALFDx9CcJYsdOtDP37V89GtPyZilLv6GJxrwJKzYGg== - dependencies: - "@aws-crypto/sha256-browser" "^1.0.0" - "@aws-crypto/sha256-js" "^1.0.0" - "@aws-sdk/config-resolver" "3.6.1" - "@aws-sdk/credential-provider-node" "3.6.1" - "@aws-sdk/fetch-http-handler" "3.6.1" - "@aws-sdk/hash-node" "3.6.1" - "@aws-sdk/invalid-dependency" "3.6.1" - "@aws-sdk/middleware-content-length" "3.6.1" - "@aws-sdk/middleware-host-header" "3.6.1" - "@aws-sdk/middleware-logger" "3.6.1" - "@aws-sdk/middleware-retry" "3.6.1" - "@aws-sdk/middleware-serde" "3.6.1" - "@aws-sdk/middleware-signing" "3.6.1" - "@aws-sdk/middleware-stack" "3.6.1" - "@aws-sdk/middleware-user-agent" "3.6.1" - "@aws-sdk/node-config-provider" "3.6.1" - "@aws-sdk/node-http-handler" "3.6.1" - "@aws-sdk/protocol-http" "3.6.1" - "@aws-sdk/smithy-client" "3.6.1" - "@aws-sdk/types" "3.6.1" - "@aws-sdk/url-parser" "3.6.1" - "@aws-sdk/url-parser-native" "3.6.1" - "@aws-sdk/util-base64-browser" "3.6.1" - "@aws-sdk/util-base64-node" "3.6.1" - "@aws-sdk/util-body-length-browser" "3.6.1" - "@aws-sdk/util-body-length-node" "3.6.1" - "@aws-sdk/util-user-agent-browser" "3.6.1" - "@aws-sdk/util-user-agent-node" "3.6.1" - "@aws-sdk/util-utf8-browser" "3.6.1" - "@aws-sdk/util-utf8-node" "3.6.1" - tslib "^2.0.0" - "@aws-sdk/client-comprehend@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/client-comprehend/-/client-comprehend-3.6.1.tgz#d640d510b49feafa94ac252cdd7942cbe5537249" @@ -762,14 +727,14 @@ "@aws-sdk/util-waiter" "3.6.1" tslib "^2.0.0" -"@aws-sdk/client-lex-runtime-service@3.186.0": - version "3.186.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-lex-runtime-service/-/client-lex-runtime-service-3.186.0.tgz#81deea7402cb76e7f2dce56bc5778e51909e1374" - integrity sha512-EgjQvFxa/o1urxpnWV2A/D0k4m763NqrPLuL074LR+cOkNxVl9W27aYL/tddDBmmDzzx4KcuRL6/n+UBZIheTg== +"@aws-sdk/client-lex-runtime-service@3.186.3": + version "3.186.3" + resolved "https://registry.npmjs.org/@aws-sdk/client-lex-runtime-service/-/client-lex-runtime-service-3.186.3.tgz#cc1130254d50dc1a5b85ac736e6f764b0fa145c3" + integrity sha512-YP+GDY9OxyW4rJDqjreaNpiDBvH1uzO3ShJKl57hT92Kw2auDQxttcMf//J8dQXvrVkW/fVXCLI9TmtxS7XJOQ== dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/client-sts" "3.186.0" + "@aws-sdk/client-sts" "3.186.3" "@aws-sdk/config-resolver" "3.186.0" "@aws-sdk/credential-provider-node" "3.186.0" "@aws-sdk/fetch-http-handler" "3.186.0" @@ -802,14 +767,14 @@ "@aws-sdk/util-utf8-node" "3.186.0" tslib "^2.3.1" -"@aws-sdk/client-lex-runtime-v2@3.186.0": - version "3.186.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-lex-runtime-v2/-/client-lex-runtime-v2-3.186.0.tgz#36d153f80e1dbc466c541fd70002d5f9846c9afa" - integrity sha512-oDN07yCWc9gsEYL44KSjPj8wdHHcf5Kti+w31fE7JHZqvRXxLsLx7G+kEcPmSTRk3Y4wDPXJozL6sDUAOAEb7A== +"@aws-sdk/client-lex-runtime-v2@3.186.3": + version "3.186.3" + resolved "https://registry.npmjs.org/@aws-sdk/client-lex-runtime-v2/-/client-lex-runtime-v2-3.186.3.tgz#7baa6772ce3fdd7265fca2daa75eb0e896f27764" + integrity sha512-4MJfSnb+qM8BYW4ToCvg7sDWN0NcEqK738hCZUV89cjp7pIHZ6osJuS/PsmZEommVj+71GviZ4buu5KUCfCGFQ== dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/client-sts" "3.186.0" + "@aws-sdk/client-sts" "3.186.3" "@aws-sdk/config-resolver" "3.186.0" "@aws-sdk/credential-provider-node" "3.186.0" "@aws-sdk/eventstream-handler-node" "3.186.0" @@ -847,14 +812,14 @@ "@aws-sdk/util-utf8-node" "3.186.0" tslib "^2.3.1" -"@aws-sdk/client-location@3.186.0": - version "3.186.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-location/-/client-location-3.186.0.tgz#0801433a1c3fb1fe534771daf67b5d57ffd474f4" - integrity sha512-RXT1Z7jgYrPEdD1VkErH9Wm+z6y7c/ua1Pu9VQ8weu9vtD15S8Qnyd1m4HS8ZPQUUM/gTxs/fL9+s53wRWpfGQ== +"@aws-sdk/client-location@3.186.3": + version "3.186.3" + resolved "https://registry.npmjs.org/@aws-sdk/client-location/-/client-location-3.186.3.tgz#c812ae3dabf76153ad046413298a1ab53cadee9a" + integrity sha512-LCMFgoWfvKBnZhhtl93RLhrsHCalM7huaxErHSKoqWDBUDP0i7rOX73qW8E25j/vQ4emEkT0d6ts1rDu4EnlNw== dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/client-sts" "3.186.0" + "@aws-sdk/client-sts" "3.186.3" "@aws-sdk/config-resolver" "3.186.0" "@aws-sdk/credential-provider-node" "3.186.0" "@aws-sdk/fetch-http-handler" "3.186.0" @@ -924,43 +889,6 @@ "@aws-sdk/util-utf8-node" "3.6.1" tslib "^2.0.0" -"@aws-sdk/client-pinpoint@3.6.1": - version "3.6.1" - resolved "https://registry.npmjs.org/@aws-sdk/client-pinpoint/-/client-pinpoint-3.6.1.tgz#6b93f46475ae2667d77053be51ea62f52e330155" - integrity sha512-dueBedp91EKAHxcWLR3aNx/eUEdxdF9niEQTzOO2O4iJL2yvO2Hh7ZYiO7B3g7FuuICTpWSHd//Y9mGmSVLMCg== - dependencies: - "@aws-crypto/sha256-browser" "^1.0.0" - "@aws-crypto/sha256-js" "^1.0.0" - "@aws-sdk/config-resolver" "3.6.1" - "@aws-sdk/credential-provider-node" "3.6.1" - "@aws-sdk/fetch-http-handler" "3.6.1" - "@aws-sdk/hash-node" "3.6.1" - "@aws-sdk/invalid-dependency" "3.6.1" - "@aws-sdk/middleware-content-length" "3.6.1" - "@aws-sdk/middleware-host-header" "3.6.1" - "@aws-sdk/middleware-logger" "3.6.1" - "@aws-sdk/middleware-retry" "3.6.1" - "@aws-sdk/middleware-serde" "3.6.1" - "@aws-sdk/middleware-signing" "3.6.1" - "@aws-sdk/middleware-stack" "3.6.1" - "@aws-sdk/middleware-user-agent" "3.6.1" - "@aws-sdk/node-config-provider" "3.6.1" - "@aws-sdk/node-http-handler" "3.6.1" - "@aws-sdk/protocol-http" "3.6.1" - "@aws-sdk/smithy-client" "3.6.1" - "@aws-sdk/types" "3.6.1" - "@aws-sdk/url-parser" "3.6.1" - "@aws-sdk/url-parser-native" "3.6.1" - "@aws-sdk/util-base64-browser" "3.6.1" - "@aws-sdk/util-base64-node" "3.6.1" - "@aws-sdk/util-body-length-browser" "3.6.1" - "@aws-sdk/util-body-length-node" "3.6.1" - "@aws-sdk/util-user-agent-browser" "3.6.1" - "@aws-sdk/util-user-agent-node" "3.6.1" - "@aws-sdk/util-utf8-browser" "3.6.1" - "@aws-sdk/util-utf8-node" "3.6.1" - tslib "^2.0.0" - "@aws-sdk/client-polly@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/client-polly/-/client-polly-3.6.1.tgz#869deb186e57fca29737bfa7af094599d7879841" @@ -1036,10 +964,10 @@ "@aws-sdk/util-waiter" "3.6.1" tslib "^2.0.0" -"@aws-sdk/client-s3@3.6.1": - version "3.6.1" - resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.6.1.tgz#aab1e0e92b353d9d51152d9347b7e1809f3593d0" - integrity sha512-59cTmZj92iwgNoAeJirK5sZNQNXLc/oI3luqrEHRNLuOh70bjdgad70T0a5k2Ysd/v/QNamqJxnCJMPuX1bhgw== +"@aws-sdk/client-s3@3.6.4": + version "3.6.4" + resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.6.4.tgz#4539af238030b80d934c9390fa556ec02bfb68fa" + integrity sha512-adC/KalGndAZI4p18Et4PhtlI4T8S8go5yt+N3lxndSNHQebpfE6+8uI7yRkqm9ffCgMVKrPuw1WIAjvXrxW6Q== dependencies: "@aws-crypto/sha256-browser" "^1.0.0" "@aws-crypto/sha256-js" "^1.0.0" @@ -1085,107 +1013,106 @@ "@aws-sdk/util-utf8-node" "3.6.1" "@aws-sdk/util-waiter" "3.6.1" "@aws-sdk/xml-builder" "3.6.1" - fast-xml-parser "^3.16.0" + fast-xml-parser "4.2.5" tslib "^2.0.0" "@aws-sdk/client-s3@^3.25.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.338.0.tgz#414814daf0c21ae649088cc82b42a2f737c5ab3b" - integrity sha512-qnQlEyUXypg8QlH21JBJcDitXmaZXwde2YO5Ic3mUSu5zMtsOCmV/C5EVSlTz1OPqngmezF7WcqepYrm7ZfEag== + version "3.367.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.367.0.tgz#924e45ee358bf1449c07473d98a7e11057c9d76e" + integrity sha512-E9onOs03zHDo/ytjEooCbSbYNUvvvOc5dK7oNEQ9s5cpGjiY2ojQieMg7x+Uz7FbAslIEsABXliYe2Xib+N7Ug== dependencies: "@aws-crypto/sha1-browser" "3.0.0" "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.338.0" - "@aws-sdk/config-resolver" "3.338.0" - "@aws-sdk/credential-provider-node" "3.338.0" - "@aws-sdk/eventstream-serde-browser" "3.338.0" - "@aws-sdk/eventstream-serde-config-resolver" "3.338.0" - "@aws-sdk/eventstream-serde-node" "3.338.0" - "@aws-sdk/fetch-http-handler" "3.338.0" - "@aws-sdk/hash-blob-browser" "3.338.0" - "@aws-sdk/hash-node" "3.338.0" - "@aws-sdk/hash-stream-node" "3.338.0" - "@aws-sdk/invalid-dependency" "3.338.0" - "@aws-sdk/md5-js" "3.338.0" - "@aws-sdk/middleware-bucket-endpoint" "3.338.0" - "@aws-sdk/middleware-content-length" "3.338.0" - "@aws-sdk/middleware-endpoint" "3.338.0" - "@aws-sdk/middleware-expect-continue" "3.338.0" - "@aws-sdk/middleware-flexible-checksums" "3.338.0" - "@aws-sdk/middleware-host-header" "3.338.0" - "@aws-sdk/middleware-location-constraint" "3.338.0" - "@aws-sdk/middleware-logger" "3.338.0" - "@aws-sdk/middleware-recursion-detection" "3.338.0" - "@aws-sdk/middleware-retry" "3.338.0" - "@aws-sdk/middleware-sdk-s3" "3.338.0" - "@aws-sdk/middleware-serde" "3.338.0" - "@aws-sdk/middleware-signing" "3.338.0" - "@aws-sdk/middleware-ssec" "3.338.0" - "@aws-sdk/middleware-stack" "3.338.0" - "@aws-sdk/middleware-user-agent" "3.338.0" - "@aws-sdk/node-config-provider" "3.338.0" - "@aws-sdk/node-http-handler" "3.338.0" - "@aws-sdk/signature-v4-multi-region" "3.338.0" - "@aws-sdk/smithy-client" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/url-parser" "3.338.0" - "@aws-sdk/util-base64" "3.310.0" - "@aws-sdk/util-body-length-browser" "3.310.0" - "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.338.0" - "@aws-sdk/util-defaults-mode-node" "3.338.0" - "@aws-sdk/util-endpoints" "3.338.0" - "@aws-sdk/util-retry" "3.338.0" - "@aws-sdk/util-stream-browser" "3.338.0" - "@aws-sdk/util-stream-node" "3.338.0" - "@aws-sdk/util-user-agent-browser" "3.338.0" - "@aws-sdk/util-user-agent-node" "3.338.0" - "@aws-sdk/util-utf8" "3.310.0" - "@aws-sdk/util-waiter" "3.338.0" + "@aws-sdk/client-sts" "3.363.0" + "@aws-sdk/credential-provider-node" "3.363.0" + "@aws-sdk/hash-blob-browser" "3.367.0" + "@aws-sdk/hash-stream-node" "3.357.0" + "@aws-sdk/md5-js" "3.357.0" + "@aws-sdk/middleware-bucket-endpoint" "3.363.0" + "@aws-sdk/middleware-expect-continue" "3.363.0" + "@aws-sdk/middleware-flexible-checksums" "3.363.0" + "@aws-sdk/middleware-host-header" "3.363.0" + "@aws-sdk/middleware-location-constraint" "3.363.0" + "@aws-sdk/middleware-logger" "3.363.0" + "@aws-sdk/middleware-recursion-detection" "3.363.0" + "@aws-sdk/middleware-sdk-s3" "3.363.0" + "@aws-sdk/middleware-signing" "3.363.0" + "@aws-sdk/middleware-ssec" "3.363.0" + "@aws-sdk/middleware-user-agent" "3.363.0" + "@aws-sdk/signature-v4-multi-region" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.363.0" + "@aws-sdk/util-user-agent-node" "3.363.0" "@aws-sdk/xml-builder" "3.310.0" + "@smithy/config-resolver" "^1.0.1" + "@smithy/eventstream-serde-browser" "^1.0.1" + "@smithy/eventstream-serde-config-resolver" "^1.0.1" + "@smithy/eventstream-serde-node" "^1.0.1" + "@smithy/fetch-http-handler" "^1.0.1" + "@smithy/hash-node" "^1.0.1" + "@smithy/invalid-dependency" "^1.0.1" + "@smithy/middleware-content-length" "^1.0.1" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/middleware-retry" "^1.0.2" + "@smithy/middleware-serde" "^1.0.1" + "@smithy/middleware-stack" "^1.0.1" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/node-http-handler" "^1.0.2" "@smithy/protocol-http" "^1.0.1" + "@smithy/smithy-client" "^1.0.3" "@smithy/types" "^1.0.0" - fast-xml-parser "4.1.2" + "@smithy/url-parser" "^1.0.1" + "@smithy/util-base64" "^1.0.1" + "@smithy/util-body-length-browser" "^1.0.1" + "@smithy/util-body-length-node" "^1.0.1" + "@smithy/util-defaults-mode-browser" "^1.0.1" + "@smithy/util-defaults-mode-node" "^1.0.1" + "@smithy/util-retry" "^1.0.2" + "@smithy/util-stream" "^1.0.1" + "@smithy/util-utf8" "^1.0.1" + "@smithy/util-waiter" "^1.0.1" + fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/client-sso-oidc@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz#ba3115962fc8c5ccec8c2c984063641a1b1ed283" - integrity sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA== +"@aws-sdk/client-sso-oidc@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.363.0.tgz#71240d729a0847fd5a7aaac09ed5a3a07c3666cf" + integrity sha512-V3Ebiq/zNtDS/O92HUWGBa7MY59RYSsqWd+E0XrXv6VYTA00RlMTbNcseivNgp2UghOgB9a20Nkz6EqAeIN+RQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.338.0" - "@aws-sdk/fetch-http-handler" "3.338.0" - "@aws-sdk/hash-node" "3.338.0" - "@aws-sdk/invalid-dependency" "3.338.0" - "@aws-sdk/middleware-content-length" "3.338.0" - "@aws-sdk/middleware-endpoint" "3.338.0" - "@aws-sdk/middleware-host-header" "3.338.0" - "@aws-sdk/middleware-logger" "3.338.0" - "@aws-sdk/middleware-recursion-detection" "3.338.0" - "@aws-sdk/middleware-retry" "3.338.0" - "@aws-sdk/middleware-serde" "3.338.0" - "@aws-sdk/middleware-stack" "3.338.0" - "@aws-sdk/middleware-user-agent" "3.338.0" - "@aws-sdk/node-config-provider" "3.338.0" - "@aws-sdk/node-http-handler" "3.338.0" - "@aws-sdk/smithy-client" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/url-parser" "3.338.0" - "@aws-sdk/util-base64" "3.310.0" - "@aws-sdk/util-body-length-browser" "3.310.0" - "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.338.0" - "@aws-sdk/util-defaults-mode-node" "3.338.0" - "@aws-sdk/util-endpoints" "3.338.0" - "@aws-sdk/util-retry" "3.338.0" - "@aws-sdk/util-user-agent-browser" "3.338.0" - "@aws-sdk/util-user-agent-node" "3.338.0" - "@aws-sdk/util-utf8" "3.310.0" + "@aws-sdk/middleware-host-header" "3.363.0" + "@aws-sdk/middleware-logger" "3.363.0" + "@aws-sdk/middleware-recursion-detection" "3.363.0" + "@aws-sdk/middleware-user-agent" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.363.0" + "@aws-sdk/util-user-agent-node" "3.363.0" + "@smithy/config-resolver" "^1.0.1" + "@smithy/fetch-http-handler" "^1.0.1" + "@smithy/hash-node" "^1.0.1" + "@smithy/invalid-dependency" "^1.0.1" + "@smithy/middleware-content-length" "^1.0.1" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/middleware-retry" "^1.0.2" + "@smithy/middleware-serde" "^1.0.1" + "@smithy/middleware-stack" "^1.0.1" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/node-http-handler" "^1.0.2" "@smithy/protocol-http" "^1.0.1" + "@smithy/smithy-client" "^1.0.3" "@smithy/types" "^1.0.0" + "@smithy/url-parser" "^1.0.1" + "@smithy/util-base64" "^1.0.1" + "@smithy/util-body-length-browser" "^1.0.1" + "@smithy/util-body-length-node" "^1.0.1" + "@smithy/util-defaults-mode-browser" "^1.0.1" + "@smithy/util-defaults-mode-node" "^1.0.1" + "@smithy/util-retry" "^1.0.2" + "@smithy/util-utf8" "^1.0.1" tslib "^2.5.0" "@aws-sdk/client-sso@3.186.0": @@ -1225,49 +1152,49 @@ "@aws-sdk/util-utf8-node" "3.186.0" tslib "^2.3.1" -"@aws-sdk/client-sso@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz#a65301eafb61f308589f17b9769e2e62d7f022dd" - integrity sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w== +"@aws-sdk/client-sso@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.363.0.tgz#b1939ee6769cf208f1dd4fbfa924c223da9d60ec" + integrity sha512-PZ+HfKSgS4hlMnJzG+Ev8/mgHd/b/ETlJWPSWjC/f2NwVoBQkBnqHjdyEx7QjF6nksJozcVh5Q+kkYLKc/QwBQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.338.0" - "@aws-sdk/fetch-http-handler" "3.338.0" - "@aws-sdk/hash-node" "3.338.0" - "@aws-sdk/invalid-dependency" "3.338.0" - "@aws-sdk/middleware-content-length" "3.338.0" - "@aws-sdk/middleware-endpoint" "3.338.0" - "@aws-sdk/middleware-host-header" "3.338.0" - "@aws-sdk/middleware-logger" "3.338.0" - "@aws-sdk/middleware-recursion-detection" "3.338.0" - "@aws-sdk/middleware-retry" "3.338.0" - "@aws-sdk/middleware-serde" "3.338.0" - "@aws-sdk/middleware-stack" "3.338.0" - "@aws-sdk/middleware-user-agent" "3.338.0" - "@aws-sdk/node-config-provider" "3.338.0" - "@aws-sdk/node-http-handler" "3.338.0" - "@aws-sdk/smithy-client" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/url-parser" "3.338.0" - "@aws-sdk/util-base64" "3.310.0" - "@aws-sdk/util-body-length-browser" "3.310.0" - "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.338.0" - "@aws-sdk/util-defaults-mode-node" "3.338.0" - "@aws-sdk/util-endpoints" "3.338.0" - "@aws-sdk/util-retry" "3.338.0" - "@aws-sdk/util-user-agent-browser" "3.338.0" - "@aws-sdk/util-user-agent-node" "3.338.0" - "@aws-sdk/util-utf8" "3.310.0" + "@aws-sdk/middleware-host-header" "3.363.0" + "@aws-sdk/middleware-logger" "3.363.0" + "@aws-sdk/middleware-recursion-detection" "3.363.0" + "@aws-sdk/middleware-user-agent" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.363.0" + "@aws-sdk/util-user-agent-node" "3.363.0" + "@smithy/config-resolver" "^1.0.1" + "@smithy/fetch-http-handler" "^1.0.1" + "@smithy/hash-node" "^1.0.1" + "@smithy/invalid-dependency" "^1.0.1" + "@smithy/middleware-content-length" "^1.0.1" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/middleware-retry" "^1.0.2" + "@smithy/middleware-serde" "^1.0.1" + "@smithy/middleware-stack" "^1.0.1" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/node-http-handler" "^1.0.2" "@smithy/protocol-http" "^1.0.1" + "@smithy/smithy-client" "^1.0.3" "@smithy/types" "^1.0.0" + "@smithy/url-parser" "^1.0.1" + "@smithy/util-base64" "^1.0.1" + "@smithy/util-body-length-browser" "^1.0.1" + "@smithy/util-body-length-node" "^1.0.1" + "@smithy/util-defaults-mode-browser" "^1.0.1" + "@smithy/util-defaults-mode-node" "^1.0.1" + "@smithy/util-retry" "^1.0.2" + "@smithy/util-utf8" "^1.0.1" tslib "^2.5.0" -"@aws-sdk/client-sts@3.186.0": - version "3.186.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.186.0.tgz#12514601b0b01f892ddb11d8a2ab4bee1b03cbf1" - integrity sha512-lyAPI6YmIWWYZHQ9fBZ7QgXjGMTtktL5fk8kOcZ98ja+8Vu0STH1/u837uxqvZta8/k0wijunIL3jWUhjsNRcg== +"@aws-sdk/client-sts@3.186.3": + version "3.186.3" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.186.3.tgz#1c12355cb9d3cadc64ab74c91c3d57515680dfbd" + integrity sha512-mnttdyYBtqO+FkDtOT3F1FGi8qD11fF5/3zYLaNuFFULqKneaIwW2YIsjFlgvPGpmoyo/tNplnZwhQ9xQtT3Sw== dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" @@ -1303,50 +1230,50 @@ "@aws-sdk/util-utf8-browser" "3.186.0" "@aws-sdk/util-utf8-node" "3.186.0" entities "2.2.0" - fast-xml-parser "3.19.0" + fast-xml-parser "4.2.5" tslib "^2.3.1" -"@aws-sdk/client-sts@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz#8e2d27b5cdf6af59c8144f8c0dc4602bd607f210" - integrity sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw== +"@aws-sdk/client-sts@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.363.0.tgz#c02b3cf3bd2ef9d54195323370db964cd1df4711" + integrity sha512-0jj14WvBPJQ8xr72cL0mhlmQ90tF0O0wqXwSbtog6PsC8+KDE6Yf+WsxsumyI8E5O8u3eYijBL+KdqG07F/y/w== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.338.0" - "@aws-sdk/credential-provider-node" "3.338.0" - "@aws-sdk/fetch-http-handler" "3.338.0" - "@aws-sdk/hash-node" "3.338.0" - "@aws-sdk/invalid-dependency" "3.338.0" - "@aws-sdk/middleware-content-length" "3.338.0" - "@aws-sdk/middleware-endpoint" "3.338.0" - "@aws-sdk/middleware-host-header" "3.338.0" - "@aws-sdk/middleware-logger" "3.338.0" - "@aws-sdk/middleware-recursion-detection" "3.338.0" - "@aws-sdk/middleware-retry" "3.338.0" - "@aws-sdk/middleware-sdk-sts" "3.338.0" - "@aws-sdk/middleware-serde" "3.338.0" - "@aws-sdk/middleware-signing" "3.338.0" - "@aws-sdk/middleware-stack" "3.338.0" - "@aws-sdk/middleware-user-agent" "3.338.0" - "@aws-sdk/node-config-provider" "3.338.0" - "@aws-sdk/node-http-handler" "3.338.0" - "@aws-sdk/smithy-client" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/url-parser" "3.338.0" - "@aws-sdk/util-base64" "3.310.0" - "@aws-sdk/util-body-length-browser" "3.310.0" - "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.338.0" - "@aws-sdk/util-defaults-mode-node" "3.338.0" - "@aws-sdk/util-endpoints" "3.338.0" - "@aws-sdk/util-retry" "3.338.0" - "@aws-sdk/util-user-agent-browser" "3.338.0" - "@aws-sdk/util-user-agent-node" "3.338.0" - "@aws-sdk/util-utf8" "3.310.0" - "@smithy/protocol-http" "^1.0.1" - "@smithy/types" "^1.0.0" - fast-xml-parser "4.1.2" + "@aws-sdk/credential-provider-node" "3.363.0" + "@aws-sdk/middleware-host-header" "3.363.0" + "@aws-sdk/middleware-logger" "3.363.0" + "@aws-sdk/middleware-recursion-detection" "3.363.0" + "@aws-sdk/middleware-sdk-sts" "3.363.0" + "@aws-sdk/middleware-signing" "3.363.0" + "@aws-sdk/middleware-user-agent" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.363.0" + "@aws-sdk/util-user-agent-node" "3.363.0" + "@smithy/config-resolver" "^1.0.1" + "@smithy/fetch-http-handler" "^1.0.1" + "@smithy/hash-node" "^1.0.1" + "@smithy/invalid-dependency" "^1.0.1" + "@smithy/middleware-content-length" "^1.0.1" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/middleware-retry" "^1.0.1" + "@smithy/middleware-serde" "^1.0.1" + "@smithy/middleware-stack" "^1.0.1" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/node-http-handler" "^1.0.1" + "@smithy/protocol-http" "^1.1.0" + "@smithy/smithy-client" "^1.0.2" + "@smithy/types" "^1.1.0" + "@smithy/url-parser" "^1.0.1" + "@smithy/util-base64" "^1.0.1" + "@smithy/util-body-length-browser" "^1.0.1" + "@smithy/util-body-length-node" "^1.0.1" + "@smithy/util-defaults-mode-browser" "^1.0.1" + "@smithy/util-defaults-mode-node" "^1.0.1" + "@smithy/util-retry" "^1.0.1" + "@smithy/util-utf8" "^1.0.1" + fast-xml-parser "4.2.5" tslib "^2.5.0" "@aws-sdk/client-textract@3.6.1": @@ -1435,16 +1362,6 @@ "@aws-sdk/util-middleware" "3.186.0" tslib "^2.3.1" -"@aws-sdk/config-resolver@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.338.0.tgz#fa698ff05bdabc3af42f571ac3a7e895b2a91f6a" - integrity sha512-rB9WUaMfTB74Hd2mOiyPFR7Q1viT+w6SaDSR9SA1P8EeIg5H13FNdIKb736Z8/6QJhDj7whdyk1CTGV+DmXOOg== - dependencies: - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-config-provider" "3.310.0" - "@aws-sdk/util-middleware" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/config-resolver@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.6.1.tgz#3bcc5e6a0ebeedf0981b0540e1f18a72b4dafebf" @@ -1454,16 +1371,6 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/credential-provider-cognito-identity@3.6.1": - version "3.6.1" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.6.1.tgz#df928951612a34832c2df15fb899251d828c2df3" - integrity sha512-uJ9q+yq+Dhdo32gcv0p/AT7sKSAUH0y4ts9XRK/vx0dW9Q3XJy99mOJlq/6fkh4LfWeavJJlaCo9lSHNMWXx4w== - dependencies: - "@aws-sdk/client-cognito-identity" "3.6.1" - "@aws-sdk/property-provider" "3.6.1" - "@aws-sdk/types" "3.6.1" - tslib "^1.8.0" - "@aws-sdk/credential-provider-env@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.186.0.tgz#55dec9c4c29ebbdff4f3bce72de9e98f7a1f92e1" @@ -1473,13 +1380,14 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-env@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz#97d83054e36ce4adb5293b85a66d532d2e412182" - integrity sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g== +"@aws-sdk/credential-provider-env@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.363.0.tgz#5b8471a243cdb54696ecae99ad4cc1c48d687657" + integrity sha512-VAQ3zITT2Q0acht0HezouYnMFKZ2vIOa20X4zQA3WI0HfaP4D6ga6KaenbDcb/4VFiqfqiRHfdyXHP0ThcDRMA== dependencies: - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/credential-provider-env@3.6.1": @@ -1502,17 +1410,6 @@ "@aws-sdk/url-parser" "3.186.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-imds@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.338.0.tgz#4202049ee596c86f57e0464905c61482be2439c0" - integrity sha512-qsqeywYfJevg5pgUUUBmm7pK1bckVrl091PZB2IliFdQVnDvI5GFLf4B0oZqjaLAzPG1gVtxRvqIve+tnP/+xA== - dependencies: - "@aws-sdk/node-config-provider" "3.338.0" - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/url-parser" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/credential-provider-imds@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.6.1.tgz#b5a8b8ef15eac26c58e469451a6c7c34ab3ca875" @@ -1536,19 +1433,20 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-ini@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz#f21ba58225c1088dc57d7241b3cbc35f3b38cdd8" - integrity sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ== - dependencies: - "@aws-sdk/credential-provider-env" "3.338.0" - "@aws-sdk/credential-provider-imds" "3.338.0" - "@aws-sdk/credential-provider-process" "3.338.0" - "@aws-sdk/credential-provider-sso" "3.338.0" - "@aws-sdk/credential-provider-web-identity" "3.338.0" - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/shared-ini-file-loader" "3.338.0" - "@aws-sdk/types" "3.338.0" +"@aws-sdk/credential-provider-ini@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.363.0.tgz#e77e65e1ffc7c736aa724ebdf038e99dca57a87b" + integrity sha512-ZYN+INoqyX5FVC3rqUxB6O8nOWkr0gHRRBm1suoOlmuFJ/WSlW/uUGthRBY5x1AQQnBF8cpdlxZzGHd41lFVNw== + dependencies: + "@aws-sdk/credential-provider-env" "3.363.0" + "@aws-sdk/credential-provider-process" "3.363.0" + "@aws-sdk/credential-provider-sso" "3.363.0" + "@aws-sdk/credential-provider-web-identity" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@smithy/credential-provider-imds" "^1.0.1" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/credential-provider-ini@3.6.1": @@ -1577,20 +1475,21 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-node@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz#3a5414f77a744112a01f285896d5720ef86d62b8" - integrity sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw== - dependencies: - "@aws-sdk/credential-provider-env" "3.338.0" - "@aws-sdk/credential-provider-imds" "3.338.0" - "@aws-sdk/credential-provider-ini" "3.338.0" - "@aws-sdk/credential-provider-process" "3.338.0" - "@aws-sdk/credential-provider-sso" "3.338.0" - "@aws-sdk/credential-provider-web-identity" "3.338.0" - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/shared-ini-file-loader" "3.338.0" - "@aws-sdk/types" "3.338.0" +"@aws-sdk/credential-provider-node@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.363.0.tgz#70815b3c8bc98d9afd148b851c8fdae9ce11fcd6" + integrity sha512-C1qXFIN2yMxD6pGgug0vR1UhScOki6VqdzuBHzXZAGu7MOjvgHNdscEcb3CpWnITHaPL2ztkiw75T1sZ7oIgQg== + dependencies: + "@aws-sdk/credential-provider-env" "3.363.0" + "@aws-sdk/credential-provider-ini" "3.363.0" + "@aws-sdk/credential-provider-process" "3.363.0" + "@aws-sdk/credential-provider-sso" "3.363.0" + "@aws-sdk/credential-provider-web-identity" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@smithy/credential-provider-imds" "^1.0.1" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/credential-provider-node@3.6.1": @@ -1617,14 +1516,15 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-process@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz#32eb4a9655f481f24986f9fb9d87a549d5515163" - integrity sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg== +"@aws-sdk/credential-provider-process@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.363.0.tgz#08608f6da246084f9b20481ac0de17f04ae54b4d" + integrity sha512-fOKAINU7Rtj2T8pP13GdCt+u0Ml3gYynp8ki+1jMZIQ+Ju/MdDOqZpKMFKicMn3Z1ttUOgqr+grUdus6z8ceBQ== dependencies: - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/shared-ini-file-loader" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/credential-provider-process@3.6.1": @@ -1649,16 +1549,17 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-sso@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz#55b827f2678dd2ac53b2fb134416a482e810a5a2" - integrity sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw== - dependencies: - "@aws-sdk/client-sso" "3.338.0" - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/shared-ini-file-loader" "3.338.0" - "@aws-sdk/token-providers" "3.338.0" - "@aws-sdk/types" "3.338.0" +"@aws-sdk/credential-provider-sso@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.363.0.tgz#949190c9ea510d9772aef9c61345575f4b40b44d" + integrity sha512-5RUZ5oM0lwZSo3EehT0dXggOjgtxFogpT3cZvoLGtIwrPBvm8jOQPXQUlaqCj10ThF1sYltEyukz/ovtDwYGew== + dependencies: + "@aws-sdk/client-sso" "3.363.0" + "@aws-sdk/token-providers" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/credential-provider-web-identity@3.186.0": @@ -1670,13 +1571,14 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-web-identity@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz#b71bb648f59440760b5c364d3f7269f2c8f1d42a" - integrity sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA== +"@aws-sdk/credential-provider-web-identity@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.363.0.tgz#a5312519126ff7c3fea56ffefa0e51ef9383663c" + integrity sha512-Z6w7fjgy79pAax580wdixbStQw10xfyZ+hOYLcPudoYFKjoNx0NQBejg5SwBzCF/HQL23Ksm9kDfbXDX9fkPhA== dependencies: - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/eventstream-codec@3.186.0": @@ -1689,16 +1591,6 @@ "@aws-sdk/util-hex-encoding" "3.186.0" tslib "^2.3.1" -"@aws-sdk/eventstream-codec@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.338.0.tgz#50faa87d23be815660b68818a869162307c6046f" - integrity sha512-D9nxnkuY6ArIr+b2Gfc0YExWgNbzgfLIljgcBawL9P4vkkE0uZgPM0fF0Paug2DpkuSluHS6PCLaM/nLbBiLAQ== - dependencies: - "@aws-crypto/crc32" "3.0.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-hex-encoding" "3.310.0" - tslib "^2.5.0" - "@aws-sdk/eventstream-handler-node@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.186.0.tgz#d58aec9a8617ed1a9a3800d5526333deb3efebb2" @@ -1727,15 +1619,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-browser@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.338.0.tgz#2c6336a665e0b305667ef59d67bf413bec423ac9" - integrity sha512-SRaFPJpCPOghZ9vuStSBzwvVqEX0DSVQl4j1vq/9mHUj1a4Xn0qH29eLBxsyB5NOQNb46RMdd8UTNgNSnCI74w== - dependencies: - "@aws-sdk/eventstream-serde-universal" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/eventstream-serde-browser@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.6.1.tgz#1253bd5215745f79d534fc9bc6bd006ee7a0f239" @@ -1754,14 +1637,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-config-resolver@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.338.0.tgz#bba80f5e4d1ad8821a2c6caf6d8b67deb1a07d0d" - integrity sha512-utid/nDd6IoPXWwz/mCnAwWWNgntK53feRLsztyWg7GHJabXli/kXo6U/3+Mn7Q2RS4eAASpqhYXXrVni5SgTA== - dependencies: - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/eventstream-serde-config-resolver@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.6.1.tgz#ebb5c1614f55d0ebb225defac1f76c420e188086" @@ -1779,15 +1654,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-node@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.338.0.tgz#7b585ff1df667b6762cda9e221e40ff02ae0e60b" - integrity sha512-Fwnrgaa6rs/0HMD3NVk1FcxZqgtG5xZz9qIlSLt5JFIG/rpBTrMREi+KIhLHvd3/4ZhkdLjX7y+ml8K6atSveA== - dependencies: - "@aws-sdk/eventstream-serde-universal" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/eventstream-serde-node@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.6.1.tgz#705e12bea185905a198d7812af10e3a679dfc841" @@ -1807,15 +1673,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-universal@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.338.0.tgz#f68d183d0dfd2405e832b54122efb1e08087d5ec" - integrity sha512-uuHu1nksdPPevuSUkq5aOo7j1Zb6IRSuQ0fV0zuolg2i1B2wAQjrkWH9EcvGzOe0/yWEQF3ohggczuovn4yCzQ== - dependencies: - "@aws-sdk/eventstream-codec" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/eventstream-serde-universal@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.6.1.tgz#5be6865adb55436cbc90557df3a3c49b53553470" @@ -1836,17 +1693,6 @@ "@aws-sdk/util-base64-browser" "3.186.0" tslib "^2.3.1" -"@aws-sdk/fetch-http-handler@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.338.0.tgz#7d27c3ffbb791f6d7f7508fbbc5826e4df279b93" - integrity sha512-NOIQmeSa51J2nFAzl99IjxwQkq27cdNJzF59jQWzpUCGbxXfMD4WWy2NHubabSFuJ4FJU2eyoQHUNUFc6/uxXA== - dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/querystring-builder" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-base64" "3.310.0" - tslib "^2.5.0" - "@aws-sdk/fetch-http-handler@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.6.1.tgz#c5fb4a4ee158161fca52b220d2c11dddcda9b092" @@ -1858,13 +1704,14 @@ "@aws-sdk/util-base64-browser" "3.6.1" tslib "^1.8.0" -"@aws-sdk/hash-blob-browser@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.338.0.tgz#0ff4ddccc7f5ad3b562afd3ea70c5cc66d4aaa3c" - integrity sha512-otfZZe/QA3Y0L4yDU8I7mL2oy/cSzaMzTugX4ouz9kk3mW8Ef5OQCJsWwtJz8jgM4UZr6OHcdrQGe19L7pVTiQ== +"@aws-sdk/hash-blob-browser@3.367.0": + version "3.367.0" + resolved "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.367.0.tgz#1ec6732eb849c83ab96049edcd6479ddec17c4c8" + integrity sha512-RhkpXceqQP5UF0eGvLVRSM/gJI8rUdgThAFLPlM5cYRPtIoeDddTTNk0BEf8GzetXTyzx3TEe1Z5tEjbb0pMuA== dependencies: "@aws-sdk/chunked-blob-reader" "3.310.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/chunked-blob-reader-native" "3.310.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/hash-blob-browser@3.6.1": @@ -1886,16 +1733,6 @@ "@aws-sdk/util-buffer-from" "3.186.0" tslib "^2.3.1" -"@aws-sdk/hash-node@3.338.0", "@aws-sdk/hash-node@^3.0.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.338.0.tgz#f7ab49ac7c09e0f80b2abeca2180d6010140fef1" - integrity sha512-udveX3ZRO1oUbyBTQH0LJ8Ika7uk0pHuXrqapdi66GGRJB50IhmOg372zUEwZjDB7DZYXfGTCuAj2OoEalgpBA== - dependencies: - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-buffer-from" "3.310.0" - "@aws-sdk/util-utf8" "3.310.0" - tslib "^2.5.0" - "@aws-sdk/hash-node@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.6.1.tgz#72d75ec3b9c7e7f9b0c498805364f1f897165ce9" @@ -1905,12 +1742,22 @@ "@aws-sdk/util-buffer-from" "3.6.1" tslib "^1.8.0" -"@aws-sdk/hash-stream-node@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.338.0.tgz#bee68f8c173a97366fc3f16039b323e8bbf91f7a" - integrity sha512-0rDWfosbOyCS358AuGlsB98uHo5AcB0s/T3UjZgpTHzdON2NkgX8BfYyz+TVviwGz0HVlXlf+OAJe+rbPtsbNA== +"@aws-sdk/hash-node@^3.0.0": + version "3.357.0" + resolved "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.357.0.tgz#70666b0d6a49191cf33ef32b235c33b242de36ce" + integrity sha512-fq3LS9AxHKb7dTZkm6iM1TrGk6XOTZz96iEZPME1+vjiSEXGWuebHt87q92n+KozVGRypn9MId3lHOPBBjygNQ== dependencies: - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-buffer-from" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/hash-stream-node@3.357.0": + version "3.357.0" + resolved "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.357.0.tgz#a78c6d1ae1c78cb52854311bad50988e8fc12142" + integrity sha512-KZjN1VAw1KHNp+xKVOWBGS+MpaYQTjZFD5f+7QQqW4TfbAkFFwIAEYIHq5Q8Gw+jVh0h61OrV/LyW3J2PVzc+w== + dependencies: + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" tslib "^2.5.0" @@ -1930,14 +1777,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/invalid-dependency@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.338.0.tgz#0f0a2a14474c936066e0e2404fd76a9d2d14a92b" - integrity sha512-m6r1fTTGSl0V6l8Z+Ii4Ei8VFpDmu0AT6A59ZhJaMZgxf925ywuCPydyDW9ZqTLE0e7CgxhEHEsH1+HzpVuHTw== - dependencies: - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/invalid-dependency@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.6.1.tgz#fd2519f5482c6d6113d38a73b7143fd8d5b5b670" @@ -1968,23 +1807,23 @@ tslib "^1.8.0" "@aws-sdk/lib-storage@^3.25.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.338.0.tgz#90c54a5902b82a08ece28891cfe145aa08d4d64f" - integrity sha512-Vcxy4rI6ieKyJSFoajwInP1Idy4Dyc2IlEStOqEERwEgw2nIUybGdsBXn0w+0qz5XrQuLm88dVf8mCBbd5Q4NA== + version "3.367.0" + resolved "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.367.0.tgz#e7cea23a0ba39206d674787ade7be483302c41e3" + integrity sha512-bwLVDQAiPQ5hGTGPOOmJsF9uxDY2lI/J648mdSp2GU373U0PvayOUp72j4nCibTXlOzSjSGcoK8sQksgeUHdyg== dependencies: - "@aws-sdk/middleware-endpoint" "3.338.0" - "@aws-sdk/smithy-client" "3.338.0" + "@smithy/middleware-endpoint" "^1.0.1" + "@smithy/smithy-client" "^1.0.3" buffer "5.6.0" events "3.3.0" stream-browserify "3.0.0" tslib "^2.5.0" -"@aws-sdk/md5-js@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.338.0.tgz#fbadecc01a9485363e76ed60029d7fad51480ddc" - integrity sha512-ixOI49fgbPBbag+H55k6d0bmHSG+RqXPbXHwlnaM9Fkgqc+GrR+jGEyQO9XQqETmKhTam3qkOLBGNeqSLiTOWw== +"@aws-sdk/md5-js@3.357.0": + version "3.357.0" + resolved "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.357.0.tgz#61853f562e71af0ec58aeede7883de122177ed55" + integrity sha512-to42sFAL7KgV/X9X40LLfEaNMHMGQL6/7mPMVCL/W2BZf3zw5OTl3lAaNyjXA+gO5Uo4lFEiQKAQVKNbr8b8Nw== dependencies: - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" tslib "^2.5.0" @@ -2007,15 +1846,16 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/middleware-bucket-endpoint@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.338.0.tgz#a6206e1e2981db3b6a058c07cf67ddaa8c91d92b" - integrity sha512-6eftaAt2yLd1sPSp12/HaYlCwOPXYZc8jPoE2gHb5CW1aMof6DfiZdYs+nOuX/mRpuWgBCtmsA1LtC+VlL8EIg== +"@aws-sdk/middleware-bucket-endpoint@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.363.0.tgz#6c9b2dda20eaaf9171b7f2c4faff3b34b4331522" + integrity sha512-kR8+0X50zslpzRW29q4JbpPMadE1z39ZfGwPaBLKpoWvSGt4x+75FaoK71TH7urPPoFyD2Y+XKGA6YRYTUNHSQ== dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-arn-parser" "3.310.0" - "@aws-sdk/util-config-provider" "3.310.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" + "@smithy/util-config-provider" "^1.0.1" tslib "^2.5.0" "@aws-sdk/middleware-bucket-endpoint@3.6.1": @@ -2037,15 +1877,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-content-length@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.338.0.tgz#027e2f4a5cb7d5afa3cd992191a84634c78e3df7" - integrity sha512-m2C+yJaNmbA3ocBp/7ImUUuimymV5JsFdV7yAibpbYMX22g3q83nieOF9x0I66J0+h+/bcriz/T1ZJAPANLz/g== - dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/middleware-content-length@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.6.1.tgz#f9c00a4045b2b56c1ff8bcbb3dec9c3d42332992" @@ -2055,17 +1886,6 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/middleware-endpoint@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.338.0.tgz#5cde32cc018aaef97f634edef7cc5c0d64c3c1b6" - integrity sha512-bzL9Q8lFidg2NTjGVGDKI6yPG/XiPS+VIAMHJeihQmcv1alIy+N3IL4bEN15Fg+cwaGm+P3BevcLIHmcCOVb4w== - dependencies: - "@aws-sdk/middleware-serde" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/url-parser" "3.338.0" - "@aws-sdk/util-middleware" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/middleware-eventstream@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.186.0.tgz#64a66102ed2e182182473948f131f23dda84e729" @@ -2075,13 +1895,14 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-expect-continue@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.338.0.tgz#584fd90ba87489cf7d3df18d13a759ea9b27d96e" - integrity sha512-a5VJEzAIeY6cvK1GBq9FJAgbh8N1axLypbL3gQuJwsRSwzkUxLKifZcXv2sCar/fn4NTrZwf5CwLVtZuGceFpg== +"@aws-sdk/middleware-expect-continue@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.363.0.tgz#125356f3685e14eaa8816383bbf5f3de05dd856e" + integrity sha512-I88xneZp6jRwySmIl9uI7eZCcTsqRVnTDfUr1JiXt7zonqNNm80PVYMs6pwaw7t97ec1AQJcsONjuXZyCMnu5g== dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-expect-continue@3.6.1": @@ -2094,17 +1915,18 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/middleware-flexible-checksums@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.338.0.tgz#0f46f0461d8068c15a2f8263c862172f42cdf72f" - integrity sha512-J1Hk6Ea8fkKmiI07mCS/A81W+tO3ZSZ/Dxdm41ljy76vli/sBQZ38W7ISoYB2PkBOsmIt1xZI4sG/16G/f8TAg== +"@aws-sdk/middleware-flexible-checksums@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.363.0.tgz#99cd3e09183768ac378eae5c5f4e54189147921d" + integrity sha512-FBYmrMRX01uNximNN0WLgpf97GN4xNTLaKsDlkjYRWKJ+J97ICkvLG0FcSu7+SNCpCdJJBeQ5tRVOPVpUu6nmA== dependencies: "@aws-crypto/crc32" "3.0.0" "@aws-crypto/crc32c" "3.0.0" - "@aws-sdk/is-array-buffer" "3.310.0" - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-utf8" "3.310.0" + "@aws-sdk/types" "3.357.0" + "@smithy/is-array-buffer" "^1.0.1" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" + "@smithy/util-utf8" "^1.0.1" tslib "^2.5.0" "@aws-sdk/middleware-header-default@3.6.1": @@ -2125,13 +1947,14 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-host-header@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz#0c872f85b3995e6e124536600fa0b9b7d9187a20" - integrity sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w== +"@aws-sdk/middleware-host-header@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.363.0.tgz#3fc25569c1fdbb29ee7b95690d222743b9791210" + integrity sha512-FobpclDCf5Y1ueyJDmb9MqguAdPssNMlnqWQpujhYVABq69KHu73fSCWSauFPUrw7YOpV8kG1uagDF0POSxHzA== dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-host-header@3.6.1": @@ -2143,12 +1966,13 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/middleware-location-constraint@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.338.0.tgz#b74e9701de3bd8f540e1ebb19db58176fedf5122" - integrity sha512-+ozf/PCTvmbSYvFGviZCoYjw2ft6qywHPnDVqS4e49mLQUI4EAWGUfODDVRgIUEvZcpMlEe5Xbt5hV755McuKQ== +"@aws-sdk/middleware-location-constraint@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.363.0.tgz#48c8a16698d7678578a5f06e0eb7f8118ec86f82" + integrity sha512-piNzpNNI/fChSGOZxcq/2msN2qFUSEAbhqs91zbcpv8CEPekVLc4W9laXCG764BEMyfG97ZU8MtzwHeMhELhBA== dependencies: - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-location-constraint@3.6.1": @@ -2167,12 +1991,13 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-logger@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz#d8bcb19c9b362ed8b6612635f6404875c022b595" - integrity sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg== +"@aws-sdk/middleware-logger@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.363.0.tgz#64ebef9910802f9437cae8900e8825ca5141c9ed" + integrity sha512-SSGgthScYnFGTOw8EzbkvquqweFmvn7uJihkpFekbtBNGC/jGOGO+8ziHjTQ8t/iI/YKubEwv+LMi0f77HKSEg== dependencies: - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-logger@3.6.1": @@ -2192,13 +2017,14 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-recursion-detection@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz#2b9746c626a8a58a891af5964b418743d55ffb2d" - integrity sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow== +"@aws-sdk/middleware-recursion-detection@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.363.0.tgz#bd8b8010f5be5d7e90a97bf9e55a7980289b1600" + integrity sha512-MWD/57QgI/N7fG8rtzDTUdSqNpYohQfgj9XCFAoVeI/bU4usrkOrew43L4smJG4XrDxlNT8lSJlDtd64tuiUZA== dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-retry@3.186.0": @@ -2213,19 +2039,6 @@ tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/middleware-retry@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.338.0.tgz#11aab11993cb1cf3654b0c73df854cd5a9204e12" - integrity sha512-nw1oPFkB7TdDG4Vlz2Td47ft/2Gmx1bA18QfE9K1mMWZ4nnoAL8xnHbowlTfHo62+BbFCAPu53PzDUCncBL0iw== - dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/service-error-classification" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-middleware" "3.338.0" - "@aws-sdk/util-retry" "3.338.0" - tslib "^2.5.0" - uuid "^8.3.2" - "@aws-sdk/middleware-retry@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.6.1.tgz#202aadb1a3bf0e1ceabcd8319a5fa308b32db247" @@ -2238,14 +2051,15 @@ tslib "^1.8.0" uuid "^3.0.0" -"@aws-sdk/middleware-sdk-s3@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.338.0.tgz#986071b1f00c0e6c2902fd33d43b8111a81d6d6c" - integrity sha512-bgz6/S+PtJ+72+hCqUSoh1PispcU1GIHZvJTOyHp+NBOKvxbNZzDHNpXtLPcbh/XgzWeeVAa0hzy7fWg8BY9tw== +"@aws-sdk/middleware-sdk-s3@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.363.0.tgz#35e77ad14b6799b0be1c313d9c8b7ca0ad2f4fdb" + integrity sha512-npC8vLCero+vULizrK0QPjNanWbgH4A/2Llc1nO8N005uvUe7co6WglILF2W3guZrFk/0uGEdX67OnLxUD97pw== dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-arn-parser" "3.310.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-sdk-s3@3.6.1": @@ -2270,13 +2084,14 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-sdk-sts@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.338.0.tgz#671e1bba42806a42a8cb88f20d29655ac0bdd29d" - integrity sha512-aZ8eFVaot8oYQri1wOesrA3gLizeAHtlA/ELlqxoGDJtO011J4/hTHTn0iJGbktaCvc1L3TF6mgOsgXpudYqMg== +"@aws-sdk/middleware-sdk-sts@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.363.0.tgz#41b10aa8b8004bda9156cadde3b2302a84309e6a" + integrity sha512-1yy2Ac50FO8BrODaw5bPWvVrRhaVLqXTFH6iHB+dJLPUkwtY5zLM3Mp+9Ilm7kME+r7oIB1wuO6ZB1Lf4ZszIw== dependencies: - "@aws-sdk/middleware-signing" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/middleware-signing" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-serde@3.186.0": @@ -2287,14 +2102,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-serde@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.338.0.tgz#d4fb684a39465615e52d99ca346b8f82e7e96101" - integrity sha512-AabRLrE6sk9tqQlQ7z3kn4gTHNN7Anjk/AM0ZEu96WcWjedcpgM1vVpKTBE7vjnxcTRNq0CEM3GLtQqaZ7/HjQ== - dependencies: - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/middleware-serde@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.6.1.tgz#734c7d16c2aa9ccc01f6cca5e2f6aa2993b6739d" @@ -2315,16 +2122,17 @@ "@aws-sdk/util-middleware" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-signing@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.338.0.tgz#c1877ada8e9f7c0afa459b5b36cebf85a1a97ffa" - integrity sha512-AprhhShMF75mOx80SABujLwrU/w2uHQIvWd6aF3BsE5JRI3uQZRqspfjFCaK52HNLQPj3sCQUw1GeiZJ8GyWCw== - dependencies: - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/signature-v4" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-middleware" "3.338.0" +"@aws-sdk/middleware-signing@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.363.0.tgz#81067698e0566584f0ca30be56232758f69e2232" + integrity sha512-/7qia715pt9JKYIPDGu22WmdZxD8cfF/5xB+1kmILg7ZtjO0pPuTaCNJ7xiIuFd7Dn7JXp5lop08anX/GOhNRQ== + dependencies: + "@aws-sdk/types" "3.357.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/protocol-http" "^1.1.0" + "@smithy/signature-v4" "^1.0.1" + "@smithy/types" "^1.1.0" + "@smithy/util-middleware" "^1.0.1" tslib "^2.5.0" "@aws-sdk/middleware-signing@3.6.1": @@ -2337,12 +2145,13 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/middleware-ssec@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.338.0.tgz#c18697cfac8abda449a9e72d38adfc0086f1bfc4" - integrity sha512-ou2Xb8d56defib/DuwI/5gouBJzbeOp82eiV5opD33LfXIsQT0zatscd7UU1MtLKADaTthis9BA1VtNKq9Zmig== +"@aws-sdk/middleware-ssec@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.363.0.tgz#9dde9e09660bcb6a0d39939d7f1ab043b93fefdb" + integrity sha512-pN+QN1rMShYpJnTJSCIYnNRhD0S8xSZsTn6ThgcO559Xiwz5LMHFOfOXUCEyxtbVW5kMHLUh3w101AMUKae99A== dependencies: - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-ssec@3.6.1": @@ -2360,13 +2169,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/middleware-stack@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.338.0.tgz#ab923fc8ebeb5dc23874b357101a575daa1ada21" - integrity sha512-9zXyiklX9AK9ZIXuIPzWzz2vevBEcnBs9UNIxiHl4NBZ8d8oyTvaES1PtFuwL6f7ANSZ9EGVQ2rdTTnMNxMI1A== - dependencies: - tslib "^2.5.0" - "@aws-sdk/middleware-stack@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.6.1.tgz#d7483201706bb5935a62884e9b60f425f1c6434f" @@ -2383,14 +2185,15 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/middleware-user-agent@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz#25de08397fde96bbea0fa7dc7209ca95869aff64" - integrity sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ== +"@aws-sdk/middleware-user-agent@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.363.0.tgz#a75a7ca5c791a68d750736c87b968b54d394443d" + integrity sha512-ri8YaQvXP6odteVTMfxPqFR26Q0h9ejtqhUDv47P34FaKXedEM4nC6ix6o+5FEYj6l8syGyktftZ5O70NoEhug== dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-endpoints" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/middleware-user-agent@3.6.1": @@ -2412,16 +2215,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/node-config-provider@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.338.0.tgz#930546e2d5494e51d8c645c6d364e8c4a2ae033c" - integrity sha512-YO7yWg3ipnUI5u6D+Zn2NUpjj5krwc8zNWeY79ULVIp9g7faqGX3xMSjeRSrpZ83s5jg1dOm/+bB0gw7mCrRCw== - dependencies: - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/shared-ini-file-loader" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/node-config-provider@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.6.1.tgz#cb85d06329347fde566f08426f8714b1f65d2fb7" @@ -2443,17 +2236,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/node-http-handler@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.338.0.tgz#3a7332ca68a08f72311ec99d64e7c5a0fcff1e64" - integrity sha512-V1BLzCruiv45tJ0vXjiamY8LncIsUFsXYJGDupomFYhWRN8L1MUB9f2vdKn5X3wXn/yKrluwTmNaryrIqd9akA== - dependencies: - "@aws-sdk/abort-controller" "3.338.0" - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/querystring-builder" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/node-http-handler@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.6.1.tgz#4b65c4dcc0cf46ba44cb6c3bf29c5f817bb8d9a7" @@ -2473,14 +2255,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/property-provider@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.338.0.tgz#88b6f6be61d09f26277c1982bfd10f499870393d" - integrity sha512-mC+ZJ738ipif6ZkH59gcipozYj1FOfpXr9pGVCA2hJGLDdaBwI2Jfpb2qCqbsTNtoCjBuIy+sQHGmUHyclgYHg== - dependencies: - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/property-provider@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.6.1.tgz#d973fc87d199d32c44d947e17f2ee2dd140a9593" @@ -2497,14 +2271,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/protocol-http@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.338.0.tgz#0d3e20881dfb5a00daa246e79a2c0da0a088489b" - integrity sha512-JX03Q2gshdzOWtA/07kdpk0hqeOrOfwuF8TB97g66VCcIopYQkCeNH1zzkWu+RsGxfSlzQ7up+ZM6sclYXyB1A== - dependencies: - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/protocol-http@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.6.1.tgz#d3d276846bec19ddb339d06bbc48116d17bbc656" @@ -2522,15 +2288,6 @@ "@aws-sdk/util-uri-escape" "3.186.0" tslib "^2.3.1" -"@aws-sdk/querystring-builder@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.338.0.tgz#2f8668d3bfb1cf9c49876116a07902b17025da8f" - integrity sha512-IB3YhO93Htwt2SxJx4VWsN57Rt1KEsvZ6PbneO4bcS96E04BlfBujYMZ+QxEM3EJxorhpkwbI2QnI12IjD8FhA== - dependencies: - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-uri-escape" "3.310.0" - tslib "^2.5.0" - "@aws-sdk/querystring-builder@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.6.1.tgz#4c769829a3760ef065d0d3801f297a7f0cd324d4" @@ -2548,14 +2305,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/querystring-parser@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.338.0.tgz#6b376b0b05b773d8ce8271a1d80593d1af94234c" - integrity sha512-vtI8Gqx4yj0BZlWonRMgLz68sHt5H48HN+ClnY+fDDB/8KLnCuwZ3TGKmYIbYbshL9wjJz0A9aLzuC6nPQ5JKw== - dependencies: - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/querystring-parser@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.6.1.tgz#e3fa5a710429c7dd411e802a0b82beb48012cce2" @@ -2582,11 +2331,6 @@ resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.186.0.tgz#6e4e1d4b53d68bd28c28d9cf0b3b4cb6a6a59dbb" integrity sha512-DRl3ORk4tF+jmH5uvftlfaq0IeKKpt0UPAOAFQ/JFWe+TjOcQd/K+VC0iiIG97YFp3aeFmH1JbEgsNxd+8fdxw== -"@aws-sdk/service-error-classification@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.338.0.tgz#67d009b177fb03133fdfacbcd98b054dd34efbf0" - integrity sha512-BJFr2mx/N3NbycGTlMMGRBc0tGcHXHEbMPy1H2RbejzL23zh27MchaL1WAK9SvwVMKS29hSDbhkuVR2ABRjerA== - "@aws-sdk/service-error-classification@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.6.1.tgz#296fe62ac61338341e8a009c9a2dab013a791903" @@ -2600,14 +2344,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/shared-ini-file-loader@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.338.0.tgz#c443df5fea13fe42785c2dc93bec312aa32d803d" - integrity sha512-MA1Sp97LFlOXcUaXgo47j86IsPRWYq1V/JqR+uu0zofZw4Xlt7Y6F+mmnDHvuuMy6R2ltzjXSwgrrW3k0bxFPA== - dependencies: - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/shared-ini-file-loader@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.6.1.tgz#2b7182cbb0d632ad7c9712bebffdeee24a6f7eb6" @@ -2615,14 +2351,15 @@ dependencies: tslib "^1.8.0" -"@aws-sdk/signature-v4-multi-region@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.338.0.tgz#175072cd151a6977edafafdfbe4f88c4e9eb9b87" - integrity sha512-mo61z1PiJ8GcLXLUcp9s4WqBd+hy+R0ymH2ohrLE4aw8H0FEq44zvTBXmI9GjycXGStdCpeU9+S2FkXxYPuy4w== +"@aws-sdk/signature-v4-multi-region@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.363.0.tgz#7c64ba8a6af6f52f73ef849d4fcdd102f63ad606" + integrity sha512-iWamQSpaBKg88LKuiUq8xO/7iyxJ+ORkA3qDhAwUqyTJOg87ma47yFf4ycCKqINnflc3AIGLGzBHnkBc4cMF5g== dependencies: - "@aws-sdk/protocol-http" "3.338.0" - "@aws-sdk/signature-v4" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/protocol-http" "^1.1.0" + "@smithy/signature-v4" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/signature-v4@3.186.0": @@ -2637,19 +2374,6 @@ "@aws-sdk/util-uri-escape" "3.186.0" tslib "^2.3.1" -"@aws-sdk/signature-v4@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.338.0.tgz#3d5402ee10027958c5271b390c0966683d681a53" - integrity sha512-EwKTe/8Iwab/v0eo27w7DRYlqp9wEZEhuRfOMwTikUVH6iuTnW6AXjcIUfcRYBRbx2zqnRSiMAZkjN6ZFYm0bQ== - dependencies: - "@aws-sdk/is-array-buffer" "3.310.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-hex-encoding" "3.310.0" - "@aws-sdk/util-middleware" "3.338.0" - "@aws-sdk/util-uri-escape" "3.310.0" - "@aws-sdk/util-utf8" "3.310.0" - tslib "^2.5.0" - "@aws-sdk/signature-v4@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.6.1.tgz#b20a3cf3e891131f83b012651f7d4af2bf240611" @@ -2670,15 +2394,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/smithy-client@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.338.0.tgz#fc391b1fd57e1c002cae2bc93db6e931312a6a59" - integrity sha512-IpFLdLG8GwaiFdqVXf+WyU47Hfa2BMIupAU6iSkE2ZO0lBdg+efn/BBwis5WbBNTDCaaU0xH9y68SmnqqtD7pA== - dependencies: - "@aws-sdk/middleware-stack" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/smithy-client@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.6.1.tgz#683fef89802e318922f8529a5433592d71a7ce9d" @@ -2688,15 +2403,16 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/token-providers@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz#7df35becb85bb689e0de51a0cad27f7978f3fb8a" - integrity sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg== +"@aws-sdk/token-providers@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.363.0.tgz#c211ed6db62620c46194506db6d785f5c36aedc5" + integrity sha512-6+0aJ1zugNgsMmhTtW2LBWxOVSaXCUk2q3xyTchSXkNzallYaRiZMRkieW+pKNntnu0g5H1T0zyfCO0tbXwxEA== dependencies: - "@aws-sdk/client-sso-oidc" "3.338.0" - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/shared-ini-file-loader" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/client-sso-oidc" "3.363.0" + "@aws-sdk/types" "3.357.0" + "@smithy/property-provider" "^1.0.1" + "@smithy/shared-ini-file-loader" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/types@3.186.0": @@ -2704,10 +2420,10 @@ resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.186.0.tgz#f6fb6997b6a364f399288bfd5cd494bc680ac922" integrity sha512-NatmSU37U+XauMFJCdFI6nougC20JUFZar+ump5wVv0i54H+2Refg1YbFDxSs0FY28TSB9jfhWIpfFBmXgL5MQ== -"@aws-sdk/types@3.338.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0", "@aws-sdk/types@^3.222.0", "@aws-sdk/types@^3.25.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz#2b14c063f3be09d2465fe23fd2554ce2287fbeca" - integrity sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA== +"@aws-sdk/types@3.357.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0", "@aws-sdk/types@^3.222.0", "@aws-sdk/types@^3.25.0": + version "3.357.0" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz#8491da71a4291cc2661c26a75089e86532b6a3b5" + integrity sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g== dependencies: tslib "^2.5.0" @@ -2716,11 +2432,6 @@ resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz#00686db69e998b521fcd4a5f81ef0960980f80c4" integrity sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g== -"@aws-sdk/types@^1.0.0-alpha.0": - version "1.0.0-rc.10" - resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-1.0.0-rc.10.tgz#729127fbfac5da1a3368ffe6ec2e90acc9ad69c3" - integrity sha512-9gwhYnkTNuYZ+etCtM4T8gjpZ0SWSXbzQxY34UjSS+dt3C/UnbX0J22tMahp/9Z1yCa9pihtXrkD+nO2xn7nVQ== - "@aws-sdk/url-parser-native@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/url-parser-native/-/url-parser-native-3.6.1.tgz#a5e787f98aafa777e73007f9490df334ef3389a2" @@ -2740,15 +2451,6 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/url-parser@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.338.0.tgz#ef7bee904d55dc2a55a819028dec63d7e4c1128f" - integrity sha512-x8a5swfZ6iWJZEA8rm99OKQ1A6xhWPP1taQUzoPavGCzPAOqyc8cd0FcXYMxvtXb3FeBhGaI8tiGKvelJro0+A== - dependencies: - "@aws-sdk/querystring-parser" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/url-parser@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.6.1.tgz#f5d89fb21680469a61cb9fe08a7da3ef887884dd" @@ -2817,13 +2519,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-body-length-browser@3.310.0": - version "3.310.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz#3fca9d2f73c058edf1907e4a1d99a392fdd23eca" - integrity sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g== - dependencies: - tslib "^2.5.0" - "@aws-sdk/util-body-length-browser@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.6.1.tgz#2e8088f2d9a5a8258b4f56079a8890f538c2797e" @@ -2838,13 +2533,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-body-length-node@3.310.0": - version "3.310.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz#4846ae72834ab0636f29f89fc1878520f6543fed" - integrity sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ== - dependencies: - tslib "^2.5.0" - "@aws-sdk/util-body-length-node@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.6.1.tgz#6e4f2eae46c5a7b0417a12ca7f4b54c390d4cacd" @@ -2883,13 +2571,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-config-provider@3.310.0": - version "3.310.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz#ff21f73d4774cfd7bd16ae56f905828600dda95f" - integrity sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg== - dependencies: - tslib "^2.5.0" - "@aws-sdk/util-create-request@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.6.1.tgz#ecc4364551c7b3d0d9834ca3f56528fb8b083838" @@ -2910,16 +2591,6 @@ bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-browser@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.338.0.tgz#6cdeec6c5f702a61cc4ce79471789162d0b39c4b" - integrity sha512-Zfr5c7JKMJTfb7z+hgd0ioU5iw+wId6Cppc5V1HpZuS2YY4Mn3aJIixzyzhIoCzbmk/yIkf96981epM9eo3/TA== - dependencies: - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/types" "3.338.0" - bowser "^2.11.0" - tslib "^2.5.0" - "@aws-sdk/util-defaults-mode-node@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.186.0.tgz#8572453ba910fd2ab08d2cfee130ce5a0db83ba7" @@ -2932,24 +2603,12 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-node@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.338.0.tgz#cb87b039f90d124e70a53769ae1ebbce6d253f3c" - integrity sha512-DFM3BSpSetshZTgTjueCkAYZWS0tn5zl7SjkSpFhWQZ8Tt/Df3/DEjcPvxzmC/5vgYSUXNsqcI7lLAJk9aGZAA== - dependencies: - "@aws-sdk/config-resolver" "3.338.0" - "@aws-sdk/credential-provider-imds" "3.338.0" - "@aws-sdk/node-config-provider" "3.338.0" - "@aws-sdk/property-provider" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - -"@aws-sdk/util-endpoints@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz#f54c09b06daa8dd1bd96e479ebda3b21492631ea" - integrity sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A== +"@aws-sdk/util-endpoints@3.357.0": + version "3.357.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.357.0.tgz#eaa7b4481bbd9fc8f13412b308ba4129d8fa2004" + integrity sha512-XHKyS5JClT9su9hDif715jpZiWHQF9gKZXER8tW0gOizU3R9cyWc9EsJ2BRhFNhi7nt/JF/CLUEc5qDx3ETbUw== dependencies: - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/util-format-url@3.6.1": @@ -2968,13 +2627,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-hex-encoding@3.310.0", "@aws-sdk/util-hex-encoding@^3.29.0": - version "3.310.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz#19294c78986c90ae33f04491487863dc1d33bd87" - integrity sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA== - dependencies: - tslib "^2.5.0" - "@aws-sdk/util-hex-encoding@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.6.1.tgz#84954fcc47b74ffbd2911ba5113e93bd9b1c6510" @@ -2982,6 +2634,13 @@ dependencies: tslib "^1.8.0" +"@aws-sdk/util-hex-encoding@^3.29.0": + version "3.310.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz#19294c78986c90ae33f04491487863dc1d33bd87" + integrity sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA== + dependencies: + tslib "^2.5.0" + "@aws-sdk/util-locate-window@^3.0.0": version "3.310.0" resolved "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40" @@ -2994,44 +2653,7 @@ resolved "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.186.0.tgz#ba2e286b206cbead306b6d2564f9d0495f384b40" integrity sha512-fddwDgXtnHyL9mEZ4s1tBBsKnVQHqTUmFbZKUUKPrg9CxOh0Y/zZxEa5Olg/8dS/LzM1tvg0ATkcyd4/kEHIhg== dependencies: - tslib "^2.3.1" - -"@aws-sdk/util-middleware@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.338.0.tgz#3b405eba916285a7764885376e0d16f973efdf98" - integrity sha512-oQuAmhi16HWEqVa+Nq4VD4Ymet9vS+uiW92reaagQrW2QFjAgJW9A6pU0PcIHF9sWY1iDKeNdV5b9odQ45PDJA== - dependencies: - tslib "^2.5.0" - -"@aws-sdk/util-retry@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.338.0.tgz#c71c8a52033a619896296c532246f67703ef9ef9" - integrity sha512-diR6M3gJgSgBg/87L2e8iF8urG+LOW9ZGWxhntYpYX4uhiIjwNgUPUa993553C8GIOZDHez5X9ExU4asYGQ71Q== - dependencies: - "@aws-sdk/service-error-classification" "3.338.0" - tslib "^2.5.0" - -"@aws-sdk/util-stream-browser@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.338.0.tgz#10dd0661e4fac568f101837cf9593c8288600bf8" - integrity sha512-s44/cmeXOPNjYWXjns5j73ABnshgzwcQ1v7fat76P72XEvphqDJRaxiHeX1+LxgP1FRyySKYlE5Z32jVSAt7lA== - dependencies: - "@aws-sdk/fetch-http-handler" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-base64" "3.310.0" - "@aws-sdk/util-hex-encoding" "3.310.0" - "@aws-sdk/util-utf8" "3.310.0" - tslib "^2.5.0" - -"@aws-sdk/util-stream-node@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.338.0.tgz#5522c46c53288a4c5dea88ff9936be04f13b45a9" - integrity sha512-ioj8Ps6a/napPG3vQ4MpbX8YGQSPbBFG7fBSkMwKL5dxm8DD18F0ERKNwglm9I8h2n8yuOwCWF9PSMgcNaDoFA== - dependencies: - "@aws-sdk/node-http-handler" "3.338.0" - "@aws-sdk/types" "3.338.0" - "@aws-sdk/util-buffer-from" "3.310.0" - tslib "^2.5.0" + tslib "^2.3.1" "@aws-sdk/util-uri-escape@3.186.0": version "3.186.0" @@ -3040,13 +2662,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-uri-escape@3.310.0": - version "3.310.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz#9f942f09a715d8278875013a416295746b6085ba" - integrity sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q== - dependencies: - tslib "^2.5.0" - "@aws-sdk/util-uri-escape@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.6.1.tgz#433e87458bb510d0e457a86c0acf12b046a5068c" @@ -3063,12 +2678,13 @@ bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-user-agent-browser@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz#51d78d6fa7a071211260814aaa86bc24c7f7765c" - integrity sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA== +"@aws-sdk/util-user-agent-browser@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.363.0.tgz#6f0655976f4f5889d6f0abed6c6cdc665cab524f" + integrity sha512-fk9ymBUIYbxiGm99Cn+kAAXmvMCWTf/cHAcB79oCXV4ELXdPa9lN5xQhZRFNxLUeXG4OAMEuCAUUuZEj8Fnc1Q== dependencies: - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/types" "^1.1.0" bowser "^2.11.0" tslib "^2.5.0" @@ -3090,13 +2706,14 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" -"@aws-sdk/util-user-agent-node@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz#e321e70da741356b348f4f0921a8bc94ad18320d" - integrity sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q== +"@aws-sdk/util-user-agent-node@3.363.0": + version "3.363.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.363.0.tgz#9df26188a3d22694b4d06f5f40c489cb22fddb48" + integrity sha512-Fli/dvgGA9hdnQUrYb1//wNSFlK2jAfdJcfNXA6SeBYzSeH5pVGYF4kXF0FCdnMA3Fef+Zn1zAP/hw9v8VJHWQ== dependencies: - "@aws-sdk/node-config-provider" "3.338.0" - "@aws-sdk/types" "3.338.0" + "@aws-sdk/types" "3.357.0" + "@smithy/node-config-provider" "^1.0.1" + "@smithy/types" "^1.1.0" tslib "^2.5.0" "@aws-sdk/util-user-agent-node@3.6.1": @@ -3122,13 +2739,6 @@ dependencies: tslib "^1.8.0" -"@aws-sdk/util-utf8-browser@^1.0.0-alpha.0": - version "1.0.0-rc.8" - resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-1.0.0-rc.8.tgz#bf1f1cfed8c024f43a7c43b643fdf2b4523b5973" - integrity sha512-clncPMJ23rxCIkZ9LoUC8SowwZGxWyN2TwRb0XvW/Cv9EavkRgRCOrCpneGyC326lqtMKx36onnpaSRHxErUYw== - dependencies: - tslib "^1.8.0" - "@aws-sdk/util-utf8-browser@^3.0.0": version "3.259.0" resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" @@ -3160,15 +2770,6 @@ "@aws-sdk/util-buffer-from" "3.310.0" tslib "^2.5.0" -"@aws-sdk/util-waiter@3.338.0": - version "3.338.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.338.0.tgz#a7f2906fbd624a114e329f1517c8f3e2e9b76bc6" - integrity sha512-15yWYJo/M4VDpZjlXgQDM4Du8UjX33eIVPJDrOmn/u+UrD6QUXoBuLXKns0uAMUTPFacBGZ0NwMywxieq0g11Q== - dependencies: - "@aws-sdk/abort-controller" "3.338.0" - "@aws-sdk/types" "3.338.0" - tslib "^2.5.0" - "@aws-sdk/util-waiter@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.6.1.tgz#5c66c2da33ff98468726fefddc2ca7ac3352c17d" @@ -3192,38 +2793,38 @@ dependencies: tslib "^1.8.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.21.4": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.5" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": - version "7.21.9" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.9.tgz#10a2e7fda4e51742c907938ac3b7229426515514" - integrity sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ== +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" + integrity sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg== "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.21.8" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" - integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== + version "7.22.8" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.8.tgz#386470abe884302db9c82e8e5e87be9e46c86785" + integrity sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helpers" "^7.21.5" - "@babel/parser" "^7.21.8" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.7" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helpers" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.8" + "@babel/types" "^7.22.5" + "@nicolo-ribaudo/semver-v6" "^6.3.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" - semver "^6.3.0" "@babel/generator@7.0.0-beta.4": version "7.0.0-beta.4" @@ -3236,179 +2837,179 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.14.0", "@babel/generator@^7.21.5", "@babel/generator@^7.7.2": - version "7.21.9" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz#3a1b706e07d836e204aee0650e8ee878d3aaa241" - integrity sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg== +"@babel/generator@^7.14.0", "@babel/generator@^7.22.7", "@babel/generator@^7.7.2": + version "7.22.7" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" + integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== dependencies: - "@babel/types" "^7.21.5" + "@babel/types" "^7.22.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" - integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" + integrity sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA== dependencies: - "@babel/compat-data" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" + "@babel/compat-data" "^7.22.6" + "@babel/helper-validator-option" "^7.22.5" + "@nicolo-ribaudo/semver-v6" "^6.3.3" + browserslist "^4.21.9" lru-cache "^5.1.1" - semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.18.6": - version "7.21.8" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" - integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.21.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" - integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.21.5": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" - integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-module-imports@^7.21.4": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== - dependencies: - "@babel/types" "^7.21.4" - -"@babel/helper-module-transforms@^7.21.5": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" - integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-simple-access" "^7.21.5" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" - integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" - integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-simple-access@^7.21.5": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" - integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.21.5": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" - integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helpers@^7.21.5": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" - integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.6.tgz#58564873c889a6fea05a538e23f9f6d201f10950" + integrity sha512-iwdzgtSiBxF6ni6mzVnZCF3xt5qE6cEA0J7nFt8QOAWZ0zjCFceEgpn3vtb2V7WFR6QzP2jmIFOHMTRo7eNJjQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@nicolo-ribaudo/semver-v6" "^6.3.3" + +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== + +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" + integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-transforms@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" + integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-replace-supers@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" + integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/helper-validator-option@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + +"@babel/helpers@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" + integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== + dependencies: + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.6" + "@babel/types" "^7.22.5" + +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8", "@babel/parser@^7.21.9": - version "7.21.9" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz#ab18ea3b85b4bc33ba98a8d4c2032c557d23cf14" - integrity sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": + version "7.22.7" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== "@babel/plugin-proposal-class-properties@^7.0.0": version "7.18.6" @@ -3450,12 +3051,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.18.6": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107" - integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw== +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -3471,12 +3072,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.21.4": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" - integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -3528,201 +3129,201 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" - integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" + integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" - integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== dependencies: - "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-block-scoped-functions@^7.0.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-block-scoping@^7.0.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" - integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" + integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-classes@^7.0.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" + integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.0.0": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" - integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/template" "^7.20.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" "@babel/plugin-transform-destructuring@^7.0.0": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" - integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" + integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" - integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" + integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-flow" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" "@babel/plugin-transform-for-of@^7.0.0": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" - integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" + integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== dependencies: - "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-function-name@^7.0.0": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-literals@^7.0.0": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-member-expression-literals@^7.0.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" - integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" + integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== dependencies: - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" "@babel/plugin-transform-object-super@^7.0.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" "@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" + integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-property-literals@^7.0.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-display-name@^7.0.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" - integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" + integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-jsx@^7.0.0": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz#bd98f3b429688243e4fa131fe1cbb2ef31ce6f38" - integrity sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" + integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/plugin-syntax-jsx" "^7.21.4" - "@babel/types" "^7.21.5" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.5" "@babel/plugin-transform-shorthand-properties@^7.0.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-spread@^7.0.0": - version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-template-literals@^7.0.0": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/runtime@^7.0.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.9.6": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" - integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" + integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.21.9" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" - integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/parser" "^7.21.9" - "@babel/types" "^7.21.5" - -"@babel/traverse@^7.14.0", "@babel/traverse@^7.21.5", "@babel/traverse@^7.7.2": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" - integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.5" - "@babel/types" "^7.21.5" +"@babel/template@^7.22.5", "@babel/template@^7.3.3": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/traverse@^7.14.0", "@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.7.2": + version "7.22.8" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" + integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.7" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/types" "^7.22.5" debug "^4.1.0" globals "^11.1.0" @@ -3735,13 +3336,13 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.3": - version "7.21.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" - integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== dependencies: - "@babel/helper-string-parser" "^7.21.5" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" "@balena/dockerignore@^1.0.2": @@ -3760,12 +3361,12 @@ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@commitlint/cli@^17.0.3": - version "17.6.3" - resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-17.6.3.tgz#a02194a2bb6efe4e681eda2addd072a8d02c9497" - integrity sha512-ItSz2fd4F+CujgIbQOfNNerDF1eFlsBGEfp9QcCb1kxTYMuKTYZzA6Nu1YRRrIaaWwe2E7awUGpIMrPoZkOG3A== + version "17.6.6" + resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-17.6.6.tgz#416da9c45901323e5bf931aa1eac5995a3aa251c" + integrity sha512-sTKpr2i/Fjs9OmhU+beBxjPavpnLSqZaO6CzwKVq2Tc4UYVTMFgpKOslDhUBVlfAUBfjVO8ParxC/MXkIOevEA== dependencies: "@commitlint/format" "^17.4.4" - "@commitlint/lint" "^17.6.3" + "@commitlint/lint" "^17.6.6" "@commitlint/load" "^17.5.0" "@commitlint/read" "^17.5.1" "@commitlint/types" "^17.4.4" @@ -3776,21 +3377,21 @@ yargs "^17.0.0" "@commitlint/config-conventional@^17.0.3": - version "17.6.3" - resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.3.tgz#21f5835235493e386effeaa98b898124230b1000" - integrity sha512-bLyHEjjRWqlLQWIgYFHmUPbEFMOOLXeF3QbUinDIJev/u9e769tkoTH9YPknEywiuIrAgZaVo+OfzAIsJP0fsw== + version "17.6.6" + resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.6.tgz#5452aa601d34503b88530ba38432116bcffdd005" + integrity sha512-phqPz3BDhfj49FUYuuZIuDiw+7T6gNAEy7Yew1IBHqSohVUCWOK2FXMSAExzS2/9X+ET93g0Uz83KjiHDOOFag== dependencies: conventional-changelog-conventionalcommits "^5.0.0" "@commitlint/config-lerna-scopes@^17.0.2": - version "17.6.3" - resolved "https://registry.npmjs.org/@commitlint/config-lerna-scopes/-/config-lerna-scopes-17.6.3.tgz#36d4f7b19f913a02b833e7c5d0dfde28d6946a31" - integrity sha512-mjT+cvc/aOOV2hH9UDOD4uT25MUqjFg1dFV+ol1w2ESv/VwLZEMUpQ+DPMkOlaH/et8c7BIaEZYyKByoNO9Ukw== + version "17.6.6" + resolved "https://registry.npmjs.org/@commitlint/config-lerna-scopes/-/config-lerna-scopes-17.6.6.tgz#27b0ce810a2d03273bd65796910fd976368e99a6" + integrity sha512-txGAmX2v6QKyoocTy7opM0UaR0ByVJ6YF+AxfRF5IyBL/qvBMyaFCJEM1OgXflmVD8NxzgETp3iM/npT3uxoCg== dependencies: "@lerna/project" "^6.0.0" glob "^8.0.3" import-from "4.0.0" - semver "7.5.0" + semver "7.5.2" "@commitlint/config-validator@^17.4.4": version "17.4.4" @@ -3825,22 +3426,22 @@ "@commitlint/types" "^17.4.4" chalk "^4.1.0" -"@commitlint/is-ignored@^17.6.3": - version "17.6.3" - resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.6.3.tgz#8e21046558a0339fbf2a33ef0ad7d5a9ae7ff6bc" - integrity sha512-LQbNdnPbxrpbcrVKR5yf51SvquqktpyZJwqXx3lUMF6+nT9PHB8xn3wLy8pi2EQv5Zwba484JnUwDE1ygVYNQA== +"@commitlint/is-ignored@^17.6.6": + version "17.6.6" + resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.6.6.tgz#b1c869757bdea659aa582669ea0066798ed6a17e" + integrity sha512-4Fw875faAKO+2nILC04yW/2Vy/wlV3BOYCSQ4CEFzriPEprc1Td2LILmqmft6PDEK5Sr14dT9tEzeaZj0V56Gg== dependencies: "@commitlint/types" "^17.4.4" - semver "7.5.0" + semver "7.5.2" -"@commitlint/lint@^17.6.3": - version "17.6.3" - resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-17.6.3.tgz#2d9a88b73c44be8b97508c980198a6f289251655" - integrity sha512-fBlXwt6SHJFgm3Tz+luuo3DkydAx9HNC5y4eBqcKuDuMVqHd2ugMNr+bQtx6riv9mXFiPoKp7nE4Xn/ls3iVDA== +"@commitlint/lint@^17.6.6": + version "17.6.6" + resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-17.6.6.tgz#d7ff64b6783f2bda56526195a66e6bb587e1fe1a" + integrity sha512-5bN+dnHcRLkTvwCHYMS7Xpbr+9uNi0Kq5NR3v4+oPNx6pYXt8ACuw9luhM/yMgHYwW0ajIR20wkPAFkZLEMGmg== dependencies: - "@commitlint/is-ignored" "^17.6.3" - "@commitlint/parse" "^17.4.4" - "@commitlint/rules" "^17.6.1" + "@commitlint/is-ignored" "^17.6.6" + "@commitlint/parse" "^17.6.5" + "@commitlint/rules" "^17.6.5" "@commitlint/types" "^17.4.4" "@commitlint/load@>6.1.1", "@commitlint/load@^17.5.0": @@ -3868,10 +3469,10 @@ resolved "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== -"@commitlint/parse@^17.4.4": - version "17.4.4" - resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-17.4.4.tgz#8311b12f2b730de6ea0679ae2a37b386bcc5b04b" - integrity sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg== +"@commitlint/parse@^17.6.5": + version "17.6.5" + resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-17.6.5.tgz#7b84b328a6a94ca08ab7c98c491d9d3dab68f09d" + integrity sha512-0zle3bcn1Hevw5Jqpz/FzEWNo2KIzUbc1XyGg6WrWEoa6GH3A1pbqNF6MvE6rjuy6OY23c8stWnb4ETRZyN+Yw== dependencies: "@commitlint/types" "^17.4.4" conventional-changelog-angular "^5.0.11" @@ -3900,10 +3501,10 @@ resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^17.6.1": - version "17.6.1" - resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-17.6.1.tgz#dff529b8d1e0455808fe7e3e1fa70617e4eb2759" - integrity sha512-lUdHw6lYQ1RywExXDdLOKxhpp6857/4c95Dc/1BikrHgdysVUXz26yV0vp1GL7Gv+avx9WqZWTIVB7pNouxlfw== +"@commitlint/rules@^17.6.5": + version "17.6.5" + resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-17.6.5.tgz#fabcacdde923e26ac5ef90d4b3f8fc05526bbaa1" + integrity sha512-uTB3zSmnPyW2qQQH+Dbq2rekjlWRtyrjDo4aLFe63uteandgkI+cc0NhhbBAzcXShzVk0qqp8SlkQMu0mgHg/A== dependencies: "@commitlint/ensure" "^17.4.4" "@commitlint/message" "^17.4.2" @@ -4144,6 +3745,18 @@ resolved "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" @@ -5136,26 +4749,26 @@ npmlog "^6.0.2" write-file-atomic "^4.0.1" -"@microsoft/api-extractor-model@7.27.0": - version "7.27.0" - resolved "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.27.0.tgz#d648629a1fde6933663bdb613f0ee39c425aae7a" - integrity sha512-wHqIMiwSARmiuVLn/zmVpiRncq6hvBfC5GF+sjrN3w4FqVkqFYk7DetvfRNdy/3URdqqmYGrhJlcU9HpLnHOPg== +"@microsoft/api-extractor-model@7.27.4": + version "7.27.4" + resolved "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.27.4.tgz#ddc566ead99737c1032d692829edd954870f7d35" + integrity sha512-HjqQFmuGPOS20rtnu+9Jj0QrqZyR59E+piUWXPMZTTn4jaZI+4UmsHSf3Id8vyueAhOBH2cgwBuRTE5R+MfSMw== dependencies: "@microsoft/tsdoc" "0.14.2" "@microsoft/tsdoc-config" "~0.16.1" - "@rushstack/node-core-library" "3.59.1" + "@rushstack/node-core-library" "3.59.5" "@microsoft/api-extractor@^7.33.5": - version "7.35.0" - resolved "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.35.0.tgz#0452bc6e4765d2dcc95b6f21489216c521595bfd" - integrity sha512-yBGfPJeEtzk8sg2hE2/vOPRvnJBvstbWNGeyGV1jIEUSgytzQ0QPgPEkOsP2n7nBfnyRXmZaBa2vJPGOzVWy+g== + version "7.36.1" + resolved "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.36.1.tgz#df5e779a308a76b3e1bdfaf2c66e6f73c09e37cb" + integrity sha512-2SPp1jq6wDY5IOsRLUv/4FxngslctBZJlztAJ3uWpCAwqKQG7ESdL3DhEza+StbYLtBQmu1Pk6q1Vkhl7qD/bg== dependencies: - "@microsoft/api-extractor-model" "7.27.0" + "@microsoft/api-extractor-model" "7.27.4" "@microsoft/tsdoc" "0.14.2" "@microsoft/tsdoc-config" "~0.16.1" - "@rushstack/node-core-library" "3.59.1" - "@rushstack/rig-package" "0.3.19" - "@rushstack/ts-command-line" "4.13.3" + "@rushstack/node-core-library" "3.59.5" + "@rushstack/rig-package" "0.4.0" + "@rushstack/ts-command-line" "4.15.1" colors "~1.2.1" lodash "~4.17.15" resolve "~1.22.1" @@ -5178,6 +4791,11 @@ resolved "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz#c3ec604a0b54b9a9b87e9735dfc59e1a5da6a5fb" integrity sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug== +"@nicolo-ribaudo/semver-v6@^6.3.3": + version "6.3.3" + resolved "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" + integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -5247,6 +4865,13 @@ "@gar/promisify" "^1.1.3" semver "^7.3.5" +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== + dependencies: + semver "^7.3.5" + "@npmcli/git@^3.0.0": version "3.0.2" resolved "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" @@ -5404,16 +5029,14 @@ nx "15.9.4" "@octokit/auth-token@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz#ce7e48a3166731f26068d7a7a7996b5da58cbe0c" - integrity sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA== - dependencies: - "@octokit/types" "^9.0.0" + version "3.0.4" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" + integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== "@octokit/core@^4.2.1": - version "4.2.1" - resolved "https://registry.npmjs.org/@octokit/core/-/core-4.2.1.tgz#fee6341ad0ce60c29cc455e056cd5b500410a588" - integrity sha512-tEDxFx8E38zF3gT7sSMDrT1tGumDgsw5yPG6BBh/X+5ClIQfMH/Yqocxz1PnHx6CHyF6pxmovUTOfZAUvQ0Lvw== + version "4.2.4" + resolved "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" + integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== dependencies: "@octokit/auth-token" "^3.0.0" "@octokit/graphql" "^5.0.0" @@ -5424,9 +5047,9 @@ universal-user-agent "^6.0.0" "@octokit/endpoint@^7.0.0": - version "7.0.5" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz#2bb2a911c12c50f10014183f5d596ce30ac67dd1" - integrity sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA== + version "7.0.6" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" + integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== dependencies: "@octokit/types" "^9.0.0" is-plain-object "^5.0.0" @@ -5441,10 +5064,10 @@ "@octokit/types" "^9.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^17.2.0": - version "17.2.0" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-17.2.0.tgz#f1800b5f9652b8e1b85cc6dfb1e0dc888810bdb5" - integrity sha512-MazrFNx4plbLsGl+LFesMo96eIXkFgEtaKbnNpdh4aQ0VM10aoylFsTYP1AEjkeoRNZiiPe3T6Gl2Hr8dJWdlQ== +"@octokit/openapi-types@^18.0.0": + version "18.0.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" + integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -5465,12 +5088,11 @@ integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== "@octokit/plugin-rest-endpoint-methods@^7.1.2": - version "7.1.2" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.2.tgz#b77a8844601d3a394a02200cddb077f3ab841f38" - integrity sha512-R0oJ7j6f/AdqPLtB9qRXLO+wjI9pctUn8Ka8UGfGaFCcCv3Otx14CshQ89K4E88pmyYZS8p0rNTiprML/81jig== + version "7.2.3" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" + integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== dependencies: - "@octokit/types" "^9.2.3" - deprecation "^2.3.1" + "@octokit/types" "^10.0.0" "@octokit/request-error@^3.0.0": version "3.0.3" @@ -5482,9 +5104,9 @@ once "^1.4.0" "@octokit/request@^6.0.0": - version "6.2.5" - resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.5.tgz#7beef1065042998f7455973ef3f818e7b84d6ec2" - integrity sha512-z83E8UIlPNaJUsXpjD8E0V5o/5f+vJJNbNcBwVZsX3/vC650U41cOkTLjq4PKk9BYonQGOnx7N17gvLyNjgGcQ== + version "6.2.8" + resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" + integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== dependencies: "@octokit/endpoint" "^7.0.0" "@octokit/request-error" "^3.0.0" @@ -5494,9 +5116,9 @@ universal-user-agent "^6.0.0" "@octokit/rest@^19.0.3": - version "19.0.11" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.11.tgz#2ae01634fed4bd1fca5b642767205ed3fd36177c" - integrity sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw== + version "19.0.13" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz#e799393264edc6d3c67eeda9e5bd7832dcf974e4" + integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA== dependencies: "@octokit/core" "^4.2.1" "@octokit/plugin-paginate-rest" "^6.1.2" @@ -5508,12 +5130,19 @@ resolved "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== +"@octokit/types@^10.0.0": + version "10.0.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" + integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== + dependencies: + "@octokit/openapi-types" "^18.0.0" + "@octokit/types@^9.0.0", "@octokit/types@^9.2.3": - version "9.2.3" - resolved "https://registry.npmjs.org/@octokit/types/-/types-9.2.3.tgz#d0af522f394d74b585cefb7efd6197ca44d183a9" - integrity sha512-MMeLdHyFIALioycq+LFcA71v0S2xpQUX2cw6pPbHQjaibcHYwLnmK/kMZaWuGfGfjBJZ3wRUq+dOaWsvrPJVvA== + version "9.3.2" + resolved "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" + integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== dependencies: - "@octokit/openapi-types" "^17.2.0" + "@octokit/openapi-types" "^18.0.0" "@parcel/watcher@2.0.4": version "2.0.4" @@ -5523,6 +5152,11 @@ node-addon-api "^3.2.1" node-gyp-build "^4.3.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@redux-offline/redux-offline@2.6.0-native.1": version "2.6.0-native.1" resolved "https://registry.npmjs.org/@redux-offline/redux-offline/-/redux-offline-2.6.0-native.1.tgz#93a735ea05f5d72e0616e569e62ee00eec76a386" @@ -5531,10 +5165,10 @@ "@babel/runtime" "^7.9.6" redux-persist "^4.6.0" -"@rushstack/node-core-library@3.59.1": - version "3.59.1" - resolved "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.59.1.tgz#6c051d1f861a6c2b07c637d2c48d75a526e9e80d" - integrity sha512-iy/xaEhXGpX+DY1ZzAtNA+QPw+9+TJh773Im+JxG4R1fu00/vWq470UOEj6upxlUxmp0JxhnmNRxzfptHrn/Uw== +"@rushstack/node-core-library@3.59.5": + version "3.59.5" + resolved "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.59.5.tgz#38034d4c38b5ddd7d1c7f04233ce1b2209b7ae1f" + integrity sha512-1IpV7LufrI1EoVO8hYsb3t6L8L+yp40Sa0OaOV2CIu1zx4e6ZeVNaVIEXFgMXBKdGXkAh21MnCaIzlDNpG6ZQw== dependencies: colors "~1.2.1" fs-extra "~7.0.1" @@ -5544,18 +5178,18 @@ semver "~7.3.0" z-schema "~5.0.2" -"@rushstack/rig-package@0.3.19": - version "0.3.19" - resolved "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.3.19.tgz#635ca524cbb73523af3a0a19b4a0821c61800fdf" - integrity sha512-2d0/Gn+qjOYneZbiHjn4SjyDwq9I0WagV37z0F1V71G+yONgH7wlt3K/UoNiDkhA8gTHYPRo2jz3CvttybwSag== +"@rushstack/rig-package@0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.4.0.tgz#1dade94da5cd81321ca9ec630b6ceed2d57cc826" + integrity sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw== dependencies: resolve "~1.22.1" strip-json-comments "~3.1.1" -"@rushstack/ts-command-line@4.13.3": - version "4.13.3" - resolved "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.13.3.tgz#39c1cd4b0a8d86a6552a7a0635671f164a22d904" - integrity sha512-6aQIv/o1EgsC/+SpgUyRmzg2QIAL6sudEzw3sWzJKwWuQTc5XRsyZpyldfE7WAmIqMXDao9QG35/NYORjHm5Zw== +"@rushstack/ts-command-line@4.15.1": + version "4.15.1" + resolved "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.15.1.tgz#8f2ebde6bb19deb2c5b65363854b84aea1bf59f0" + integrity sha512-EL4jxZe5fhb1uVL/P/wQO+Z8Rc8FMiWJ1G7VgnPDvdIt5GVjRfK7vwzder1CZQiX3x0PY6uxENYLNGTFd1InRQ== dependencies: "@types/argparse" "1.0.38" argparse "~1.0.9" @@ -5567,35 +5201,404 @@ resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== dependencies: - type-detect "4.0.8" + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@smithy/abort-controller@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-1.0.2.tgz#74caac052ecea15c5460438272ad8d43a6ccbc53" + integrity sha512-tb2h0b+JvMee+eAxTmhnyqyNk51UXIK949HnE14lFeezKsVJTB30maan+CO2IMwnig2wVYQH84B5qk6ylmKCuA== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/config-resolver@^1.0.1", "@smithy/config-resolver@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-1.0.2.tgz#d4f556a44292b41b5c067662a4bd5049dea40e35" + integrity sha512-8Bk7CgnVKg1dn5TgnjwPz2ebhxeR7CjGs5yhVYH3S8x0q8yPZZVWwpRIglwXaf5AZBzJlNO1lh+lUhMf2e73zQ== + dependencies: + "@smithy/types" "^1.1.1" + "@smithy/util-config-provider" "^1.0.2" + "@smithy/util-middleware" "^1.0.2" + tslib "^2.5.0" + +"@smithy/credential-provider-imds@^1.0.1", "@smithy/credential-provider-imds@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-1.0.2.tgz#7aa797c0d95448eb3dccb988b40e62db8989576f" + integrity sha512-fLjCya+JOu2gPJpCiwSUyoLvT8JdNJmOaTOkKYBZoGf7CzqR6lluSyI+eboZnl/V0xqcfcqBG4tgqCISmWS3/w== + dependencies: + "@smithy/node-config-provider" "^1.0.2" + "@smithy/property-provider" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/url-parser" "^1.0.2" + tslib "^2.5.0" + +"@smithy/eventstream-codec@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-1.0.2.tgz#06d1b6e2510cb2475a39b3a20b0c75e751917c59" + integrity sha512-eW/XPiLauR1VAgHKxhVvgvHzLROUgTtqat2lgljztbH8uIYWugv7Nz+SgCavB+hWRazv2iYgqrSy74GvxXq/rg== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^1.1.1" + "@smithy/util-hex-encoding" "^1.0.2" + tslib "^2.5.0" + +"@smithy/eventstream-serde-browser@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-1.0.2.tgz#2f6c9de876ca5e3f35388df9cfa31aeb4281ac76" + integrity sha512-8bDImzBewLQrIF6hqxMz3eoYwEus2E5JrEwKnhpkSFkkoj8fDSKiLeP/26xfcaoVJgZXB8M1c6jSEZiY3cUMsw== + dependencies: + "@smithy/eventstream-serde-universal" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/eventstream-serde-config-resolver@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-1.0.2.tgz#37a55970c31f3e4a38d66933ab14398351553daf" + integrity sha512-SeiJ5pfrXzkGP4WCt9V3Pimfr3OM85Nyh9u/V4J6E0O2dLOYuqvSuKdVnktV0Tcmuu1ZYbt78Th0vfetnSEcdQ== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/eventstream-serde-node@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-1.0.2.tgz#1c8ba86f70ecdad19c3a25b48b0f9a03799c2a0d" + integrity sha512-jqSfi7bpOBHqgd5OgUtCX0wAVhPqxlVdqcj2c4gHaRRXcbpCmK0DRDg7P+Df0h4JJVvTqI6dy2c0YhHk5ehPCw== + dependencies: + "@smithy/eventstream-serde-universal" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/eventstream-serde-universal@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-1.0.2.tgz#66c1ccc639cb64049291200bcda476b26875fd8e" + integrity sha512-cQ9bT0j0x49cp8TQ1yZSnn4+9qU0WQSTkoucl3jKRoTZMzNYHg62LQao6HTQ3Jgd77nAXo00c7hqUEjHXwNA+A== + dependencies: + "@smithy/eventstream-codec" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/fetch-http-handler@^1.0.1", "@smithy/fetch-http-handler@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-1.0.2.tgz#4186ee6451de22e867f43c05236dcff43eca6e91" + integrity sha512-kynyofLf62LvR8yYphPPdyHb8fWG3LepFinM/vWUTG2Q1pVpmPCM530ppagp3+q2p+7Ox0UvSqldbKqV/d1BpA== + dependencies: + "@smithy/protocol-http" "^1.1.1" + "@smithy/querystring-builder" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/util-base64" "^1.0.2" + tslib "^2.5.0" + +"@smithy/hash-node@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-1.0.2.tgz#dc65203a348d29e45c493ead3e772e4f7dfb5bc0" + integrity sha512-K6PKhcUNrJXtcesyzhIvNlU7drfIU7u+EMQuGmPw6RQDAg/ufUcfKHz4EcUhFAodUmN+rrejhRG9U6wxjeBOQA== + dependencies: + "@smithy/types" "^1.1.1" + "@smithy/util-buffer-from" "^1.0.2" + "@smithy/util-utf8" "^1.0.2" + tslib "^2.5.0" + +"@smithy/invalid-dependency@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-1.0.2.tgz#0a9d82d1a14e5bdbdc0bd2cef5f457c85a942920" + integrity sha512-B1Y3Tsa6dfC+Vvb+BJMhTHOfFieeYzY9jWQSTR1vMwKkxsymD0OIAnEw8rD/RiDj/4E4RPGFdx9Mdgnyd6Bv5Q== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/is-array-buffer@^1.0.1", "@smithy/is-array-buffer@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-1.0.2.tgz#224702a2364d698f0a36ecb2c240c0c9541ecfb6" + integrity sha512-pkyBnsBRpe+c/6ASavqIMRBdRtZNJEVJOEzhpxZ9JoAXiZYbkfaSMRA/O1dUxGdJ653GHONunnZ4xMo/LJ7utQ== + dependencies: + tslib "^2.5.0" + +"@smithy/middleware-content-length@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-1.0.2.tgz#63099f8d01b3419b65e21cfd07b0c2ef47d1f473" + integrity sha512-pa1/SgGIrSmnEr2c9Apw7CdU4l/HW0fK3+LKFCPDYJrzM0JdYpqjQzgxi31P00eAkL0EFBccpus/p1n2GF9urw== + dependencies: + "@smithy/protocol-http" "^1.1.1" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/middleware-endpoint@^1.0.1": + version "1.0.3" + resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-1.0.3.tgz#ff4b1c0a83eb8d8b8d3937f434a95efbbf43e1cd" + integrity sha512-GsWvTXMFjSgl617PCE2km//kIjjtvMRrR2GAuRDIS9sHiLwmkS46VWaVYy+XE7ubEsEtzZ5yK2e8TKDR6Qr5Lw== + dependencies: + "@smithy/middleware-serde" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/url-parser" "^1.0.2" + "@smithy/util-middleware" "^1.0.2" + tslib "^2.5.0" + +"@smithy/middleware-retry@^1.0.1", "@smithy/middleware-retry@^1.0.2": + version "1.0.4" + resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-1.0.4.tgz#8e9de0713dac7f7af405477d46bd4525ca7b9ea8" + integrity sha512-G7uRXGFL8c3F7APnoIMTtNAHH8vT4F2qVnAWGAZaervjupaUQuRRHYBLYubK0dWzOZz86BtAXKieJ5p+Ni2Xpg== + dependencies: + "@smithy/protocol-http" "^1.1.1" + "@smithy/service-error-classification" "^1.0.3" + "@smithy/types" "^1.1.1" + "@smithy/util-middleware" "^1.0.2" + "@smithy/util-retry" "^1.0.4" + tslib "^2.5.0" + uuid "^8.3.2" + +"@smithy/middleware-serde@^1.0.1", "@smithy/middleware-serde@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-1.0.2.tgz#87b3a0211602ae991d9b756893eb6bf2e3e5f711" + integrity sha512-T4PcdMZF4xme6koUNfjmSZ1MLi7eoFeYCtodQNQpBNsS77TuJt1A6kt5kP/qxrTvfZHyFlj0AubACoaUqgzPeg== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/middleware-stack@^1.0.1", "@smithy/middleware-stack@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-1.0.2.tgz#d241082bf3cb315c749dda57e233039a9aed804e" + integrity sha512-H7/uAQEcmO+eDqweEFMJ5YrIpsBwmrXSP6HIIbtxKJSQpAcMGY7KrR2FZgZBi1FMnSUOh+rQrbOyj5HQmSeUBA== + dependencies: + tslib "^2.5.0" + +"@smithy/node-config-provider@^1.0.1", "@smithy/node-config-provider@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-1.0.2.tgz#2d391b96a9e10072e7e0a3698427400f4ef17ec4" + integrity sha512-HU7afWpTToU0wL6KseGDR2zojeyjECQfr8LpjAIeHCYIW7r360ABFf4EaplaJRMVoC3hD9FeltgI3/NtShOqCg== + dependencies: + "@smithy/property-provider" "^1.0.2" + "@smithy/shared-ini-file-loader" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/node-http-handler@^1.0.1", "@smithy/node-http-handler@^1.0.2", "@smithy/node-http-handler@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-1.0.3.tgz#89b556ca2bdcce7a994a9da1ea265094d76d4791" + integrity sha512-PcPUSzTbIb60VCJCiH0PU0E6bwIekttsIEf5Aoo/M0oTfiqsxHTn0Rcij6QoH6qJy6piGKXzLSegspXg5+Kq6g== + dependencies: + "@smithy/abort-controller" "^1.0.2" + "@smithy/protocol-http" "^1.1.1" + "@smithy/querystring-builder" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/property-provider@^1.0.1", "@smithy/property-provider@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-1.0.2.tgz#f99f104cbd6576c9aca9f56cb72819b4a65208e1" + integrity sha512-pXDPyzKX8opzt38B205kDgaxda6LHcTfPvTYQZnwP6BAPp1o9puiCPjeUtkKck7Z6IbpXCPUmUQnzkUzWTA42Q== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/protocol-http@^1.0.1", "@smithy/protocol-http@^1.1.0", "@smithy/protocol-http@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.1.1.tgz#10977cf71631eed4f5ad1845408920238d52cdba" + integrity sha512-mFLFa2sSvlUxm55U7B4YCIsJJIMkA6lHxwwqOaBkral1qxFz97rGffP/mmd4JDuin1EnygiO5eNJGgudiUgmDQ== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/querystring-builder@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-1.0.2.tgz#ce861f6cbd14792c83aa19b4967a19923bd0706e" + integrity sha512-6P/xANWrtJhMzTPUR87AbXwSBuz1SDHIfL44TFd/GT3hj6rA+IEv7rftEpPjayUiWRocaNnrCPLvmP31mobOyA== + dependencies: + "@smithy/types" "^1.1.1" + "@smithy/util-uri-escape" "^1.0.2" + tslib "^2.5.0" + +"@smithy/querystring-parser@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-1.0.2.tgz#559d09c46b21e6fbda71e95deda4bcd8a46bdecc" + integrity sha512-IWxwxjn+KHWRRRB+K2Ngl+plTwo2WSgc2w+DvLy0DQZJh9UGOpw40d6q97/63GBlXIt4TEt5NbcFrO30CKlrsA== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/service-error-classification@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-1.0.3.tgz#c620c1562610d3351985eb6dd04262ca2657ae67" + integrity sha512-2eglIYqrtcUnuI71yweu7rSfCgt6kVvRVf0C72VUqrd0LrV1M0BM0eYN+nitp2CHPSdmMI96pi+dU9U/UqAMSA== + +"@smithy/shared-ini-file-loader@^1.0.1", "@smithy/shared-ini-file-loader@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-1.0.2.tgz#c6e79991d87925bd18e0adae00c97da6c8ecae1e" + integrity sha512-bdQj95VN+lCXki+P3EsDyrkpeLn8xDYiOISBGnUG/AGPYJXN8dmp4EhRRR7XOoLoSs8anZHR4UcGEOzFv2jwGw== + dependencies: + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/signature-v4@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-1.0.2.tgz#3a7b10ac66c337b404aa061e5f268f0550729680" + integrity sha512-rpKUhmCuPmpV5dloUkOb9w1oBnJatvKQEjIHGmkjRGZnC3437MTdzWej9TxkagcZ8NRRJavYnEUixzxM1amFig== + dependencies: + "@smithy/eventstream-codec" "^1.0.2" + "@smithy/is-array-buffer" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/util-hex-encoding" "^1.0.2" + "@smithy/util-middleware" "^1.0.2" + "@smithy/util-uri-escape" "^1.0.2" + "@smithy/util-utf8" "^1.0.2" + tslib "^2.5.0" + +"@smithy/smithy-client@^1.0.2", "@smithy/smithy-client@^1.0.3": + version "1.0.4" + resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-1.0.4.tgz#96d03d123d117a637c679a79bb8eae96e3857bd9" + integrity sha512-gpo0Xl5Nyp9sgymEfpt7oa9P2q/GlM3VmQIdm+FeH0QEdYOQx3OtvwVmBYAMv2FIPWxkMZlsPYRTnEiBTK5TYg== + dependencies: + "@smithy/middleware-stack" "^1.0.2" + "@smithy/types" "^1.1.1" + "@smithy/util-stream" "^1.0.2" + tslib "^2.5.0" + +"@smithy/types@^1.0.0", "@smithy/types@^1.1.0", "@smithy/types@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@smithy/types/-/types-1.1.1.tgz#949394a22e13e7077471bae0d18c146e5f62c456" + integrity sha512-tMpkreknl2gRrniHeBtdgQwaOlo39df8RxSrwsHVNIGXULy5XP6KqgScUw2m12D15wnJCKWxVhCX+wbrBW/y7g== + dependencies: + tslib "^2.5.0" + +"@smithy/url-parser@^1.0.1", "@smithy/url-parser@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-1.0.2.tgz#fb59be6f2283399443d9e7afe08ebf63b3c266bb" + integrity sha512-0JRsDMQe53F6EHRWksdcavKDRjyqp8vrjakg8EcCUOa7PaFRRB1SO/xGZdzSlW1RSTWQDEksFMTCEcVEKmAoqA== + dependencies: + "@smithy/querystring-parser" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/util-base64@^1.0.1", "@smithy/util-base64@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-1.0.2.tgz#6cdd5a9356dafad3c531123c12cd77d674762da0" + integrity sha512-BCm15WILJ3SL93nusoxvJGMVfAMWHZhdeDZPtpAaskozuexd0eF6szdz4kbXaKp38bFCSenA6bkUHqaE3KK0dA== + dependencies: + "@smithy/util-buffer-from" "^1.0.2" + tslib "^2.5.0" + +"@smithy/util-body-length-browser@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-1.0.2.tgz#4a9a49497634b5f25ab5ff73f1a8498010b0024a" + integrity sha512-Xh8L06H2anF5BHjSYTg8hx+Itcbf4SQZnVMl4PIkCOsKtneMJoGjPRLy17lEzfoh/GOaa0QxgCP6lRMQWzNl4w== + dependencies: + tslib "^2.5.0" + +"@smithy/util-body-length-node@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-1.0.2.tgz#bc4969022f7d9ffcb239d626d80a85138e986df6" + integrity sha512-nXHbZsUtvZeyfL4Ceds9nmy2Uh2AhWXohG4vWHyjSdmT8cXZlJdmJgnH6SJKDjyUecbu+BpKeVvSrA4cWPSOPA== + dependencies: + tslib "^2.5.0" + +"@smithy/util-buffer-from@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-1.0.2.tgz#27e19573d721962bd2443f23d4edadb8206b2cb5" + integrity sha512-lHAYIyrBO9RANrPvccnPjU03MJnWZ66wWuC5GjWWQVfsmPwU6m00aakZkzHdUT6tGCkGacXSgArP5wgTgA+oCw== + dependencies: + "@smithy/is-array-buffer" "^1.0.2" + tslib "^2.5.0" + +"@smithy/util-config-provider@^1.0.1", "@smithy/util-config-provider@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-1.0.2.tgz#4d2e867df1cc7b4010d1278bd5767ce1b679dae9" + integrity sha512-HOdmDm+3HUbuYPBABLLHtn8ittuRyy+BSjKOA169H+EMc+IozipvXDydf+gKBRAxUa4dtKQkLraypwppzi+PRw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-defaults-mode-browser@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-1.0.2.tgz#31ad7b9bce7e38fd57f4a370ee416373b4fbd432" + integrity sha512-J1u2PO235zxY7dg0+ZqaG96tFg4ehJZ7isGK1pCBEA072qxNPwIpDzUVGnLJkHZvjWEGA8rxIauDtXfB0qxeAg== + dependencies: + "@smithy/property-provider" "^1.0.2" + "@smithy/types" "^1.1.1" + bowser "^2.11.0" + tslib "^2.5.0" + +"@smithy/util-defaults-mode-node@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-1.0.2.tgz#b295fe2a18568c1e21a85b6557e2b769452b4d95" + integrity sha512-9/BN63rlIsFStvI+AvljMh873Xw6bbI6b19b+PVYXyycQ2DDQImWcjnzRlHW7eP65CCUNGQ6otDLNdBQCgMXqg== + dependencies: + "@smithy/config-resolver" "^1.0.2" + "@smithy/credential-provider-imds" "^1.0.2" + "@smithy/node-config-provider" "^1.0.2" + "@smithy/property-provider" "^1.0.2" + "@smithy/types" "^1.1.1" + tslib "^2.5.0" + +"@smithy/util-hex-encoding@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-1.0.2.tgz#5b9f2162f2a59b2d2aa39992bd2c7f65b6616ab6" + integrity sha512-Bxydb5rMJorMV6AuDDMOxro3BMDdIwtbQKHpwvQFASkmr52BnpDsWlxgpJi8Iq7nk1Bt4E40oE1Isy/7ubHGzg== + dependencies: + tslib "^2.5.0" -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== +"@smithy/util-middleware@^1.0.1", "@smithy/util-middleware@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-1.0.2.tgz#c3d4c7a6cd31bde33901e54abd7700c8ca73dab3" + integrity sha512-vtXK7GOR2BoseCX8NCGe9SaiZrm9M2lm/RVexFGyPuafTtry9Vyv7hq/vw8ifd/G/pSJ+msByfJVb1642oQHKw== dependencies: - "@sinonjs/commons" "^1.7.0" + tslib "^2.5.0" -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== +"@smithy/util-retry@^1.0.1", "@smithy/util-retry@^1.0.2", "@smithy/util-retry@^1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-1.0.4.tgz#9d95df3884981414163d5f780d38e3529384d9ad" + integrity sha512-RnZPVFvRoqdj2EbroDo3OsnnQU8eQ4AlnZTOGusbYKybH3269CFdrZfZJloe60AQjX7di3J6t/79PjwCLO5Khw== dependencies: - "@sinonjs/commons" "^1.7.0" + "@smithy/service-error-classification" "^1.0.3" + tslib "^2.5.0" -"@smithy/protocol-http@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.0.1.tgz#62fd73d73db285fd8e9a2287ed2904ac66e0d43f" - integrity sha512-9OrEn0WfOVtBNYJUjUAn9AOiJ4lzERCJJ/JeZs8E6yajTGxBaFRxUnNBHiNqoDJVg076hY36UmEnPx7xXrvUSg== +"@smithy/util-stream@^1.0.1", "@smithy/util-stream@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-1.0.2.tgz#2d33aa5168e51d1dd7937c32a09c8334d2da44d9" + integrity sha512-qyN2M9QFMTz4UCHi6GnBfLOGYKxQZD01Ga6nzaXFFC51HP/QmArU72e4kY50Z/EtW8binPxspP2TAsGbwy9l3A== + dependencies: + "@smithy/fetch-http-handler" "^1.0.2" + "@smithy/node-http-handler" "^1.0.3" + "@smithy/types" "^1.1.1" + "@smithy/util-base64" "^1.0.2" + "@smithy/util-buffer-from" "^1.0.2" + "@smithy/util-hex-encoding" "^1.0.2" + "@smithy/util-utf8" "^1.0.2" + tslib "^2.5.0" + +"@smithy/util-uri-escape@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-1.0.2.tgz#c69a5423c9baa7a045a79372320bd40a437ac756" + integrity sha512-k8C0BFNS9HpBMHSgUDnWb1JlCQcFG+PPlVBq9keP4Nfwv6a9Q0yAfASWqUCtzjuMj1hXeLhn/5ADP6JxnID1Pg== dependencies: - "@smithy/types" "^1.0.0" tslib "^2.5.0" -"@smithy/types@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@smithy/types/-/types-1.0.0.tgz#87ab6131fe5e19cbd4d383ffb94d2b806d027d38" - integrity sha512-kc1m5wPBHQCTixwuaOh9vnak/iJm21DrSf9UK6yDE5S3mQQ4u11pqAUiKWnlrZnYkeLfAI9UEHj9OaMT1v5Umg== +"@smithy/util-utf8@^1.0.1", "@smithy/util-utf8@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-1.0.2.tgz#b34c27b4efbe4f0edb6560b6d4f743088302671f" + integrity sha512-V4cyjKfJlARui0dMBfWJMQAmJzoW77i4N3EjkH/bwnE2Ngbl4tqD2Y0C/xzpzY/J1BdxeCKxAebVFk8aFCaSCw== dependencies: + "@smithy/util-buffer-from" "^1.0.2" + tslib "^2.5.0" + +"@smithy/util-waiter@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-1.0.2.tgz#3b1498a2d4b92e78eafacc8c76f314e30eb7a5e9" + integrity sha512-+jq4/Vd9ejPzR45qwYSePyjQbqYP9QqtyZYsFVyfzRnbGGC0AjswOh7txcxroafuEBExK4qE+L/QZA8wWXsJYw== + dependencies: + "@smithy/abort-controller" "^1.0.2" + "@smithy/types" "^1.1.1" tslib "^2.5.0" "@tootallnate/once@1": @@ -5697,9 +5700,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.20.0" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.0.tgz#4709d34d3eba3e1dad1950d40e80c6b5e0b81fc9" - integrity sha512-TBOjqAGf0hmaqRwpii5LLkJLg7c6OMm4nHLmpsUxwk9bBHtoTC6dAHdVWdGv4TBxj2CZOZY8Xfq8WmfoVi7n4Q== + version "7.20.1" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" + integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== dependencies: "@babel/types" "^7.20.7" @@ -5811,9 +5814,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node@*": - version "20.2.4" - resolved "https://registry.npmjs.org/@types/node/-/node-20.2.4.tgz#e6c3345f7ed9c6df41fdc288a94e2633167bc15d" - integrity sha512-ni5f8Xlf4PwnT/Z3f0HURc3ZSw8UyrqMqmM3L5ysa7VjHu8c3FOmIo1nKCcLrV/OAmtf3N4kFna/aJqxsfEtnA== + version "20.4.1" + resolved "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz#a6033a8718653c50ac4962977e14d0f984d9527d" + integrity sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg== "@types/node@^10.17.13": version "10.17.60" @@ -5826,9 +5829,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^16.9.2": - version "16.18.33" - resolved "https://registry.npmjs.org/@types/node/-/node-16.18.33.tgz#0e91a6e18a006d3acfb3efa797cdcfc3a6598cd0" - integrity sha512-WjW7iYRVtePnSeLxVfE1e+g1yStJrfR9Anuv4y6JZVgOqYyFcW7GhPBk2/J1d0rC4ZNLrI13lS4e32NUuuRmHA== + version "16.18.38" + resolved "https://registry.npmjs.org/@types/node/-/node-16.18.38.tgz#1dcdb6c54d02b323f621213745f2e44af30c73e6" + integrity sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -5851,9 +5854,9 @@ integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== "@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== + version "2.7.3" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/rimraf@^3.0.0": version "3.0.2" @@ -5970,23 +5973,23 @@ "@typescript-eslint/types" "4.33.0" "@typescript-eslint/visitor-keys" "4.33.0" -"@typescript-eslint/scope-manager@5.59.7": - version "5.59.7" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz#0243f41f9066f3339d2f06d7f72d6c16a16769e2" - integrity sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ== +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: - "@typescript-eslint/types" "5.59.7" - "@typescript-eslint/visitor-keys" "5.59.7" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" "@typescript-eslint/types@4.33.0": version "4.33.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== -"@typescript-eslint/types@5.59.7": - version "5.59.7" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz#6f4857203fceee91d0034ccc30512d2939000742" - integrity sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A== +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== "@typescript-eslint/typescript-estree@1.13.0": version "1.13.0" @@ -6009,13 +6012,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.59.7": - version "5.59.7" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz#b887acbd4b58e654829c94860dbff4ac55c5cff8" - integrity sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ== +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: - "@typescript-eslint/types" "5.59.7" - "@typescript-eslint/visitor-keys" "5.59.7" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -6023,16 +6026,16 @@ tsutils "^3.21.0" "@typescript-eslint/utils@^5.10.0": - version "5.59.7" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz#7adf068b136deae54abd9a66ba5a8780d2d0f898" - integrity sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ== + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.59.7" - "@typescript-eslint/types" "5.59.7" - "@typescript-eslint/typescript-estree" "5.59.7" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" eslint-scope "^5.1.1" semver "^7.3.7" @@ -6044,12 +6047,12 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" -"@typescript-eslint/visitor-keys@5.59.7": - version "5.59.7" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz#09c36eaf268086b4fbb5eb9dc5199391b6485fc5" - integrity sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ== +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: - "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" "@wry/equality@^0.1.2": @@ -6065,9 +6068,9 @@ integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== "@yarnpkg/parsers@^3.0.0-rc.18": - version "3.0.0-rc.44" - resolved "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.44.tgz#43bf7943c039681da8f343cc6d73c2ab3184978b" - integrity sha512-UVAt9Icc8zfGXioeYJ8XMoSTxOYVmlal2TRNxy9Uh91taS72kQFalK7LpIslcvEBKy4XtarmfIwcFIU3ZY64lw== + version "3.0.0-rc.48.1" + resolved "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.48.1.tgz#8636c24c02c888f2602a464edfd7fb113d75e937" + integrity sha512-qEewJouhRvaecGjbkjz9kMKn96UASbDodNrE5MYy2TrXkHcisIkbMxZdGBYfAq+s1dFtCSx/5H4k5bEkfakM+A== dependencies: js-yaml "^3.10.0" tslib "^2.4.0" @@ -6148,9 +6151,9 @@ acorn@^7.1.1: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.0: - version "8.8.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + version "8.10.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== add-stream@^1.0.0: version "1.0.0" @@ -6201,21 +6204,21 @@ ajv@^8.11.0: require-from-string "^2.0.2" uri-js "^4.2.2" -amazon-cognito-identity-js@5.2.14: - version "5.2.14" - resolved "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-5.2.14.tgz#780d633e2912971e77b00d60d5b959f26d66e6a5" - integrity sha512-9LMgLZfbypbbGTpARQ+QqglE09b1MWti11NXhcD/wPom0uhU/L90dfmUOpTwknz//eE6/dGYf004mJucWzrfxQ== +amazon-cognito-identity-js@6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.1.tgz#d9a4c1a92f4b059330df8ea075f65106d2605409" + integrity sha512-PxBdufgS8uZShrcIFAsRjmqNXsh/4fXOWUGQOUhKLHWWK1pcp/y+VeFF48avXIWefM8XwsT3JlN6m9J2eHt4LA== dependencies: + "@aws-crypto/sha256-js" "1.2.2" buffer "4.9.2" - crypto-js "^4.1.1" fast-base64-decode "^1.0.0" isomorphic-unfetch "^3.0.0" js-cookie "^2.2.1" amplify-headless-interface@^1.13.1: - version "1.17.3" - resolved "https://registry.npmjs.org/amplify-headless-interface/-/amplify-headless-interface-1.17.3.tgz#6e3acf34b1b432b2b44c63e5a0cf9a314b47b06f" - integrity sha512-jQGjrT717b772tEjVoJyqCNByUyVW/dExOiyQVAvyx12x1xHFwXEAZ3fz8wz60u9MxTUz6DXTTgcpWQpTxAUwA== + version "1.17.4" + resolved "https://registry.npmjs.org/amplify-headless-interface/-/amplify-headless-interface-1.17.4.tgz#4daaa11d045655f4a726cb0bbcf790eef17986fe" + integrity sha512-GinREwQl5Y5Zx0WcZ1YEXr4H9IJLLPdTZK6mfosTppSGj1rVMCt86ES7j9Xqb/q1naXymqCiOD4FzrN3IHPCvg== ansi-colors@^4.1.1: version "4.1.3" @@ -6254,6 +6257,11 @@ ansi-regex@^5.0.0, ansi-regex@^5.0.1: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -6278,9 +6286,14 @@ ansi-styles@^5.0.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + antlr4ts@^0.5.0-alpha.3: version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" + resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== anymatch@^3.0.3: @@ -6441,11 +6454,11 @@ argv@0.0.2: integrity sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw== aria-query@^5.1.3: - version "5.1.3" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + version "5.3.0" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" array-buffer-byte-length@^1.0.0: version "1.0.0" @@ -6465,7 +6478,7 @@ array-ify@^1.0.0: resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.5, array-includes@^3.1.6: +array-includes@^3.1.6: version "3.1.6" resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== @@ -6569,24 +6582,24 @@ available-typed-arrays@^1.0.5: resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-amplify@^4.3.26: - version "4.3.46" - resolved "https://registry.npmjs.org/aws-amplify/-/aws-amplify-4.3.46.tgz#e8897d97796fa5475ed75f37bb590fc9cc4cf013" - integrity sha512-LygkBq+mrV+hFf3DCrVcyYNxFsiYwL0HLN89X1Eg+s3f7df6T2xpjh4JuaDJFbmodEdAlZNfdtRGLMk6ApnPcA== - dependencies: - "@aws-amplify/analytics" "5.2.31" - "@aws-amplify/api" "4.0.64" - "@aws-amplify/auth" "4.6.17" - "@aws-amplify/cache" "4.0.66" - "@aws-amplify/core" "4.7.15" - "@aws-amplify/datastore" "3.14.7" - "@aws-amplify/geo" "1.3.27" - "@aws-amplify/interactions" "4.1.12" - "@aws-amplify/predictions" "4.0.64" - "@aws-amplify/pubsub" "4.5.14" - "@aws-amplify/storage" "4.5.17" - "@aws-amplify/ui" "2.0.7" - "@aws-amplify/xr" "3.0.64" +aws-amplify@^5.3.3: + version "5.3.3" + resolved "https://registry.npmjs.org/aws-amplify/-/aws-amplify-5.3.3.tgz#e6a75c7b7e11d2658f9bef33e78744f040acfd2f" + integrity sha512-fTRJTcQrZ+CXm3XkkmVavflqx6eWSOmbIJc/cq06lZ6I/12B+rc+hNka6cLzAeqi1VL5Gf+EdVQFq1X7zUkSnw== + dependencies: + "@aws-amplify/analytics" "6.3.2" + "@aws-amplify/api" "5.3.3" + "@aws-amplify/auth" "5.5.3" + "@aws-amplify/cache" "5.1.3" + "@aws-amplify/core" "5.5.2" + "@aws-amplify/datastore" "4.6.3" + "@aws-amplify/geo" "2.1.3" + "@aws-amplify/interactions" "5.2.3" + "@aws-amplify/notifications" "1.3.2" + "@aws-amplify/predictions" "5.4.3" + "@aws-amplify/pubsub" "5.3.3" + "@aws-amplify/storage" "5.6.3" + tslib "^2.0.0" aws-appsync-auth-link@^2.0.8: version "2.0.8" @@ -6613,7 +6626,7 @@ aws-appsync-subscription-link@^2.4.2: url "^0.11.0" zen-observable-ts "^1.2.5" -aws-appsync@^4.0.3: +aws-appsync@^4.1.9: version "4.1.9" resolved "https://registry.npmjs.org/aws-appsync/-/aws-appsync-4.1.9.tgz#ec084d9b6a3a40334822e49864fed14fbf9558ef" integrity sha512-YlOxC81Ij25UmSUVocbFF+TA5tItYAkL+04Y+gPBvZGCmrKI4+g/Z9b6c6IrX4IaG0eh4msizeZuwlUUjsEvlQ== @@ -6656,10 +6669,10 @@ aws-cdk-lib@~2.68.0: semver "^7.3.8" yaml "1.10.2" -aws-sdk@^2.845.0: - version "2.1385.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1385.0.tgz#0d1e183c1d502193c077639ac96658feb3d8a6ed" - integrity sha512-SWBIsV4AlYE1gvEvkeqAHYIKhEgugrT3XsFJmIOmUhKpumOs+DwRmkNh20KSQVdd4iNxat/VdHTFoWHorrJGrw== +aws-sdk@^2.1413.0: + version "2.1413.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1413.0.tgz#5ca9c08bacd3523fd6442dc3849d5f558d4e1f5b" + integrity sha512-vKpjC7iRwOhgv7P0xw90mVGO//2rqVPJKyYIs7uxLzSV0JzriVD+yqktOu/Hz6/phOmAd1cMIeFgpEC9ynrppg== dependencies: buffer "4.9.2" events "1.1.1" @@ -6701,11 +6714,11 @@ axios@^1.0.0: proxy-from-env "^1.1.0" axobject-query@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" - integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + version "3.2.1" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" babel-generator@^6.26.1: version "6.26.1" @@ -6918,15 +6931,15 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.21.3: - version "4.21.5" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== +browserslist@^4.21.9: + version "4.21.9" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" + caniuse-lite "^1.0.30001503" + electron-to-chromium "^1.4.431" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" bs-logger@0.x: version "0.2.6" @@ -6964,7 +6977,7 @@ buffer@5.6.0: base64-js "^1.0.2" ieee754 "^1.1.4" -buffer@^5.5.0: +buffer@^5.4.3, buffer@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -7018,6 +7031,24 @@ cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: tar "^6.1.11" unique-filename "^2.0.0" +cacache@^17.0.0: + version "17.1.3" + resolved "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz#c6ac23bec56516a7c0c52020fd48b4909d7c7044" + integrity sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^7.7.1" + minipass "^5.0.0" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" + cachedir@2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -7090,10 +7121,10 @@ camelcase@^6.2.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001449: - version "1.0.30001489" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz#ca82ee2d4e4dbf2bd2589c9360d3fcc2c7ba3bd8" - integrity sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ== +caniuse-lite@^1.0.30001503: + version "1.0.30001514" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001514.tgz#e2a7e184a23affc9367b7c8d734e7ec4628c1309" + integrity sha512-ENcIpYBmwAAOm/V2cXgM7rZUrKKaqisZl4ZAI520FIkqGXUxJjmaIssbRW5HVVR5tyV6ygTLIm15aU8LUmQSaQ== capital-case@^1.0.4: version "1.0.4" @@ -7233,9 +7264,9 @@ circleci-api@^4.1.3: axios "^0.21.1" cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + version "1.2.3" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== clean-stack@^2.0.0: version "2.2.0" @@ -7363,9 +7394,9 @@ codecov@^3.7.0: urlgrey "1.0.0" collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + version "1.0.2" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" @@ -7540,11 +7571,6 @@ constant-case@^3.0.4: tslib "^2.0.3" upper-case "^2.0.2" -constructs@^10.0.5: - version "10.2.32" - resolved "https://registry.npmjs.org/constructs/-/constructs-10.2.32.tgz#395ae9af2ac110052b84209664ff11e7a8eb53d1" - integrity sha512-84MhMvsroG3gu2zf43N3SUDlMKEGbauXK5z1qG/hA4X1kGZCzPbU3DslQJtLsHVctY7aYHIGU1axInDu9DvttA== - conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: version "5.0.13" resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" @@ -7670,9 +7696,9 @@ core-js@^2.4.0: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.1.4, core-js@^3.6.4: - version "3.30.2" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" - integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== + version "3.31.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz#f2b0eea9be9da0def2c5fece71064a7e5d687653" + integrity sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ== core-util-is@~1.0.0: version "1.0.3" @@ -7706,9 +7732,9 @@ cosmiconfig@^7.0.0: yaml "^1.10.0" cosmiconfig@^8.0.0: - version "8.1.3" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" - integrity sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw== + version "8.2.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" + integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== dependencies: import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -7722,7 +7748,7 @@ create-require@^1.1.0: cross-fetch@2.2.2, cross-fetch@^2.2.6, cross-fetch@^3.1.5: version "2.2.6" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.6.tgz#2ef0bb39a24ac034787965c457368a28730e220a" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz#2ef0bb39a24ac034787965c457368a28730e220a" integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== dependencies: node-fetch "^2.6.7" @@ -7753,11 +7779,6 @@ crypt@0.0.2: resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== -crypto-js@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" - integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== - cssom@^0.4.4: version "0.4.4" resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" @@ -7872,30 +7893,6 @@ deep-diff@^1.0.2: resolved "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz#afd3d1f749115be965e89c63edc7abb1506b9c26" integrity sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg== -deep-equal@^2.0.5: - version "2.2.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" - integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.0" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - deep-is@~0.1.3: version "0.1.4" resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -7956,11 +7953,16 @@ dependency-graph@^0.11.0: resolved "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== -deprecation@^2.0.0, deprecation@^2.3.1: +deprecation@^2.0.0: version "2.3.1" resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + detect-file@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" @@ -8076,6 +8078,11 @@ duplexer@^0.1.1: resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ejs@^3.1.7: version "3.1.9" resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" @@ -8083,10 +8090,10 @@ ejs@^3.1.7: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.284: - version "1.4.408" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.408.tgz#73e657a24bd0b7481d68c943dded0d097b0d0a52" - integrity sha512-vjeaj0u/UYnzA/CIdGXzzcxRLCqRwREYc9YfaWInjIEr7/XPttZ6ShpyqapchEy0S2r6LpLjDBTnNj7ZxnxJKg== +electron-to-chromium@^1.4.431: + version "1.4.455" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.455.tgz#81fe4353ac970eb971c07088c8da8b7f6280ddc9" + integrity sha512-8tgdX0Odl24LtmLwxotpJCVjIndN559AvaOtd67u+2mo+IDsgsTF580NB+uuDCqsHw8yFg53l5+imFV9Fw3cbA== emittery@^0.8.1: version "0.8.1" @@ -8145,9 +8152,9 @@ env-paths@^2.2.0: integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== envinfo@^7.7.4: - version "7.8.1" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + version "7.10.0" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" + integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== err-code@^2.0.2: version "2.0.3" @@ -8201,21 +8208,6 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" @@ -8269,14 +8261,13 @@ escodegen@^1.8.1: source-map "~0.6.1" escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + version "2.1.0" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" estraverse "^5.2.0" esutils "^2.0.2" - optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" @@ -8710,6 +8701,11 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + external-editor@^3.0.3: version "3.1.0" resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -8746,9 +8742,9 @@ fast-glob@3.2.7: micromatch "^4.0.4" fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + version "3.3.0" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" + integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -8773,25 +8769,13 @@ fast-url-parser@^1.1.3: dependencies: punycode "^1.3.2" -fast-xml-parser@3.19.0: - version "3.19.0" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01" - integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== - -fast-xml-parser@4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz#5a98c18238d28a57bbdfa9fe4cda01211fff8f4a" - integrity sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg== +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== dependencies: strnum "^1.0.5" -fast-xml-parser@^3.16.0: - version "3.21.1" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz#152a1d51d445380f7046b304672dd55d15c9e736" - integrity sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg== - dependencies: - strnum "^1.0.4" - fastq@^1.6.0: version "1.15.0" resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -8812,9 +8796,9 @@ fbjs-css-vars@^1.0.0: integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== fbjs@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" - integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== + version "3.0.5" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" + integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== dependencies: cross-fetch "^3.1.5" fbjs-css-vars "^1.0.0" @@ -8822,7 +8806,7 @@ fbjs@^3.0.0: object-assign "^4.1.0" promise "^7.1.1" setimmediate "^1.0.5" - ua-parser-js "^0.7.30" + ua-parser-js "^1.0.35" fecha@^4.2.0: version "4.2.3" @@ -8963,6 +8947,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + form-data@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -9030,6 +9022,13 @@ fs-minipass@^2.0.0, fs-minipass@^2.1.0: dependencies: minipass "^3.0.0" +fs-minipass@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz#5b383858efa8c1eb8c33b39e994f7e8555b8b3a3" + integrity sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g== + dependencies: + minipass "^5.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -9264,6 +9263,17 @@ glob@7.2.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glo once "^1.3.0" path-is-absolute "^1.0.0" +glob@^10.2.2: + version "10.3.3" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz#8360a4ffdd6ed90df84aa8d52f21f452e86a123b" + integrity sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.0.3" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + glob@^8.0.1, glob@^8.0.3: version "8.1.0" resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" @@ -9376,10 +9386,10 @@ graphql-import@^0.7.1: lodash "^4.17.4" resolve-from "^4.0.0" -graphql-mapping-template@4.20.8: - version "4.20.8" - resolved "https://registry.npmjs.org/graphql-mapping-template/-/graphql-mapping-template-4.20.8.tgz#b7bf8b22742a966fe2561a602ad95f6c4b4b4281" - integrity sha512-8rYupJfzpsImO1hs9RBJ6C4jT+V+D9ZdOlwBVFdqwKcGKi9w6WogoN0biMCriNkkcSYI+SyiOlXPy2i2Ga5YeQ== +graphql-mapping-template@4.20.9: + version "4.20.9" + resolved "https://registry.npmjs.org/graphql-mapping-template/-/graphql-mapping-template-4.20.9.tgz#bf09ec58c6009ee3fb70c1e33a2c8c5cde19e03f" + integrity sha512-xNl2zTUhAL9kEii1FuZWunJkOgWyenFKI2xFJrIHUneAkWUqmErq+E7isEEaysRjXVDmbeaKuqii6NzMymcANA== graphql-request@^1.5.0: version "1.8.2" @@ -9395,29 +9405,29 @@ graphql-tag@^2.10.1, graphql-tag@^2.11.0: dependencies: tslib "^2.1.0" -graphql-transformer-common@4.24.6: - version "4.24.6" - resolved "https://registry.npmjs.org/graphql-transformer-common/-/graphql-transformer-common-4.24.6.tgz#ea82c06abb17c254aae97e807bb5d273707e0cea" - integrity sha512-1GkmRPvuSgDFp0ZRyMUF7ee8fP12bCFz/0cNIm2gfdar3faA0/lL45wDamkUUkK/slovRx/2+zjmQvQn/N8Iiw== +graphql-transformer-common@4.24.7: + version "4.24.7" + resolved "https://registry.npmjs.org/graphql-transformer-common/-/graphql-transformer-common-4.24.7.tgz#3fe2cfc0cfcdb4e2be023473bd8ed6c5aaee9988" + integrity sha512-bMOoxNIrDyFzDOqpHmgzQQbeVfCktTzMVYNL0YCIk0BkZm+wT4BwZ5CBykL4Hb+dzDSwKPJMp74Ppa8ZWg5L8A== dependencies: graphql "^15.5.0" - graphql-mapping-template "4.20.8" + graphql-mapping-template "4.20.9" md5 "^2.2.1" pluralize "8.0.0" graphql-transformer-core@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/graphql-transformer-core/-/graphql-transformer-core-8.1.1.tgz#5d11ae9c5654fdb0d2f93de277080478417dc72a" - integrity sha512-LWQFDkRObFVqUPH6VT90SKWE1YiiWTsmWlOVsSOgTtPTwtpoxqnkJEycxGGlkLjhqFPcbn41gZ+iZgzZSXyNsg== + version "8.1.7" + resolved "https://registry.npmjs.org/graphql-transformer-core/-/graphql-transformer-core-8.1.7.tgz#9ec2ae7ee0b59229f5020b5ee19e481cc13cfe03" + integrity sha512-2P+bImYk2Fdq8T84BMSsPWcFYRKCUCDfSxamaWA7ai7shjAKcxu5WB9mwXntSR0O4nWxH5hd+3EmF0WRKDkWPA== dependencies: - "@aws-amplify/graphql-transformer-core" "1.3.1" - "@aws-amplify/graphql-transformer-interfaces" "2.2.0" + "@aws-amplify/graphql-transformer-core" "1.3.7" + "@aws-amplify/graphql-transformer-interfaces" "2.2.4" cloudform-types "^4.2.0" deep-diff "^1.0.2" fs-extra "^8.1.0" glob "^7.2.0" graphql "^15.5.0" - graphql-transformer-common "4.24.6" + graphql-transformer-common "4.24.7" lodash "^4.17.21" graphql@15.8.0, graphql@^15.5.0: @@ -9558,7 +9568,7 @@ html-escaper@^2.0.0: resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-cache-semantics@^4.1.0: +http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -9851,7 +9861,7 @@ inquirer@^7.0.0, inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" -internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: +internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -9885,7 +9895,7 @@ is-absolute@^1.0.0: is-relative "^1.0.0" is-windows "^1.0.1" -is-arguments@^1.0.4, is-arguments@^1.1.1: +is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -9951,7 +9961,7 @@ is-core-module@^2.1.0, is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-mo dependencies: has "^1.0.3" -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -10024,11 +10034,6 @@ is-lower-case@^2.0.2: dependencies: tslib "^2.0.3" -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -10093,11 +10098,6 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -10183,11 +10183,6 @@ is-utf8@^0.2.1: resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -10195,14 +10190,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - is-windows@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -10225,11 +10212,6 @@ isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -10290,10 +10272,19 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jackspeak@^2.0.3: + version "2.2.1" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6" + integrity sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: - version "10.8.6" - resolved "https://registry.npmjs.org/jake/-/jake-10.8.6.tgz#227a96786a1e035214e0ba84b482d6223d41ef04" - integrity sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA== + version "10.8.7" + resolved "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== dependencies: async "^3.2.3" chalk "^4.0.2" @@ -10302,7 +10293,7 @@ jake@^10.8.5: java-ast@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/java-ast/-/java-ast-0.3.0.tgz#85786d61ce906724dffd4fc3fea89dafad0eec77" + resolved "https://registry.npmjs.org/java-ast/-/java-ast-0.3.0.tgz#85786d61ce906724dffd4fc3fea89dafad0eec77" integrity sha512-FQheUCKa8ryT2YheVKRl4238N39HT4A0wTLO5OXLAT1A0WVokw27EcXjF+Dk15eEL5RVBidhD6SCbIa5K6qLcA== dependencies: antlr4ts "^0.5.0-alpha.3" @@ -10926,12 +10917,14 @@ jsonschema@^1.4.1: integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" - integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + version "3.3.4" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" + integrity sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw== dependencies: - array-includes "^3.1.5" - object.assign "^4.1.3" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" just-diff-apply@^5.2.0: version "5.5.0" @@ -11270,6 +11263,11 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== +"lru-cache@^9.1.1 || ^10.0.0": + version "10.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" + integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== + lz-string@^1.4.4: version "1.5.0" resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" @@ -11295,7 +11293,7 @@ make-error@1.x, make-error@^1.1.1: resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: +make-fetch-happen@^10.0.6: version "10.2.1" resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== @@ -11317,6 +11315,27 @@ make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: socks-proxy-agent "^7.0.0" ssri "^9.0.0" +make-fetch-happen@^11.0.3: + version "11.1.1" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" + integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^17.0.0" + http-cache-semantics "^4.1.1" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^5.0.0" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^10.0.0" + makeerror@1.0.12: version "1.0.12" resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -11436,6 +11455,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -11468,6 +11494,17 @@ minipass-fetch@^2.0.3: optionalDependencies: encoding "^0.1.13" +minipass-fetch@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz#d9df70085609864331b533c960fd4ffaa78d15ce" + integrity sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ== + dependencies: + minipass "^5.0.0" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" @@ -11509,6 +11546,11 @@ minipass@^5.0.0: resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.1" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.1.tgz#dff63464407cd8b83d7f008c0f116fa8c9b77ebf" + integrity sha512-NQ8MCKimInjVlaIqx51RKJJB7mINVkLTJbsZKmto4UAAOC/CWXES8PGaOgoBZyqoUsUA/U3DToGK7GJkkHbjJw== + minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -11659,9 +11701,9 @@ node-addon-api@^3.2.1: integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== node-fetch@^2.6.1, node-fetch@^2.6.7: - version "2.6.11" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" - integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + version "2.6.12" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" + integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== dependencies: whatwg-url "^5.0.0" @@ -11671,14 +11713,15 @@ node-gyp-build@^4.3.0: integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== node-gyp@^9.0.0: - version "9.3.1" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz#1e19f5f290afcc9c46973d68700cbd21a96192e4" - integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== + version "9.4.0" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369" + integrity sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg== dependencies: env-paths "^2.2.0" + exponential-backoff "^3.1.1" glob "^7.1.4" graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" + make-fetch-happen "^11.0.3" nopt "^6.0.0" npmlog "^6.0.0" rimraf "^3.0.2" @@ -11692,16 +11735,16 @@ node-int64@^0.4.0: integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-pty@beta: - version "0.11.0-beta32" - resolved "https://registry.npmjs.org/node-pty/-/node-pty-0.11.0-beta32.tgz#49c0f174f600ac3f54a21df2a41b6f78256ff6ce" - integrity sha512-xtzB4/jYH64ksdVatYQnaU3TtCtSaDiiZPsZITmLHnywFSpI2bgfyj/bu6ofOXbe8PTtziL8bDn1U3xkRmx3mg== + version "1.1.0-beta1" + resolved "https://registry.npmjs.org/node-pty/-/node-pty-1.1.0-beta1.tgz#95d4baf406c043b78042f951b325e9713df2beac" + integrity sha512-h+1E/gX/brFqsp3yZKGERHOhdo1POG1rrsI+8tEuocqdEddHd029471gq8KOuiHKicd52h2pSU8Gtqb3Vo2PfQ== dependencies: nan "^2.17.0" -node-releases@^2.0.8: - version "2.0.12" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" - integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== +node-releases@^2.0.12: + version "2.0.13" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== noms@0.0.0: version "0.0.0" @@ -11873,9 +11916,9 @@ nullthrows@^1.1.1: integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== nwsapi@^2.2.0: - version "2.2.4" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz#fd59d5e904e8e1f03c25a7d5a15cfa16c714a1e5" - integrity sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g== + version "2.2.7" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== nx@15.9.4, "nx@>=14.8.1 < 16": version "15.9.4" @@ -11948,20 +11991,12 @@ object-inspect@^1.12.3, object-inspect@^1.9.0: resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.2, object.assign@^4.1.3, object.assign@^4.1.4: +object.assign@^4.1.2, object.assign@^4.1.4: version "4.1.4" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== @@ -12253,11 +12288,6 @@ pacote@^13.0.3, pacote@^13.6.1: ssri "^9.0.0" tar "^6.1.11" -paho-mqtt@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/paho-mqtt/-/paho-mqtt-1.1.0.tgz#8c10e29eb162e966fb15188d965c3dce505de9d9" - integrity sha512-KPbL9KAB0ASvhSDbOrZBaccXS+/s7/LIofbPyERww8hM5Ko71GUJQ6Nmg0BWqj8phAIT8zdf/Sd/RftHU9i2HA== - pako@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" @@ -12401,6 +12431,14 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-type@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -12444,9 +12482,9 @@ pify@^5.0.0: integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + version "4.0.6" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^4.2.0: version "4.2.0" @@ -12663,7 +12701,7 @@ punycode@1.3.2: resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== -punycode@^1.3.2: +punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== @@ -12678,6 +12716,13 @@ q@^1.5.1: resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== +qs@^6.11.0: + version "6.11.2" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + querystring@0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -12725,6 +12770,13 @@ react-native-get-random-values@^1.4.0: dependencies: fast-base64-decode "^1.0.0" +react-native-url-polyfill@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz#c1763de0f2a8c22cc3e959b654c8790622b6ef6a" + integrity sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ== + dependencies: + whatwg-url-without-unicode "8.0.0-3" + read-cmd-shim@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" @@ -12885,7 +12937,7 @@ regenerator-runtime@^0.13.11: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: +regexp.prototype.flags@^1.4.3: version "1.5.0" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== @@ -13148,9 +13200,9 @@ semver-compare@^1.0.0: integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@5.5.0: version "5.5.0" @@ -13164,17 +13216,17 @@ semver@7.3.4: dependencies: lru-cache "^6.0.0" -semver@7.5.0: - version "7.5.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" - integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== +semver@7.5.2: + version "7.5.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" + integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== dependencies: lru-cache "^6.0.0" semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: - version "7.5.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" - integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" @@ -13259,6 +13311,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" + integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + signedsource@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" @@ -13418,6 +13475,13 @@ sprintf-js@~1.0.2: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +ssri@^10.0.0: + version "10.0.4" + resolved "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6" + integrity sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ== + dependencies: + minipass "^5.0.0" + ssri@^9.0.0, ssri@^9.0.1: version "9.0.1" resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" @@ -13442,13 +13506,6 @@ statuses@2.0.1: resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - stream-browserify@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -13477,7 +13534,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -13503,6 +13560,15 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -13563,6 +13629,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -13584,12 +13657,12 @@ strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: - ansi-regex "^5.0.1" + ansi-regex "^6.0.1" strip-bom@4.0.0, strip-bom@^4.0.0: version "4.0.0" @@ -13628,7 +13701,7 @@ strip-json-comments@^2.0.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -strnum@^1.0.4, strnum@^1.0.5: +strnum@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== @@ -13864,7 +13937,7 @@ toidentifier@1.0.1: tough-cookie@^4.0.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: psl "^1.1.33" @@ -13900,9 +13973,9 @@ trim-right@^1.0.1: integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== triple-beam@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" - integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + version "1.4.1" + resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" + integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== ts-dedent@^1.1.0: version "1.2.0" @@ -14002,9 +14075,9 @@ tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1 integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: - version "2.5.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz#1b6f07185c881557b0ffa84b111a0106989e8338" - integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== + version "2.6.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== tslib@~2.0.1: version "2.0.3" @@ -14124,10 +14197,10 @@ typescript@^3.2.1: resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== -"typescript@^4.6.4 || ^5.0.0", typescript@~5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" - integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== +"typescript@^4.6.4 || ^5.0.0": + version "5.1.6" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== typescript@~4.4.4: version "4.4.4" @@ -14139,10 +14212,15 @@ typescript@~4.6.2: resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== -ua-parser-js@^0.7.30: - version "0.7.35" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" - integrity sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g== +typescript@~5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" + integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== + +ua-parser-js@^1.0.35: + version "1.0.35" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" + integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== uglify-js@^3.1.4: version "3.17.4" @@ -14181,6 +14259,13 @@ unique-filename@^2.0.0: dependencies: unique-slug "^3.0.0" +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + unique-slug@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" @@ -14188,6 +14273,13 @@ unique-slug@^3.0.0: dependencies: imurmurhash "^0.1.4" +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + universal-cookie@^4.0.4: version "4.0.4" resolved "https://registry.npmjs.org/universal-cookie/-/universal-cookie-4.0.4.tgz#06e8b3625bf9af049569ef97109b4bb226ad798d" @@ -14231,7 +14323,7 @@ upath@^2.0.1: resolved "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== -update-browserslist-db@^1.0.10: +update-browserslist-db@^1.0.11: version "1.0.11" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== @@ -14276,7 +14368,7 @@ url@0.10.3: punycode "1.3.2" querystring "0.2.0" -url@^0.11.0: +url@0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== @@ -14284,6 +14376,14 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" +url@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/url/-/url-0.11.1.tgz#26f90f615427eca1b9f4d6a28288c147e2302a32" + integrity sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA== + dependencies: + punycode "^1.4.1" + qs "^6.11.0" + urlgrey@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz#72d2f904482d0b602e3c7fa599343d699bbe1017" @@ -14307,12 +14407,7 @@ util@^0.12.4: is-typed-array "^1.1.3" which-typed-array "^1.1.2" -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@3.x, uuid@^3.0.0, uuid@^3.2.1, uuid@^3.4.0: +uuid@3.4.0, uuid@3.x, uuid@^3.0.0, uuid@^3.2.1, uuid@^3.4.0: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -14383,7 +14478,7 @@ value-or-promise@^1.0.12: resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== -vm2@^3.9.17, vm2@^3.9.8: +vm2@^3.9.17: version "3.9.19" resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.19.tgz#be1e1d7a106122c6c492b4d51c2e8b93d3ed6a4a" integrity sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg== @@ -14491,7 +14586,7 @@ whatwg-encoding@^1.0.5: whatwg-fetch@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== whatwg-mimetype@^2.3.0: @@ -14499,6 +14594,15 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url-without-unicode@8.0.0-3: + version "8.0.0-3" + resolved "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz#ab6df4bf6caaa6c85a59f6e82c026151d4bb376b" + integrity sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig== + dependencies: + buffer "^5.4.3" + punycode "^2.1.1" + webidl-conversions "^5.0.0" + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -14527,25 +14631,15 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - which-module@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which-typed-array@^1.1.2, which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + version "1.1.10" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.10.tgz#74baa2789991905c2076abb317103b866c64e69e" + integrity sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA== dependencies: available-typed-arrays "^1.0.5" call-bind "^1.0.2" @@ -14595,9 +14689,9 @@ winston-transport@^4.4.0, winston-transport@^4.5.0: triple-beam "^1.3.0" winston@^3.3.3: - version "3.8.2" - resolved "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50" - integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== + version "3.10.0" + resolved "https://registry.npmjs.org/winston/-/winston-3.10.0.tgz#d033cb7bd3ced026fed13bf9d92c55b903116803" + integrity sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g== dependencies: "@colors/colors" "1.5.0" "@dabh/diagnostics" "^2.0.2" @@ -14621,6 +14715,15 @@ wordwrap@^1.0.0: resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -14630,14 +14733,14 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" wrappy@1: version "1.0.2" @@ -14779,10 +14882,10 @@ yaml@1.10.2, yaml@^1.10.0: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.2.1: - version "2.3.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.0.tgz#47ebe58ee718f772ce65862beb1db816210589a0" - integrity sha512-8/1wgzdKc7bc9E6my5wZjmdavHLvO/QOmLG1FBugblEvY4IXrLjlViIOmL24HthU042lWTDRO90Fz1Yp66UnMw== +yaml@^2.2.2: + version "2.3.1" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== yargs-parser@20.2.4: version "20.2.4" From 90fb62f5111693f696117597b808b6d1ac153cf8 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Thu, 13 Jul 2023 17:34:03 -0700 Subject: [PATCH 17/21] chore: make the script executable --- .codebuild/scripts/run-ios-modelgen-e2e-test.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .codebuild/scripts/run-ios-modelgen-e2e-test.sh diff --git a/.codebuild/scripts/run-ios-modelgen-e2e-test.sh b/.codebuild/scripts/run-ios-modelgen-e2e-test.sh old mode 100644 new mode 100755 From 7397ab91743b6fe629bfbf419e7071f65e456fa8 Mon Sep 17 00:00:00 2001 From: Al Harris <91494052+alharris-at@users.noreply.github.com> Date: Fri, 14 Jul 2023 08:39:07 -0700 Subject: [PATCH 18/21] fix: support key directive in model introspection schema gen (#628) --- ...c-model-introspection-visitor.test.ts.snap | 324 ++++++++++++++++++ ...ppsync-model-introspection-visitor.test.ts | 46 ++- .../appsync-model-introspection-visitor.ts | 16 +- .../src/visitors/appsync-visitor.ts | 2 +- 4 files changed, 380 insertions(+), 8 deletions(-) diff --git a/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-model-introspection-visitor.test.ts.snap b/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-model-introspection-visitor.test.ts.snap index b12f44e55..224ec091c 100644 --- a/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-model-introspection-visitor.test.ts.snap +++ b/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-model-introspection-visitor.test.ts.snap @@ -2320,3 +2320,327 @@ exports[`Primary key info within a belongsTo model tests should generate correct \\"nonModels\\": {} }" `; + +exports[`schemas with pk on a belongsTo fk works for v1 1`] = ` +"{ + \\"version\\": 1, + \\"models\\": { + \\"Blog\\": { + \\"name\\": \\"Blog\\", + \\"fields\\": { + \\"id\\": { + \\"name\\": \\"id\\", + \\"isArray\\": false, + \\"type\\": \\"ID\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"title\\": { + \\"name\\": \\"title\\", + \\"isArray\\": false, + \\"type\\": \\"String\\", + \\"isRequired\\": false, + \\"attributes\\": [] + }, + \\"posts\\": { + \\"name\\": \\"posts\\", + \\"isArray\\": true, + \\"type\\": { + \\"model\\": \\"Post\\" + }, + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isArrayNullable\\": true, + \\"association\\": { + \\"connectionType\\": \\"HAS_MANY\\", + \\"associatedWith\\": [] + } + }, + \\"createdAt\\": { + \\"name\\": \\"createdAt\\", + \\"isArray\\": false, + \\"type\\": \\"AWSDateTime\\", + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isReadOnly\\": true + }, + \\"updatedAt\\": { + \\"name\\": \\"updatedAt\\", + \\"isArray\\": false, + \\"type\\": \\"AWSDateTime\\", + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isReadOnly\\": true + } + }, + \\"syncable\\": true, + \\"pluralName\\": \\"Blogs\\", + \\"attributes\\": [ + { + \\"type\\": \\"model\\", + \\"properties\\": {} + } + ], + \\"primaryKeyInfo\\": { + \\"isCustomPrimaryKey\\": false, + \\"primaryKeyFieldName\\": \\"id\\", + \\"sortKeyFieldNames\\": [] + } + }, + \\"Post\\": { + \\"name\\": \\"Post\\", + \\"fields\\": { + \\"id\\": { + \\"name\\": \\"id\\", + \\"isArray\\": false, + \\"type\\": \\"ID\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"blogId\\": { + \\"name\\": \\"blogId\\", + \\"isArray\\": false, + \\"type\\": \\"ID\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"title\\": { + \\"name\\": \\"title\\", + \\"isArray\\": false, + \\"type\\": \\"String\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"description\\": { + \\"name\\": \\"description\\", + \\"isArray\\": false, + \\"type\\": \\"String\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"blog\\": { + \\"name\\": \\"blog\\", + \\"isArray\\": false, + \\"type\\": { + \\"model\\": \\"Blog\\" + }, + \\"isRequired\\": false, + \\"attributes\\": [], + \\"association\\": { + \\"connectionType\\": \\"BELONGS_TO\\", + \\"targetNames\\": [] + } + }, + \\"createdAt\\": { + \\"name\\": \\"createdAt\\", + \\"isArray\\": false, + \\"type\\": \\"AWSDateTime\\", + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isReadOnly\\": true + }, + \\"updatedAt\\": { + \\"name\\": \\"updatedAt\\", + \\"isArray\\": false, + \\"type\\": \\"AWSDateTime\\", + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isReadOnly\\": true + } + }, + \\"syncable\\": true, + \\"pluralName\\": \\"Posts\\", + \\"attributes\\": [ + { + \\"type\\": \\"model\\", + \\"properties\\": {} + }, + { + \\"type\\": \\"key\\", + \\"properties\\": { + \\"fields\\": [ + \\"blogId\\", + \\"title\\", + \\"description\\" + ] + } + } + ], + \\"primaryKeyInfo\\": { + \\"isCustomPrimaryKey\\": true, + \\"primaryKeyFieldName\\": \\"blogId\\", + \\"sortKeyFieldNames\\": [ + \\"title\\", + \\"description\\" + ] + } + } + }, + \\"enums\\": {}, + \\"nonModels\\": {} +}" +`; + +exports[`schemas with pk on a belongsTo fk works for v2 1`] = ` +"{ + \\"version\\": 1, + \\"models\\": { + \\"Blog\\": { + \\"name\\": \\"Blog\\", + \\"fields\\": { + \\"id\\": { + \\"name\\": \\"id\\", + \\"isArray\\": false, + \\"type\\": \\"ID\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"title\\": { + \\"name\\": \\"title\\", + \\"isArray\\": false, + \\"type\\": \\"String\\", + \\"isRequired\\": false, + \\"attributes\\": [] + }, + \\"posts\\": { + \\"name\\": \\"posts\\", + \\"isArray\\": true, + \\"type\\": { + \\"model\\": \\"Post\\" + }, + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isArrayNullable\\": true, + \\"association\\": { + \\"connectionType\\": \\"HAS_MANY\\", + \\"associatedWith\\": [ + \\"blog\\" + ] + } + }, + \\"createdAt\\": { + \\"name\\": \\"createdAt\\", + \\"isArray\\": false, + \\"type\\": \\"AWSDateTime\\", + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isReadOnly\\": true + }, + \\"updatedAt\\": { + \\"name\\": \\"updatedAt\\", + \\"isArray\\": false, + \\"type\\": \\"AWSDateTime\\", + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isReadOnly\\": true + } + }, + \\"syncable\\": true, + \\"pluralName\\": \\"Blogs\\", + \\"attributes\\": [ + { + \\"type\\": \\"model\\", + \\"properties\\": {} + } + ], + \\"primaryKeyInfo\\": { + \\"isCustomPrimaryKey\\": false, + \\"primaryKeyFieldName\\": \\"id\\", + \\"sortKeyFieldNames\\": [] + } + }, + \\"Post\\": { + \\"name\\": \\"Post\\", + \\"fields\\": { + \\"id\\": { + \\"name\\": \\"id\\", + \\"isArray\\": false, + \\"type\\": \\"ID\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"blogId\\": { + \\"name\\": \\"blogId\\", + \\"isArray\\": false, + \\"type\\": \\"ID\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"title\\": { + \\"name\\": \\"title\\", + \\"isArray\\": false, + \\"type\\": \\"String\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"description\\": { + \\"name\\": \\"description\\", + \\"isArray\\": false, + \\"type\\": \\"String\\", + \\"isRequired\\": true, + \\"attributes\\": [] + }, + \\"blog\\": { + \\"name\\": \\"blog\\", + \\"isArray\\": false, + \\"type\\": { + \\"model\\": \\"Blog\\" + }, + \\"isRequired\\": false, + \\"attributes\\": [], + \\"association\\": { + \\"connectionType\\": \\"BELONGS_TO\\", + \\"targetNames\\": [ + \\"blogId\\" + ] + } + }, + \\"createdAt\\": { + \\"name\\": \\"createdAt\\", + \\"isArray\\": false, + \\"type\\": \\"AWSDateTime\\", + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isReadOnly\\": true + }, + \\"updatedAt\\": { + \\"name\\": \\"updatedAt\\", + \\"isArray\\": false, + \\"type\\": \\"AWSDateTime\\", + \\"isRequired\\": false, + \\"attributes\\": [], + \\"isReadOnly\\": true + } + }, + \\"syncable\\": true, + \\"pluralName\\": \\"Posts\\", + \\"attributes\\": [ + { + \\"type\\": \\"model\\", + \\"properties\\": {} + }, + { + \\"type\\": \\"key\\", + \\"properties\\": { + \\"fields\\": [ + \\"blogId\\", + \\"title\\", + \\"description\\" + ] + } + } + ], + \\"primaryKeyInfo\\": { + \\"isCustomPrimaryKey\\": true, + \\"primaryKeyFieldName\\": \\"blogId\\", + \\"sortKeyFieldNames\\": [ + \\"title\\", + \\"description\\" + ] + } + } + }, + \\"enums\\": {}, + \\"nonModels\\": {} +}" +`; diff --git a/packages/appsync-modelgen-plugin/src/__tests__/visitors/appsync-model-introspection-visitor.test.ts b/packages/appsync-modelgen-plugin/src/__tests__/visitors/appsync-model-introspection-visitor.test.ts index 01b8b2188..e50caf04e 100644 --- a/packages/appsync-modelgen-plugin/src/__tests__/visitors/appsync-model-introspection-visitor.test.ts +++ b/packages/appsync-modelgen-plugin/src/__tests__/visitors/appsync-model-introspection-visitor.test.ts @@ -228,4 +228,48 @@ describe('Primary key info within a belongsTo model tests', () => { const visitor: AppSyncModelIntrospectionVisitor = getVisitor(schema, { respectPrimaryKeyAttributesOnConnectionField: false }); expect(visitor.generate()).toMatchSnapshot(); }); -}); \ No newline at end of file +}); + +describe('schemas with pk on a belongsTo fk', () => { + it('works for v1', () => { + expect(getVisitor(/* GraphQL */ ` + type Blog @model { + id: ID! + title: String + posts: [Post] @connection(fields: ["id"]) + } + + type Post @model @key(fields: ["blogId", "title", "description"]) { + id: ID! + blogId: ID! + title: String! + description: String! + blog: Blog @connection(fields: ["blogId"]) + } + `, { + transformerVersion: 1, + usePipelinedTransformer: false, + }).generate()).toMatchSnapshot(); + }); + + it('works for v2', () => { + expect(getVisitor(/* GraphQL */ ` + type Blog @model { + id: ID! + title: String + posts: [Post] @hasMany(fields: ["id"]) + } + + type Post @model { + id: ID! + blogId: ID! @primaryKey(sortKeyFields: ["title", "description"]) + title: String! + description: String! + blog: Blog @belongsTo(fields: ["blogId"]) + } + `, { + transformerVersion: 2, + usePipelinedTransformer: true, + }).generate()).toMatchSnapshot(); + }); +}); diff --git a/packages/appsync-modelgen-plugin/src/visitors/appsync-model-introspection-visitor.ts b/packages/appsync-modelgen-plugin/src/visitors/appsync-model-introspection-visitor.ts index f2cf393a7..d67208921 100644 --- a/packages/appsync-modelgen-plugin/src/visitors/appsync-model-introspection-visitor.ts +++ b/packages/appsync-modelgen-plugin/src/visitors/appsync-model-introspection-visitor.ts @@ -27,6 +27,7 @@ export class AppSyncModelIntrospectionVisitor< const modelIntrospectionSchema = JSON.parse(modelIntrospectionSchemaText); this.schemaValidator = new Ajv().compile(modelIntrospectionSchema); } + generate(): string { const shouldUseModelNameFieldInHasManyAndBelongsTo = false; // This flag is going to be used to tight-trigger on JS implementations only. @@ -152,11 +153,14 @@ export class AppSyncModelIntrospectionVisitor< private generateModelPrimaryKeyInfo(model: CodeGenModel): PrimaryKeyInfo { const primaryKeyField = this.getModelPrimaryKeyField(model); - const { primaryKeyType, sortKeyFields } = primaryKeyField.primaryKeyInfo!; - return { - isCustomPrimaryKey: primaryKeyType === CodeGenPrimaryKeyType.CustomId, - primaryKeyFieldName: this.getFieldName(primaryKeyField), - sortKeyFieldNames: sortKeyFields.map(field => this.getFieldName(field)) - }; + if (primaryKeyField && primaryKeyField.primaryKeyInfo) { + const { primaryKeyType, sortKeyFields } = primaryKeyField.primaryKeyInfo; + return { + isCustomPrimaryKey: primaryKeyType === CodeGenPrimaryKeyType.CustomId, + primaryKeyFieldName: this.getFieldName(primaryKeyField), + sortKeyFieldNames: sortKeyFields.map(field => this.getFieldName(field)) + }; + } + throw new Error(`No primary key found for model ${model.name}`); } } \ No newline at end of file diff --git a/packages/appsync-modelgen-plugin/src/visitors/appsync-visitor.ts b/packages/appsync-modelgen-plugin/src/visitors/appsync-visitor.ts index 71ede95db..75c543373 100644 --- a/packages/appsync-modelgen-plugin/src/visitors/appsync-visitor.ts +++ b/packages/appsync-modelgen-plugin/src/visitors/appsync-visitor.ts @@ -673,7 +673,7 @@ export class AppSyncModelVisitor< if (connectionInfo.kind === CodeGenConnectionType.HAS_MANY || connectionInfo.kind === CodeGenConnectionType.HAS_ONE) { // Need to update the other side of the connection even if there is no connection directive addFieldToModel(connectionInfo.connectedModel, connectionInfo.associatedWith); - } else if (connectionInfo.targetName !== 'id') { + } else if (connectionInfo.targetName !== this.getModelPrimaryKeyField(model)?.name ?? 'id') { // Need to remove the field that is targetName removeFieldFromModel(model, connectionInfo.targetName); } From 93b2388fdb671c19cda0a1db30eb2d1a3420ad6c Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Fri, 14 Jul 2023 10:37:01 -0700 Subject: [PATCH 19/21] chore: add gh workflow --- .github/workflows/build-swift-modelgen.yml | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/build-swift-modelgen.yml diff --git a/.github/workflows/build-swift-modelgen.yml b/.github/workflows/build-swift-modelgen.yml new file mode 100644 index 000000000..0973cc6ed --- /dev/null +++ b/.github/workflows/build-swift-modelgen.yml @@ -0,0 +1,37 @@ +name: 'Test compiling Swift Modelgen output' + +on: + workflow_dispatch: + inputs: + MODELS_S3_URL: + description: 'S3 URL for models' + required: true + +env: + MODELS_S3_URL: ${{ inputs.MODELS_S3_URL }} + +jobs: + Build-Swift-Modelgen: + name: Analyze + runs-on: macos-13-xl + permissions: + actions: read + contents: read + + strategy: + fail-fast: true + + steps: + - name: Mask S3 URL + run: echo "::add-mask::$MODELS_S3_URL" + + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Check Xcode and Swift versions + run: | + xcodebuild -version + swift --version + + - name: Build Swift Models + run: ./scripts/test-swift-modelgen.sh From 5c28cff726eacd0b3ee0ccb7ca6320d295a2fec4 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Fri, 14 Jul 2023 10:40:24 -0700 Subject: [PATCH 20/21] chore: add test script --- scripts/test-swift-modelgen.sh | 61 ++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 scripts/test-swift-modelgen.sh diff --git a/scripts/test-swift-modelgen.sh b/scripts/test-swift-modelgen.sh new file mode 100644 index 000000000..7d52f1893 --- /dev/null +++ b/scripts/test-swift-modelgen.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +# set exit on error to true +set -e + +function buildModels() { + # download and unzip the models from S3 + tempDirectory=$(mktemp -d) + cd $tempDirectory + wget -O models.zip "$MODELS_S3_URL" + tar -xvf models.zip + + # create a Swift package to test the models + pathToSwiftPackage=${tempDirectory}/swiftapp + rm -rf $pathToSwiftPackage + mkdir $pathToSwiftPackage && cd $pathToSwiftPackage + echo "Creating Swift package at $pathToSwiftPackage" + createSwiftPackage + + cd ${tempDirectory}/models + for model in */; do + echo "Building model $model" + buildAndRunModel $model $pathToSwiftPackage + done +} + +function buildAndRunModel() { + pwd && ls + modelName=$1 + ls $modelName && cd $modelName + currentDirectory=$(pwd) + pwd && ls + + pathToSwiftPackage=$2 + + # copy with replace all files in current directory to the swift package + mkdir -p $pathToSwiftPackage/Sources/models + rm -rf $pathToSwiftPackage/Sources/models/* + cp -r $currentDirectory/* $pathToSwiftPackage/Sources/models + + # build and run the model + cd $pathToSwiftPackage + ls Sources/models + swift build && swift run + + # clean up + cd $currentDirectory +} + +function createSwiftPackage() { + # create a swift package + swift package init --type executable + rm -rf Package.swift + echo '// swift-tools-version: 5.7 + import PackageDescription + let package = Package(name: "swiftapp", platforms: [.macOS(.v10_15)], dependencies: [.package(url: "https://github.com/aws-amplify/amplify-swift", from: "2.12.0") ], targets: [ .executableTarget( name: "swiftapp", dependencies: [ .product(name: "Amplify", package: "amplify-swift") ], path: "Sources")] + )' >> Package.swift + cat Package.swift +} + +buildModels From f3d2753d22aa13dd743b9620833b68123b2797d8 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Fri, 14 Jul 2023 10:57:45 -0700 Subject: [PATCH 21/21] chore: remove ls statements --- scripts/test-swift-modelgen.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/scripts/test-swift-modelgen.sh b/scripts/test-swift-modelgen.sh index 7d52f1893..5ede0d902 100644 --- a/scripts/test-swift-modelgen.sh +++ b/scripts/test-swift-modelgen.sh @@ -25,11 +25,9 @@ function buildModels() { } function buildAndRunModel() { - pwd && ls modelName=$1 - ls $modelName && cd $modelName + cd $modelName currentDirectory=$(pwd) - pwd && ls pathToSwiftPackage=$2 @@ -40,7 +38,6 @@ function buildAndRunModel() { # build and run the model cd $pathToSwiftPackage - ls Sources/models swift build && swift run # clean up