diff --git a/.circleci/local_publish_helpers_codebuild.sh b/.circleci/local_publish_helpers_codebuild.sh index 107533bd45f..cf1ad0befba 100644 --- a/.circleci/local_publish_helpers_codebuild.sh +++ b/.circleci/local_publish_helpers_codebuild.sh @@ -141,7 +141,7 @@ function verifyPkgCli { # TODO: After V3 migrations are done, decrease 1095 back to 930 and 875 back to 750 verifySinglePkg "amplify-pkg-linux-x64" "amplify-pkg-linux-x64.tgz" $((1095 * 1024 * 1024)) - verifySinglePkg "amplify-pkg-macos-x64" "amplify-pkg-macos-x64.tgz" $((1095 * 1024 * 1024)) + verifySinglePkg "amplify-pkg-macos-x64" "amplify-pkg-macos-x64.tgz" $((1105 * 1024 * 1024)) verifySinglePkg "amplify-pkg-win-x64.exe" "amplify-pkg-win-x64.tgz" $((1095 * 1024 * 1024)) verifySinglePkg "amplify-pkg-linux-arm64" "amplify-pkg-linux-arm64.tgz" $((875 * 1024 * 1024)) } diff --git a/codebuild_specs/e2e_workflow_generated.yml b/codebuild_specs/e2e_workflow_generated.yml index 3e5815101db..fe3e28d83cd 100644 --- a/codebuild_specs/e2e_workflow_generated.yml +++ b/codebuild_specs/e2e_workflow_generated.yml @@ -434,32 +434,32 @@ batch: TEST_SUITE: src/__tests__/export-pull-a.test.ts|src/__tests__/api_7.test.ts depend-on: - upb - - identifier: l_api_10_api_key_migration5_schema_iterative_rollback_1 + - identifier: l_api_10_api_key_migration5 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/api_10.test.ts|src/__tests__/migration/api.key.migration5.test.ts|src/__tests__/schema-iterative-rollback-1.test.ts + TEST_SUITE: src/__tests__/api_10.test.ts|src/__tests__/migration/api.key.migration5.test.ts depend-on: - upb - - identifier: l_schema_auth_9_b_schema_auth_7b_schema_auth_7a + - identifier: l_schema_iterative_rollback_1_schema_auth_9_b_schema_auth_7b buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/schema-auth-9-b.test.ts|src/__tests__/schema-auth-7b.test.ts|src/__tests__/schema-auth-7a.test.ts + TEST_SUITE: src/__tests__/schema-iterative-rollback-1.test.ts|src/__tests__/schema-auth-9-b.test.ts|src/__tests__/schema-auth-7b.test.ts depend-on: - upb - - identifier: l_schema_auth_2a_schema_auth_1b_schema_auth_11_b + - identifier: l_schema_auth_7a_schema_auth_2a_schema_auth_1b buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/schema-auth-2a.test.ts|src/__tests__/schema-auth-1b.test.ts|src/__tests__/schema-auth-11-b.test.ts + TEST_SUITE: src/__tests__/schema-auth-7a.test.ts|src/__tests__/schema-auth-2a.test.ts|src/__tests__/schema-auth-1b.test.ts depend-on: - upb - - identifier: l_predictions_layer_3 + - identifier: l_schema_auth_11_b_predictions_layer_3 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/predictions.test.ts|src/__tests__/layer-3.test.ts + TEST_SUITE: src/__tests__/schema-auth-11-b.test.ts|src/__tests__/predictions.test.ts|src/__tests__/layer-3.test.ts depend-on: - upb - identifier: l_hosting_geo_import_3 @@ -469,299 +469,307 @@ batch: TEST_SUITE: src/__tests__/hosting.test.ts|src/__tests__/geo-import-3.test.ts depend-on: - upb - - identifier: l_geo_add_d_geo_add_c_delete + - identifier: l_geo_add_d_geo_add_c buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/geo-add-d.test.ts|src/__tests__/geo-add-c.test.ts|src/__tests__/delete.test.ts + TEST_SUITE: src/__tests__/geo-add-d.test.ts|src/__tests__/geo-add-c.test.ts depend-on: - upb - - identifier: l_auth_1b_auth_11_predictions_migration + - identifier: l_delete_auth_1b_auth_11 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/auth_1b.test.ts|src/__tests__/auth_11.test.ts|src/__tests__/transformer-migrations/predictions-migration.test.ts + TEST_SUITE: src/__tests__/delete.test.ts|src/__tests__/auth_1b.test.ts|src/__tests__/auth_11.test.ts depend-on: - upb - - identifier: l_api_key_migration3_api_connection_migration_init_special_case + - identifier: l_predictions_migration_api_key_migration3_api_connection_migration buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/migration/api.key.migration3.test.ts|src/__tests__/migration/api.connection.migration.test.ts|src/__tests__/init-special-case.test.ts + TEST_SUITE: src/__tests__/transformer-migrations/predictions-migration.test.ts|src/__tests__/migration/api.key.migration3.test.ts|src/__tests__/migration/api.connection.migration.test.ts depend-on: - upb - - identifier: l_function_3a_python_function_3a_nodejs_function_3a_go + - identifier: l_init_special_case_function_3a_python_function_3a_nodejs buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_3a_python.test.ts|src/__tests__/function_3a_nodejs.test.ts|src/__tests__/function_3a_go.test.ts + TEST_SUITE: src/__tests__/init-special-case.test.ts|src/__tests__/function_3a_python.test.ts|src/__tests__/function_3a_nodejs.test.ts depend-on: - upb - - identifier: l_function_3a_dotnet_export_pull_b_auth_7b + - identifier: l_function_3a_go_function_3a_dotnet_export_pull_b buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_3a_dotnet.test.ts|src/__tests__/export-pull-b.test.ts|src/__tests__/auth_7b.test.ts + TEST_SUITE: src/__tests__/function_3a_go.test.ts|src/__tests__/function_3a_dotnet.test.ts|src/__tests__/export-pull-b.test.ts depend-on: - upb - - identifier: l_api_6a_http_migration_schema_function_2 + - identifier: l_auth_7b_api_6a_http_migration buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/api_6a.test.ts|src/__tests__/transformer-migrations/http-migration.test.ts|src/__tests__/schema-function-2.test.ts + TEST_SUITE: src/__tests__/auth_7b.test.ts|src/__tests__/api_6a.test.ts|src/__tests__/transformer-migrations/http-migration.test.ts depend-on: - upb - - identifier: l_schema_auth_3_schema_auth_12_schema_iterative_update_3 + - identifier: l_schema_function_2_schema_auth_3_schema_auth_12 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/schema-auth-3.test.ts|src/__tests__/schema-auth-12.test.ts|src/__tests__/schema-iterative-update-3.test.ts + TEST_SUITE: src/__tests__/schema-function-2.test.ts|src/__tests__/schema-auth-3.test.ts|src/__tests__/schema-auth-12.test.ts depend-on: - upb - - identifier: l_schema_iterative_rollback_2_schema_auth_5a_export_pull_d + - identifier: l_schema_iterative_update_3_schema_iterative_rollback_2_schema_auth_5a buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/schema-iterative-rollback-2.test.ts|src/__tests__/schema-auth-5a.test.ts|src/__tests__/export-pull-d.test.ts + TEST_SUITE: src/__tests__/schema-iterative-update-3.test.ts|src/__tests__/schema-iterative-rollback-2.test.ts|src/__tests__/schema-auth-5a.test.ts depend-on: - upb - - identifier: l_auth_8a_auth_4b_auth_migration + - identifier: l_export_pull_d_auth_8a_auth_4b buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/auth_8a.test.ts|src/__tests__/auth_4b.test.ts|src/__tests__/transformer-migrations/auth-migration.test.ts + TEST_SUITE: src/__tests__/export-pull-d.test.ts|src/__tests__/auth_8a.test.ts|src/__tests__/auth_4b.test.ts depend-on: - upb - - identifier: l_push_pull_2_pr_previews_multi_env_1 + - identifier: l_auth_migration_push_pull_2 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/push.test.ts|src/__tests__/pull-2.test.ts|src/__tests__/pr-previews-multi-env-1.test.ts + TEST_SUITE: src/__tests__/transformer-migrations/auth-migration.test.ts|src/__tests__/push.test.ts|src/__tests__/pull-2.test.ts depend-on: - upb - - identifier: l_parameter_store_2_parameter_store_1_notifications_sms_update + - identifier: l_pr_previews_multi_env_1_parameter_store_2_parameter_store_1 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/parameter-store-2.test.ts|src/__tests__/parameter-store-1.test.ts|src/__tests__/notifications-sms-update.test.ts + TEST_SUITE: src/__tests__/pr-previews-multi-env-1.test.ts|src/__tests__/parameter-store-2.test.ts|src/__tests__/parameter-store-1.test.ts depend-on: - upb - - identifier: l_notifications_multi_env_minify_cloudformation_init_force_push + - identifier: l_notifications_sms_update_notifications_multi_env_minify_cloudformation buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/notifications-multi-env.test.ts|src/__tests__/minify-cloudformation.test.ts|src/__tests__/init-force-push.test.ts + TEST_SUITE: src/__tests__/notifications-sms-update.test.ts|src/__tests__/notifications-multi-env.test.ts|src/__tests__/minify-cloudformation.test.ts depend-on: - upb - - identifier: l_hooks_c_help_function_2d + - identifier: l_init_force_push_hooks_c_help buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/hooks-c.test.ts|src/__tests__/help.test.ts|src/__tests__/function_2d.test.ts + TEST_SUITE: src/__tests__/init-force-push.test.ts|src/__tests__/hooks-c.test.ts|src/__tests__/help.test.ts depend-on: - upb - - identifier: l_function_15_function_14_function_13 + - identifier: l_function_2d_function_15_function_14 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_15.test.ts|src/__tests__/function_14.test.ts|src/__tests__/function_13.test.ts + TEST_SUITE: src/__tests__/function_2d.test.ts|src/__tests__/function_15.test.ts|src/__tests__/function_14.test.ts depend-on: - upb - - identifier: l_function_12_export_pull_c + - identifier: l_function_13_function_12 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_12.test.ts|src/__tests__/export-pull-c.test.ts + TEST_SUITE: src/__tests__/function_13.test.ts|src/__tests__/function_12.test.ts depend-on: - upb - - identifier: l_custom_resource_with_storage_build_function_build_function_yarn_modern + - identifier: l_export_pull_c_custom_resource_with_storage buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/custom-resource-with-storage.test.ts|src/__tests__/build-function.test.ts|src/__tests__/build-function-yarn-modern.test.ts + TEST_SUITE: src/__tests__/export-pull-c.test.ts|src/__tests__/custom-resource-with-storage.test.ts CLI_REGION: us-west-2 depend-on: - upb - - identifier: l_auth_5g_auth_2h_auth_2g + - identifier: l_build_function_build_function_yarn_modern_auth_5g buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/auth_5g.test.ts|src/__tests__/auth_2h.test.ts|src/__tests__/auth_2g.test.ts + TEST_SUITE: src/__tests__/build-function.test.ts|src/__tests__/build-function-yarn-modern.test.ts|src/__tests__/auth_5g.test.ts depend-on: - upb - - identifier: l_auth_12_api_9a + - identifier: l_auth_2h_auth_2g_auth_12 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/auth_12.test.ts|src/__tests__/api_9a.test.ts + TEST_SUITE: src/__tests__/auth_2h.test.ts|src/__tests__/auth_2g.test.ts|src/__tests__/auth_12.test.ts depend-on: - upb - - identifier: l_api_6c_api_2b + - identifier: l_api_9a_api_6c buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/api_6c.test.ts|src/__tests__/api_2b.test.ts + TEST_SUITE: src/__tests__/api_9a.test.ts|src/__tests__/api_6c.test.ts depend-on: - upb - - identifier: l_api_2a_amplify_remove_S3server + - identifier: l_api_2b_api_2a_amplify_remove buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/api_2a.test.ts|src/__tests__/amplify-remove.test.ts|src/__tests__/storage-simulator/S3server.test.ts + TEST_SUITE: src/__tests__/api_2b.test.ts|src/__tests__/api_2a.test.ts|src/__tests__/amplify-remove.test.ts depend-on: - upb - - identifier: l_smoketest_smoketest_ios_javascript_notifications_pinpoint_config + - identifier: l_S3server_smoketest_smoketest_ios buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/smoke-tests/smoketest.test.ts|src/__tests__/smoke-tests/smoketest-ios.test.ts|src/__tests__/pinpoint/javascript-notifications-pinpoint-config.test.ts + TEST_SUITE: src/__tests__/storage-simulator/S3server.test.ts|src/__tests__/smoke-tests/smoketest.test.ts|src/__tests__/smoke-tests/smoketest-ios.test.ts depend-on: - upb - - identifier: l_javascript_analytics_pinpoint_config_ios_notifications_pinpoint_config_ios_analytics_pinpoint_config + - identifier: l_javascript_notifications_pinpoint_config_javascript_analytics_pinpoint_config_ios_notifications_pinpoint_config buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/pinpoint/javascript-analytics-pinpoint-config.test.ts|src/__tests__/pinpoint/ios-notifications-pinpoint-config.test.ts|src/__tests__/pinpoint/ios-analytics-pinpoint-config.test.ts + TEST_SUITE: src/__tests__/pinpoint/javascript-notifications-pinpoint-config.test.ts|src/__tests__/pinpoint/javascript-analytics-pinpoint-config.test.ts|src/__tests__/pinpoint/ios-notifications-pinpoint-config.test.ts depend-on: - upb - - identifier: l_flutter_notifications_pinpoint_config_flutter_analytics_pinpoint_config_android_notifications_pinpoint_config + - identifier: l_ios_analytics_pinpoint_config_flutter_notifications_pinpoint_config_flutter_analytics_pinpoint_config buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/pinpoint/flutter-notifications-pinpoint-config.test.ts|src/__tests__/pinpoint/flutter-analytics-pinpoint-config.test.ts|src/__tests__/pinpoint/android-notifications-pinpoint-config.test.ts + TEST_SUITE: src/__tests__/pinpoint/ios-analytics-pinpoint-config.test.ts|src/__tests__/pinpoint/flutter-notifications-pinpoint-config.test.ts|src/__tests__/pinpoint/flutter-analytics-pinpoint-config.test.ts depend-on: - upb - - identifier: l_android_analytics_pinpoint_config_opensearch_simulator_general_config_headless_init + - identifier: l_android_notifications_pinpoint_config_android_analytics_pinpoint_config_opensearch_simulator buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/pinpoint/android-analytics-pinpoint-config.test.ts|src/__tests__/opensearch-simulator/opensearch-simulator.test.ts|src/__tests__/general-config/general-config-headless-init.test.ts + TEST_SUITE: src/__tests__/pinpoint/android-notifications-pinpoint-config.test.ts|src/__tests__/pinpoint/android-analytics-pinpoint-config.test.ts|src/__tests__/opensearch-simulator/opensearch-simulator.test.ts depend-on: - upb - - identifier: l_dynamodb_simulator_user_groups_user_groups_s3_access + - identifier: l_general_config_headless_init_dynamodb_simulator_user_groups buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/dynamodb-simulator/dynamodb-simulator.test.ts|src/__tests__/auth/user-groups.test.ts|src/__tests__/auth/user-groups-s3-access.test.ts + TEST_SUITE: src/__tests__/general-config/general-config-headless-init.test.ts|src/__tests__/dynamodb-simulator/dynamodb-simulator.test.ts|src/__tests__/auth/user-groups.test.ts depend-on: - upb - - identifier: l_hosted_ui_admin_api_schema_iterative_update_locking + - identifier: l_user_groups_s3_access_hosted_ui_admin_api buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/auth/hosted-ui.test.ts|src/__tests__/auth/admin-api.test.ts|src/__tests__/schema-iterative-update-locking.test.ts + TEST_SUITE: src/__tests__/auth/user-groups-s3-access.test.ts|src/__tests__/auth/hosted-ui.test.ts|src/__tests__/auth/admin-api.test.ts depend-on: - upb - - identifier: l_function_8_api_8_schema_auth_13 + - identifier: l_schema_iterative_update_locking_function_8_api_8 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_8.test.ts|src/__tests__/api_8.test.ts|src/__tests__/schema-auth-13.test.ts + TEST_SUITE: src/__tests__/schema-iterative-update-locking.test.ts|src/__tests__/function_8.test.ts|src/__tests__/api_8.test.ts depend-on: - upb - - identifier: l_layer_2_api_lambda_auth_2_schema_iterative_update_1 + - identifier: l_schema_auth_13_layer_2_api_lambda_auth_2 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/layer-2.test.ts|src/__tests__/graphql-v2/api_lambda_auth_2.test.ts|src/__tests__/schema-iterative-update-1.test.ts + TEST_SUITE: src/__tests__/schema-auth-13.test.ts|src/__tests__/layer-2.test.ts|src/__tests__/graphql-v2/api_lambda_auth_2.test.ts depend-on: - upb - - identifier: l_function_5_schema_function_1_schema_connection_2 + - identifier: l_schema_iterative_update_1_function_5_schema_function_1 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_5.test.ts|src/__tests__/schema-function-1.test.ts|src/__tests__/schema-connection-2.test.ts + TEST_SUITE: src/__tests__/schema-iterative-update-1.test.ts|src/__tests__/function_5.test.ts|src/__tests__/schema-function-1.test.ts depend-on: - upb - - identifier: l_function_2a_auth_6_storage_1b + - identifier: l_schema_connection_2_function_2a buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_2a.test.ts|src/__tests__/auth_6.test.ts|src/__tests__/storage-1b.test.ts + TEST_SUITE: src/__tests__/schema-connection-2.test.ts|src/__tests__/function_2a.test.ts depend-on: - upb - - identifier: l_storage_1a_schema_iterative_update_2_function_9b + - identifier: l_auth_6_storage_1b_storage_1a buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/storage-1a.test.ts|src/__tests__/schema-iterative-update-2.test.ts|src/__tests__/function_9b.test.ts + TEST_SUITE: src/__tests__/auth_6.test.ts|src/__tests__/storage-1b.test.ts|src/__tests__/storage-1a.test.ts depend-on: - upb - - identifier: l_custom_policies_container_api_9b_function_7 + - identifier: l_schema_iterative_update_2_function_9b_custom_policies_container buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/custom_policies_container.test.ts|src/__tests__/api_9b.test.ts|src/__tests__/function_7.test.ts + TEST_SUITE: src/__tests__/schema-iterative-update-2.test.ts|src/__tests__/function_9b.test.ts|src/__tests__/custom_policies_container.test.ts depend-on: - upb - - identifier: l_function_2b_function_11_api_connection_migration2 + - identifier: l_api_9b_function_7_function_2b buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_2b.test.ts|src/__tests__/function_11.test.ts|src/__tests__/migration/api.connection.migration2.test.ts + TEST_SUITE: src/__tests__/api_9b.test.ts|src/__tests__/function_7.test.ts|src/__tests__/function_2b.test.ts depend-on: - upb - - identifier: l_storage_4_containers_api_secrets_api_4 + - identifier: l_function_11_api_connection_migration2_storage_4 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/storage-4.test.ts|src/__tests__/containers-api-secrets.test.ts|src/__tests__/api_4.test.ts + TEST_SUITE: src/__tests__/function_11.test.ts|src/__tests__/migration/api.connection.migration2.test.ts|src/__tests__/storage-4.test.ts depend-on: - upb - - identifier: l_schema_auth_10_schema_key_resolvers + - identifier: l_containers_api_secrets_api_4_schema_auth_10 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/schema-auth-10.test.ts|src/__tests__/schema-key.test.ts|src/__tests__/resolvers.test.ts + TEST_SUITE: src/__tests__/containers-api-secrets.test.ts|src/__tests__/api_4.test.ts|src/__tests__/schema-auth-10.test.ts depend-on: - upb - - identifier: l_geo_multi_env_searchable_datastore + - identifier: l_schema_key_resolvers_geo_multi_env buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/geo-multi-env.test.ts|src/__tests__/graphql-v2/searchable-datastore.test.ts + TEST_SUITE: src/__tests__/schema-key.test.ts|src/__tests__/resolvers.test.ts|src/__tests__/geo-multi-env.test.ts depend-on: - upb - - identifier: l_schema_searchable_apigw + - identifier: l_searchable_datastore_schema_searchable buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/schema-searchable.test.ts|src/__tests__/apigw.test.ts + TEST_SUITE: src/__tests__/graphql-v2/searchable-datastore.test.ts|src/__tests__/schema-searchable.test.ts depend-on: - upb - - identifier: l_api_5_api_key_migration2_api_lambda_auth_1 + - identifier: l_apigw_api_5_api_key_migration2 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/api_5.test.ts|src/__tests__/migration/api.key.migration2.test.ts|src/__tests__/graphql-v2/api_lambda_auth_1.test.ts + TEST_SUITE: src/__tests__/apigw.test.ts|src/__tests__/api_5.test.ts|src/__tests__/migration/api.key.migration2.test.ts depend-on: - upb - - identifier: l_schema_auth_14_api_key_migration1_api_6b + - identifier: l_api_lambda_auth_1_schema_auth_14_api_key_migration1 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/schema-auth-14.test.ts|src/__tests__/migration/api.key.migration1.test.ts|src/__tests__/api_6b.test.ts + TEST_SUITE: src/__tests__/graphql-v2/api_lambda_auth_1.test.ts|src/__tests__/schema-auth-14.test.ts|src/__tests__/migration/api.key.migration1.test.ts depend-on: - upb - - identifier: l_api_3_layer_1_api_1 + - identifier: l_api_6b_api_3_layer_1 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/api_3.test.ts|src/__tests__/layer-1.test.ts|src/__tests__/api_1.test.ts + TEST_SUITE: src/__tests__/api_6b.test.ts|src/__tests__/api_3.test.ts|src/__tests__/layer-1.test.ts depend-on: - upb - - identifier: l_api_key_migration4_schema_iterative_update_4 + - identifier: l_api_1_api_key_migration4 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/migration/api.key.migration4.test.ts|src/__tests__/schema-iterative-update-4.test.ts + TEST_SUITE: src/__tests__/api_1.test.ts|src/__tests__/migration/api.key.migration4.test.ts depend-on: - upb - - identifier: l_function_1_storage_5 + - identifier: l_schema_iterative_update_4_function_1 buildspec: codebuild_specs/run_e2e_tests_linux.yml env: variables: - TEST_SUITE: src/__tests__/function_1.test.ts|src/__tests__/storage-5.test.ts + TEST_SUITE: src/__tests__/schema-iterative-update-4.test.ts|src/__tests__/function_1.test.ts + depend-on: + - upb + - identifier: l_storage_5 + buildspec: codebuild_specs/run_e2e_tests_linux.yml + env: + variables: + compute-type: BUILD_GENERAL1_SMALL + TEST_SUITE: src/__tests__/storage-5.test.ts depend-on: - upb - identifier: l_datastore_modelgen diff --git a/codebuild_specs/wait_for_ids.json b/codebuild_specs/wait_for_ids.json index a3b736e0f02..9728f2e0c3f 100644 --- a/codebuild_specs/wait_for_ids.json +++ b/codebuild_specs/wait_for_ids.json @@ -1,69 +1,64 @@ [ + "l_S3server_smoketest_smoketest_ios", "l_amplify_app", "l_analytics_pinpoint_flutter_analytics_kinesis_notifications_analytics_compatibility_sms_2", - "l_android_analytics_pinpoint_config_opensearch_simulator_general_config_headless_init", - "l_api_10_api_key_migration5_schema_iterative_rollback_1", - "l_api_2a_amplify_remove_S3server", - "l_api_3_layer_1_api_1", - "l_api_5_api_key_migration2_api_lambda_auth_1", - "l_api_6a_http_migration_schema_function_2", - "l_api_6c_api_2b", - "l_api_key_migration3_api_connection_migration_init_special_case", - "l_api_key_migration4_schema_iterative_update_4", + "l_android_notifications_pinpoint_config_android_analytics_pinpoint_config_opensearch_simulator", + "l_api_10_api_key_migration5", + "l_api_1_api_key_migration4", + "l_api_2b_api_2a_amplify_remove", + "l_api_6b_api_3_layer_1", + "l_api_9a_api_6c", + "l_api_9b_function_7_function_2b", + "l_api_lambda_auth_1_schema_auth_14_api_key_migration1", + "l_apigw_api_5_api_key_migration2", "l_auth_10_init_f_init_d", - "l_auth_12_api_9a", "l_auth_1a_auth_trigger_schema_versioned", - "l_auth_1b_auth_11_predictions_migration", "l_auth_2b_auth_2a_analytics_pinpoint_js", "l_auth_2c", "l_auth_2e", + "l_auth_2h_auth_2g_auth_12", "l_auth_4a_auth_3b_auth_3a", "l_auth_4c_auth_3c_schema_auth_8c", "l_auth_5b_schema_auth_8a_schema_auth_7c", "l_auth_5d_tags_schema_model_a", "l_auth_5e_auth_1c_schema_predictions", "l_auth_5f_model_migration_schema_auth_5c", - "l_auth_5g_auth_2h_auth_2g", - "l_auth_8a_auth_4b_auth_migration", + "l_auth_6_storage_1b_storage_1a", + "l_auth_7b_api_6a_http_migration", + "l_auth_migration_push_pull_2", + "l_build_function_build_function_yarn_modern_auth_5g", "l_containers_api_1", "l_containers_api_2", - "l_custom_policies_container_api_9b_function_7", - "l_custom_resource_with_storage_build_function_build_function_yarn_modern", + "l_containers_api_secrets_api_4_schema_auth_10", "l_custom_resources_auth_9", "l_datastore_modelgen", + "l_delete_auth_1b_auth_11", "l_diagnose_mock_api_hooks_a", - "l_dynamodb_simulator_user_groups_user_groups_s3_access", "l_env_1_auth_5c_auth_5a", "l_env_2_amplify_configure_layer_4", "l_env_3", "l_export_pull_a_api_7", + "l_export_pull_c_custom_resource_with_storage", + "l_export_pull_d_auth_8a_auth_4b", "l_feature_flags_auth_8c_auth_7a", - "l_flutter_notifications_pinpoint_config_flutter_analytics_pinpoint_config_android_notifications_pinpoint_config", "l_function_10_function_permissions_env_5", - "l_function_12_export_pull_c", - "l_function_15_function_14_function_13", - "l_function_1_storage_5", - "l_function_2a_auth_6_storage_1b", - "l_function_2b_function_11_api_connection_migration2", - "l_function_3a_dotnet_export_pull_b_auth_7b", - "l_function_3a_python_function_3a_nodejs_function_3a_go", + "l_function_11_api_connection_migration2_storage_4", + "l_function_13_function_12", + "l_function_2d_function_15_function_14", + "l_function_3a_go_function_3a_dotnet_export_pull_b", "l_function_4_function_3b_function_2c", - "l_function_5_schema_function_1_schema_connection_2", - "l_function_8_api_8_schema_auth_13", "l_function_migration_storage_3_schema_auth_9_c", - "l_geo_add_d_geo_add_c_delete", + "l_general_config_headless_init_dynamodb_simulator_user_groups", + "l_geo_add_d_geo_add_c", "l_geo_add_e", "l_geo_add_f", "l_geo_import_2_geo_import_1a_function_9c", - "l_geo_multi_env_searchable_datastore", "l_geo_remove_1", "l_geo_remove_2", "l_geo_remove_3", "l_geo_update_1", "l_geo_update_2", "l_global_sandbox_c_analytics_2_pull", - "l_hooks_c_help_function_2d", - "l_hosted_ui_admin_api_schema_iterative_update_locking", "l_hostingPROD", "l_hosting_geo_import_3", "l_iam_permissions_boundary_export_node_function", @@ -83,47 +78,53 @@ "l_import_s3_3", "l_init_c_git_clone_attach_configure_project", "l_init_e_global_sandbox_a_geo_import_1b", - "l_javascript_analytics_pinpoint_config_ios_notifications_pinpoint_config_ios_analytics_pinpoint_config", + "l_init_force_push_hooks_c_help", + "l_init_special_case_function_3a_python_function_3a_nodejs", + "l_ios_analytics_pinpoint_config_flutter_notifications_pinpoint_config_flutter_analytics_pinpoint_config", + "l_javascript_notifications_pinpoint_config_javascript_analytics_pinpoint_config_ios_notifications_pinpoint_config", "l_js_frontend_config", - "l_layer_2_api_lambda_auth_2_schema_iterative_update_1", "l_notifications_analytics_compatibility_in_app_1_studio_modelgen", "l_notifications_apns_init_b_container_hosting", "l_notifications_in_app_messaging", "l_notifications_lifecycle_auth_2f_auth_2d", - "l_notifications_multi_env_minify_cloudformation_init_force_push", "l_notifications_sms_pull_notifications_in_app_messaging_env_1_custom_transformers", - "l_parameter_store_2_parameter_store_1_notifications_sms_update", + "l_notifications_sms_update_notifications_multi_env_minify_cloudformation", "l_plugin_notifications_analytics_compatibility_sms_1_hooks_b", - "l_predictions_layer_3", - "l_push_pull_2_pr_previews_multi_env_1", + "l_pr_previews_multi_env_1_parameter_store_2_parameter_store_1", + "l_predictions_migration_api_key_migration3_api_connection_migration", "l_s3_sse_geo_add_b_auth_8b", - "l_schema_auth_10_schema_key_resolvers", "l_schema_auth_11_a", + "l_schema_auth_11_b_predictions_layer_3", "l_schema_auth_11_c_notifications_analytics_compatibility_in_app_2", - "l_schema_auth_14_api_key_migration1_api_6b", + "l_schema_auth_13_layer_2_api_lambda_auth_2", "l_schema_auth_15", "l_schema_auth_1a_geo_headless_function_9a", - "l_schema_auth_2a_schema_auth_1b_schema_auth_11_b", - "l_schema_auth_3_schema_auth_12_schema_iterative_update_3", "l_schema_auth_4c_init_a_geo_add_a", "l_schema_auth_4d_frontend_config_drift_env_4", "l_schema_auth_6b_schema_auth_5d_global_sandbox_b", "l_schema_auth_6d_schema_auth_6c_schema_auth_2b", + "l_schema_auth_7a_schema_auth_2a_schema_auth_1b", "l_schema_auth_9_a_schema_auth_8b_schema_auth_5b", - "l_schema_auth_9_b_schema_auth_7b_schema_auth_7a", "l_schema_connection_1", - "l_schema_iterative_rollback_2_schema_auth_5a_export_pull_d", + "l_schema_connection_2_function_2a", + "l_schema_function_2_schema_auth_3_schema_auth_12", + "l_schema_iterative_rollback_1_schema_auth_9_b_schema_auth_7b", + "l_schema_iterative_update_1_function_5_schema_function_1", + "l_schema_iterative_update_2_function_9b_custom_policies_container", + "l_schema_iterative_update_3_schema_iterative_rollback_2_schema_auth_5a", + "l_schema_iterative_update_4_function_1", + "l_schema_iterative_update_locking_function_8_api_8", + "l_schema_key_resolvers_geo_multi_env", "l_schema_model_c_schema_data_access_patterns_schema_auth_6a", "l_schema_model_d_schema_model_b_schema_auth_4a", "l_schema_model_e_schema_auth_4b_notifications_sms", - "l_schema_searchable_apigw", + "l_searchable_datastore_schema_searchable", "l_searchable_migration", "l_smoketest_amplify_app", - "l_smoketest_smoketest_ios_javascript_notifications_pinpoint_config", - "l_storage_1a_schema_iterative_update_2_function_9b", "l_storage_2_function_6_custom_policies_function", - "l_storage_4_containers_api_secrets_api_4", + "l_storage_5", "l_uibuilder", + "l_user_groups_s3_access_hosted_ui_admin_api", "l_with_babel_config_notifications_in_app_messaging_env_2_notifications_fcm", "w_admin_api_schema_iterative_update_locking", "w_amplify_configure_layer_4", diff --git a/packages/amplify-category-notifications/package.json b/packages/amplify-category-notifications/package.json index d5282b513bd..613fa65263f 100644 --- a/packages/amplify-category-notifications/package.json +++ b/packages/amplify-category-notifications/package.json @@ -30,7 +30,9 @@ "@aws-amplify/amplify-environment-parameters": "1.9.22", "@aws-amplify/amplify-prompts": "2.8.7", "@aws-amplify/amplify-provider-awscloudformation": "8.11.14", - "aws-sdk": "^2.1464.0", + "@aws-sdk/client-iam": "^3.624.0", + "@aws-sdk/client-pinpoint": "^3.624.0", + "@smithy/node-http-handler": "^4.1.0", "chalk": "^4.1.1", "fs-extra": "^8.1.0", "lodash": "^4.17.21", @@ -38,6 +40,10 @@ "promise-sequential": "^1.1.1", "proxy-agent": "^6.3.0" }, + "devDependencies": { + "aws-sdk-client-mock": "^4.1.0", + "aws-sdk-client-mock-jest": "^4.1.0" + }, "jest": { "testEnvironmentOptions": { "url": "http://localhost" diff --git a/packages/amplify-category-notifications/src/__tests__/channel-apns.test.ts b/packages/amplify-category-notifications/src/__tests__/channel-apns.test.ts index c992e7d7ce0..bca985f6d92 100644 --- a/packages/amplify-category-notifications/src/__tests__/channel-apns.test.ts +++ b/packages/amplify-category-notifications/src/__tests__/channel-apns.test.ts @@ -1,5 +1,8 @@ import { $TSAny, $TSContext, AmplifyCategories, AmplifyFault, AmplifySupportedService, IContextPrint } from '@aws-amplify/amplify-cli-core'; import { prompter } from '@aws-amplify/amplify-prompts'; +import { mockClient } from 'aws-sdk-client-mock'; +import 'aws-sdk-client-mock-jest'; +import { PinpointClient, UpdateApnsChannelCommand, UpdateApnsSandboxChannelCommand } from '@aws-sdk/client-pinpoint'; import * as configureKey from '../apns-key-config'; import * as configureCertificate from '../apns-cert-config'; @@ -14,6 +17,8 @@ jest.mock('../apns-cert-config'); jest.mock('@aws-amplify/amplify-prompts'); const prompterMock = prompter as jest.Mocked; +const mockPinpointClient = mockClient(PinpointClient); + class NoErrorThrownError extends Error {} // wrapper to avoid conditional error checks const getError = async (call: () => unknown): Promise => { @@ -43,8 +48,20 @@ describe('channel-APNS', () => { mockServiceOutput[channelName] = mockChannelOutput; const mockPinpointResponseErr = new Error('channel-APNS.test.js error'); - const mockPinpointResponseData = { - APNSChannelResponse: {}, + const mockApnsChannelResponseData = { + APNSChannelResponse: { + Enabled: true, + ApplicationId: 'test-app-id', + Platform: 'APNS' as const, + }, + }; + + const mockApnsSandboxChannelResponseData = { + APNSSandboxChannelResponse: { + Enabled: true, + ApplicationId: 'test-app-id', + Platform: 'APNS_SANDBOX' as const, + }, }; const mockAPNSChannelResponseData = (status: boolean, action: ChannelAction, output: $TSAny): IChannelAPIResponse => ({ @@ -64,30 +81,12 @@ describe('channel-APNS', () => { const mockKeyConfig = {}; const mockCertificateConfig = {}; - const mockPinpointClient = { - updateApnsChannel: jest.fn().mockReturnValue({ - promise: jest.fn().mockResolvedValue(mockPinpointResponseData), - }), - updateApnsSandboxChannel: jest.fn().mockReturnValue({ - promise: jest.fn().mockResolvedValue(mockPinpointResponseData), - }), - }; - - const mockPinpointClientReject = { - updateApnsChannel: jest.fn().mockReturnValue({ - promise: jest.fn().mockRejectedValue(mockPinpointResponseErr), - }), - updateApnsSandboxChannel: jest.fn().mockReturnValue({ - promise: jest.fn().mockRejectedValue(mockPinpointResponseErr), - }), - }; - const mockContext: $TSContext = { exeInfo: { serviceMeta: { output: mockServiceOutput, }, - pinpointClient: mockPinpointClient, + pinpointClient: mockPinpointClient as unknown as PinpointClient, }, print: { info: jest.fn(), @@ -95,18 +94,9 @@ describe('channel-APNS', () => { } as unknown as IContextPrint, } as unknown as $TSContext; - const mockContextReject = { - exeInfo: { - serviceMeta: { - output: mockServiceOutput, - }, - pinpointClient: mockPinpointClientReject, - }, - print: { - info: jest.fn(), - error: jest.fn(), - }, - }; + beforeEach(() => { + mockPinpointClient.reset(); + }); beforeAll(() => { global.console = { ...global.console, log: jest.fn() }; @@ -118,69 +108,73 @@ describe('channel-APNS', () => { }); test('configure', async () => { + mockPinpointClient.on(UpdateApnsChannelCommand).resolves(mockApnsChannelResponseData); + mockPinpointClient.on(UpdateApnsSandboxChannelCommand).resolves(mockApnsSandboxChannelResponseData); + mockChannelOutput.Enabled = true; prompterMock.yesOrNo.mockResolvedValueOnce(true); - await channelAPNS.configure(mockContext).then(() => { - expect(mockPinpointClient.updateApnsChannel).toBeCalled(); - }); + await channelAPNS.configure(mockContext); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); mockChannelOutput.Enabled = true; prompterMock.yesOrNo.mockResolvedValueOnce(false); - await channelAPNS.configure(mockContext).then(() => { - expect(mockPinpointClient.updateApnsChannel).toBeCalled(); - }); + prompterMock.pick.mockResolvedValueOnce('Certificate'); + await channelAPNS.configure(mockContext); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); mockChannelOutput.Enabled = false; prompterMock.yesOrNo.mockResolvedValueOnce(true); prompterMock.pick.mockResolvedValueOnce('Certificate'); - await channelAPNS.configure(mockContext).then(() => { - expect(mockPinpointClient.updateApnsChannel).toBeCalled(); - }); + await channelAPNS.configure(mockContext); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); }); test('enable', async () => { - prompterMock.pick.mockResolvedValueOnce('Certificate'); + mockPinpointClient.on(UpdateApnsChannelCommand).resolves(mockApnsChannelResponseData); + mockPinpointClient.on(UpdateApnsSandboxChannelCommand).resolves(mockApnsSandboxChannelResponseData); + prompterMock.pick.mockResolvedValueOnce('Certificate'); const disableData = await channelAPNS.enable(mockContext, 'successMessage'); - expect(mockPinpointClient.updateApnsChannel).toBeCalled(); - expect(mockPinpointClient.updateApnsSandboxChannel).toBeCalled(); - expect(disableData).toEqual(mockAPNSChannelResponseData(true, ChannelAction.ENABLE, mockPinpointResponseData.APNSChannelResponse)); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsSandboxChannelCommand); + expect(disableData).toEqual(mockAPNSChannelResponseData(true, ChannelAction.ENABLE, mockApnsChannelResponseData.APNSChannelResponse)); prompterMock.pick.mockResolvedValueOnce('Key'); const enableData = await channelAPNS.enable(mockContext, 'successMessage'); - expect(mockPinpointClient.updateApnsChannel).toBeCalled(); - expect(mockPinpointClient.updateApnsSandboxChannel).toBeCalled(); - expect(enableData).toEqual(mockAPNSChannelResponseData(true, ChannelAction.ENABLE, mockPinpointResponseData.APNSChannelResponse)); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsSandboxChannelCommand); + expect(enableData).toEqual(mockAPNSChannelResponseData(true, ChannelAction.ENABLE, mockApnsChannelResponseData.APNSChannelResponse)); }); test('enable unsuccessful', async () => { - prompterMock.pick.mockResolvedValueOnce('Certificate'); + mockPinpointClient.on(UpdateApnsChannelCommand).rejects(mockPinpointResponseErr); - const errCert: AmplifyFault = await getError(async () => - channelAPNS.enable(mockContextReject as unknown as $TSContext, 'successMessage'), - ); - expect(mockContextReject.exeInfo.pinpointClient.updateApnsChannel).toBeCalled(); + prompterMock.pick.mockResolvedValueOnce('Certificate'); + const errCert: AmplifyFault = await getError(async () => channelAPNS.enable(mockContext, 'successMessage')); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); expect(errCert?.downstreamException?.message).toContain(mockPinpointResponseErr.message); prompterMock.pick.mockResolvedValueOnce('Key'); - const errKey: AmplifyFault = await getError(async () => - channelAPNS.enable(mockContextReject as unknown as $TSContext, 'successMessage'), - ); - expect(mockPinpointClient.updateApnsChannel).toBeCalled(); + const errKey: AmplifyFault = await getError(async () => channelAPNS.enable(mockContext, 'successMessage')); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); expect(errKey?.downstreamException?.message).toContain(mockPinpointResponseErr.message); }); test('disable', async () => { - await channelAPNS.disable(mockContext).then((data) => { - expect(mockPinpointClient.updateApnsChannel).toBeCalled(); - expect(mockPinpointClient.updateApnsSandboxChannel).toBeCalled(); - expect(data).toEqual(mockAPNSChannelResponseData(true, ChannelAction.DISABLE, mockPinpointResponseData.APNSChannelResponse)); - }); + mockPinpointClient.on(UpdateApnsChannelCommand).resolves(mockApnsChannelResponseData); + mockPinpointClient.on(UpdateApnsSandboxChannelCommand).resolves(mockApnsSandboxChannelResponseData); + + const data = await channelAPNS.disable(mockContext); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsSandboxChannelCommand); + expect(data).toEqual(mockAPNSChannelResponseData(true, ChannelAction.DISABLE, mockApnsChannelResponseData.APNSChannelResponse)); }); test('disable unsuccessful', async () => { - const errKey: AmplifyFault = await getError(async () => channelAPNS.disable(mockContextReject as unknown as $TSContext)); - expect(mockPinpointClient.updateApnsChannel).toBeCalled(); + mockPinpointClient.on(UpdateApnsChannelCommand).rejects(mockPinpointResponseErr); + + const errKey: AmplifyFault = await getError(async () => channelAPNS.disable(mockContext)); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateApnsChannelCommand); expect(errKey?.downstreamException?.message).toContain(mockPinpointResponseErr.message); }); }); diff --git a/packages/amplify-category-notifications/src/__tests__/channel-email.test.ts b/packages/amplify-category-notifications/src/__tests__/channel-email.test.ts index 7e16b10864f..54f2a8e3988 100644 --- a/packages/amplify-category-notifications/src/__tests__/channel-email.test.ts +++ b/packages/amplify-category-notifications/src/__tests__/channel-email.test.ts @@ -1,4 +1,7 @@ import { prompter } from '@aws-amplify/amplify-prompts'; +import { mockClient } from 'aws-sdk-client-mock'; +import 'aws-sdk-client-mock-jest'; +import { PinpointClient, UpdateEmailChannelCommand } from '@aws-sdk/client-pinpoint'; import * as channelEmail from '../channel-email'; import { ChannelAction, ChannelConfigDeploymentType, IChannelAPIResponse } from '../channel-types'; import { $TSAny, $TSContext, AmplifyCategories, AmplifySupportedService } from '@aws-amplify/amplify-cli-core'; @@ -19,11 +22,13 @@ jest.mock('@aws-amplify/amplify-cli-core', () => { jest.mock('@aws-amplify/amplify-prompts'); const prompterMock = prompter as jest.Mocked; -const mockPinpointResponseData = (status: boolean, action: ChannelAction): IChannelAPIResponse => ({ +const mockPinpointClient = mockClient(PinpointClient); + +const mockPinpointResponseData = (status: boolean, action: ChannelAction, output: any): IChannelAPIResponse => ({ action, channel: ChannelType.Email, deploymentType: ChannelConfigDeploymentType.INLINE, - output: undefined, + output, response: { capability: AmplifyCategories.NOTIFICATIONS, pluginName: AmplifyCategories.NOTIFICATIONS, @@ -33,19 +38,13 @@ const mockPinpointResponseData = (status: boolean, action: ChannelAction): IChan }, }); -const mockPinpointClient = { - updateEmailChannel: jest.fn().mockImplementation(() => ({ - promise: jest.fn(() => mockPinpointResponseData(true, ChannelAction.ENABLE)), - })), -}; - -const mockContext = (output: $TSAny, client: $TSAny): $TSContext => +const mockContext = (output: $TSAny): $TSContext => ({ exeInfo: { serviceMeta: { output, }, - pinpointClient: client, + pinpointClient: mockPinpointClient as unknown as PinpointClient, }, print: { info: jest.fn(), @@ -53,16 +52,35 @@ const mockContext = (output: $TSAny, client: $TSAny): $TSContext => }, } as unknown as $TSContext); -describe('channel-FCM', () => { +describe('channel-Email', () => { + const mockEmailChannelResponse = { + Enabled: true, + ApplicationId: 'test-app-id', + Platform: 'EMAIL' as const, + }; + + beforeEach(() => { + mockPinpointClient.reset(); + }); + test('enable should store role arn', async () => { + mockPinpointClient.on(UpdateEmailChannelCommand).resolves({ EmailChannelResponse: mockEmailChannelResponse }); prompterMock.input.mockResolvedValueOnce('fake@email.com'); prompterMock.input.mockResolvedValueOnce('fake:arn:identity'); prompterMock.input.mockResolvedValueOnce('fake:arn:role'); - const mockContextObj = mockContext({ Enabled: true }, mockPinpointClient); + const mockContextObj = mockContext({ Enabled: true }); const data = await channelEmail.enable(mockContextObj, 'successMessage'); - expect(mockPinpointClient.updateEmailChannel).toBeCalled(); - expect(data).toEqual(mockPinpointResponseData(true, ChannelAction.ENABLE)); + expect(mockPinpointClient).toHaveReceivedCommandWith(UpdateEmailChannelCommand, { + ApplicationId: undefined, + EmailChannelRequest: { + FromAddress: 'fake@email.com', + Identity: 'fake:arn:identity', + RoleArn: 'fake:arn:role', + Enabled: true, + }, + }); + expect(data).toEqual(mockPinpointResponseData(true, ChannelAction.ENABLE, mockEmailChannelResponse)); expect(mockContextObj.exeInfo.serviceMeta.output['Email'].RoleArn).toEqual('fake:arn:role'); }); }); diff --git a/packages/amplify-category-notifications/src/__tests__/channel-fcm.test.ts b/packages/amplify-category-notifications/src/__tests__/channel-fcm.test.ts index f5b0a457d7a..b0b04c32cf2 100644 --- a/packages/amplify-category-notifications/src/__tests__/channel-fcm.test.ts +++ b/packages/amplify-category-notifications/src/__tests__/channel-fcm.test.ts @@ -1,6 +1,9 @@ /* eslint-disable spellcheck/spell-checker */ import { $TSContext, $TSAny, AmplifyCategories, AmplifySupportedService, AmplifyFault } from '@aws-amplify/amplify-cli-core'; import { prompter } from '@aws-amplify/amplify-prompts'; +import { mockClient } from 'aws-sdk-client-mock'; +import 'aws-sdk-client-mock-jest'; +import { PinpointClient, UpdateGcmChannelCommand } from '@aws-sdk/client-pinpoint'; import * as channelFCM from '../channel-fcm'; import { ChannelAction, ChannelConfigDeploymentType, IChannelAPIResponse } from '../channel-types'; import { ChannelType } from '../notifications-backend-cfg-channel-api'; @@ -26,6 +29,8 @@ jest.mock('fs-extra', () => ({ jest.mock('@aws-amplify/amplify-prompts'); const prompterMock = prompter as jest.Mocked; +const mockPinpointClient = mockClient(PinpointClient); + class NoErrorThrownError extends Error {} const getError = async (call: () => unknown): Promise => { try { @@ -37,11 +42,11 @@ const getError = async (call: () => unknown): Promise => { }; const channelName = 'FCM'; -const mockPinpointResponseData = (status: boolean, action: ChannelAction): IChannelAPIResponse => ({ +const mockPinpointResponseData = (status: boolean, action: ChannelAction, output: any): IChannelAPIResponse => ({ action, channel: ChannelType.FCM, deploymentType: ChannelConfigDeploymentType.INLINE, - output: undefined, + output, response: { capability: AmplifyCategories.NOTIFICATIONS, pluginName: AmplifyCategories.NOTIFICATIONS, @@ -51,13 +56,13 @@ const mockPinpointResponseData = (status: boolean, action: ChannelAction): IChan }, }); -const mockContext = (output: $TSAny, client: $TSAny): $TSContext => +const mockContext = (output: $TSAny): $TSContext => ({ exeInfo: { serviceMeta: { output, }, - pinpointClient: client, + pinpointClient: mockPinpointClient as unknown as PinpointClient, }, print: { info: jest.fn(), @@ -65,68 +70,52 @@ const mockContext = (output: $TSAny, client: $TSAny): $TSContext => }, } as unknown as $TSContext); -const mockContextReject = (output: $TSAny, clientReject: $TSAny): $TSAny => ({ - exeInfo: { - serviceMeta: { - output, - }, - pinpointClient: clientReject, - }, - print: { - info: jest.fn(), - error: jest.fn(), - }, -}); - describe('channel-FCM', () => { const mockServiceOutput: Record = {}; const mockChannelEnabledOutput = { Enabled: true }; mockServiceOutput[channelName] = mockChannelEnabledOutput; const mockPinpointResponseErr = new Error('channel-FCM.test.js error'); - - const mockPinpointClient = { - updateGcmChannel: jest.fn().mockImplementation(() => ({ - promise: jest.fn(() => mockPinpointResponseData(true, ChannelAction.ENABLE)), - })), + const mockGCMChannelResponse = { + Enabled: true, + ApplicationId: 'test-app-id', + Platform: 'GCM' as const, }; - const mockPinpointClientReject = { - updateGcmChannel: jest.fn().mockImplementation(() => ({ - promise: jest.fn(() => { - throw mockPinpointResponseErr; - }), - })), - }; + beforeEach(() => { + mockPinpointClient.reset(); + }); test('configure', async () => { + mockPinpointClient.on(UpdateGcmChannelCommand).resolves({ GCMChannelResponse: mockGCMChannelResponse }); + mockChannelEnabledOutput.Enabled = true; prompterMock.yesOrNo.mockResolvedValueOnce(true); prompterMock.input.mockResolvedValueOnce(serviceJSONFilePath); - const mockContextObj = mockContext(mockChannelEnabledOutput, mockPinpointClient); - await channelFCM.configure(mockContextObj).then(() => { - expect(mockPinpointClient.updateGcmChannel).toBeCalled(); - }); + const mockContextObj = mockContext(mockChannelEnabledOutput); + await channelFCM.configure(mockContextObj); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateGcmChannelCommand); mockChannelEnabledOutput.Enabled = true; prompterMock.yesOrNo.mockResolvedValueOnce(false); - await channelFCM.configure(mockContext(mockChannelEnabledOutput, mockPinpointClient)).then(() => { - expect(mockPinpointClient.updateGcmChannel).toBeCalled(); - }); + prompterMock.input.mockResolvedValueOnce(serviceJSONFilePath); + await channelFCM.configure(mockContext(mockChannelEnabledOutput)); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateGcmChannelCommand); mockChannelEnabledOutput.Enabled = false; prompterMock.yesOrNo.mockResolvedValueOnce(true); - await channelFCM.configure(mockContext(mockChannelEnabledOutput, mockPinpointClient)).then(() => { - expect(mockPinpointClient.updateGcmChannel).toBeCalled(); - }); + prompterMock.input.mockResolvedValueOnce(serviceJSONFilePath); + await channelFCM.configure(mockContext(mockChannelEnabledOutput)); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateGcmChannelCommand); }); test('enable', async () => { + mockPinpointClient.on(UpdateGcmChannelCommand).resolves({ GCMChannelResponse: mockGCMChannelResponse }); prompterMock.input.mockResolvedValueOnce(serviceJSONFilePath); - const mockContextObj = mockContext(mockChannelEnabledOutput, mockPinpointClient); + const mockContextObj = mockContext(mockChannelEnabledOutput); const data = await channelFCM.enable(mockContextObj, 'successMessage'); - expect(mockPinpointClient.updateGcmChannel).toBeCalledWith({ + expect(mockPinpointClient).toHaveReceivedCommandWith(UpdateGcmChannelCommand, { ApplicationId: undefined, GCMChannelRequest: { ServiceJson: serviceAccountJson, @@ -134,27 +123,30 @@ describe('channel-FCM', () => { Enabled: true, }, }); - expect(data).toEqual(mockPinpointResponseData(true, ChannelAction.ENABLE)); + expect(data).toEqual(mockPinpointResponseData(true, ChannelAction.ENABLE, mockGCMChannelResponse)); }); test('enable unsuccessful', async () => { + mockPinpointClient.on(UpdateGcmChannelCommand).rejects(mockPinpointResponseErr); prompterMock.input.mockResolvedValueOnce(serviceJSONFilePath); - const context = mockContextReject(mockServiceOutput, mockPinpointClientReject); - const errCert: AmplifyFault = await getError(async () => channelFCM.enable(context as unknown as $TSContext, 'successMessage')); - expect(context.exeInfo.pinpointClient.updateGcmChannel).toBeCalled(); + const context = mockContext(mockServiceOutput); + const errCert: AmplifyFault = await getError(async () => channelFCM.enable(context, 'successMessage')); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateGcmChannelCommand); expect(errCert?.downstreamException?.message).toContain(mockPinpointResponseErr.message); }); test('disable', async () => { - const data = await channelFCM.disable(mockContextReject(mockServiceOutput, mockPinpointClient)); - expect(mockPinpointClient.updateGcmChannel).toBeCalled(); - expect(data).toEqual(mockPinpointResponseData(true, ChannelAction.DISABLE)); + mockPinpointClient.on(UpdateGcmChannelCommand).resolves({ GCMChannelResponse: mockGCMChannelResponse }); + prompterMock.input.mockResolvedValueOnce(serviceJSONFilePath); + const data = await channelFCM.disable(mockContext(mockServiceOutput)); + expect(mockPinpointClient).toHaveReceivedCommand(UpdateGcmChannelCommand); + expect(data).toEqual(mockPinpointResponseData(true, ChannelAction.DISABLE, mockGCMChannelResponse)); }); test('disable unsuccessful', async () => { - await expect(channelFCM.disable(mockContextReject(mockServiceOutput, mockPinpointClientReject))).rejects.toThrowError( - 'Failed to disable the FCM channel', - ); + mockPinpointClient.on(UpdateGcmChannelCommand).rejects(mockPinpointResponseErr); + prompterMock.input.mockResolvedValueOnce(serviceJSONFilePath); + await expect(channelFCM.disable(mockContext(mockServiceOutput))).rejects.toThrowError('Failed to disable the FCM channel'); }); }); diff --git a/packages/amplify-category-notifications/src/auth-helper.ts b/packages/amplify-category-notifications/src/auth-helper.ts index b97118a8251..ba2a396006c 100644 --- a/packages/amplify-category-notifications/src/auth-helper.ts +++ b/packages/amplify-category-notifications/src/auth-helper.ts @@ -2,7 +2,14 @@ import { $TSAny, $TSContext, AmplifyCategories, AmplifyError } from '@aws-amplif import { printer } from '@aws-amplify/amplify-prompts'; import ora from 'ora'; import os from 'os'; -import IAM from 'aws-sdk/clients/iam'; +import { + IAMClient, + CreatePolicyCommand, + AttachRolePolicyCommand, + DeletePolicyCommand, + DetachRolePolicyCommand, + ListAttachedRolePoliciesCommand, +} from '@aws-sdk/client-iam'; const providerName = 'awscloudformation'; const policyNamePrefix = 'pinpoint_amplify-'; @@ -30,15 +37,8 @@ const createPolicy = async (context: $TSContext): Promise<$TSAny> => { PolicyDocument: getPolicyDoc(context), }; const iamClient = await getIamClient(context, undefined); - return new Promise((resolve, reject) => { - iamClient.createPolicy(params, (err: $TSAny, data: $TSAny) => { - if (err) { - reject(err); - } else { - resolve(data.Policy); - } - }); - }); + const data = await iamClient.send(new CreatePolicyCommand(params)); + return data.Policy; }; const attachPolicy = async (context: $TSContext, policy: $TSAny): Promise => { @@ -55,15 +55,8 @@ const attachPolicyToRole = async (context: $TSContext, policy: $TSAny, roleName: PolicyArn: policy.Arn, }; const iamClient = await getIamClient(context, 'update'); - return new Promise((resolve, reject) => { - iamClient.attachRolePolicy(params, (err: $TSAny, data: $TSAny) => { - if (err) { - reject(err); - } else { - resolve(data); - } - }); - }); + const data = await iamClient.send(new AttachRolePolicyCommand(params)); + return data; }; const deletePolicy = async (context: $TSContext, policyArn: string): Promise<$TSAny> => { @@ -71,7 +64,7 @@ const deletePolicy = async (context: $TSContext, policyArn: string): Promise<$TS PolicyArn: policyArn, }; const iamClient = await getIamClient(context, undefined); - return iamClient.deletePolicy(params).promise(); + return iamClient.send(new DeletePolicyCommand(params)); }; const detachPolicyFromRole = async (context: $TSContext, policyArn: string, roleName: string): Promise<$TSAny> => { @@ -80,13 +73,13 @@ const detachPolicyFromRole = async (context: $TSContext, policyArn: string, role RoleName: roleName, }; const iamClient = await getIamClient(context, undefined); - return iamClient.detachRolePolicy(params).promise(); + return iamClient.send(new DetachRolePolicyCommand(params)); }; const listAttachedRolePolicies = async (context: $TSContext, roleName: string): Promise<$TSAny> => { const params = { RoleName: roleName }; const iamClient = await getIamClient(context, undefined); - return iamClient.listAttachedRolePolicies(params).promise(); + return iamClient.send(new ListAttachedRolePoliciesCommand(params)); }; /** @@ -152,7 +145,7 @@ const getIamClient = async (context: $TSContext, action: string | undefined): Pr // eslint-disable-next-line import/no-dynamic-require, global-require, @typescript-eslint/no-var-requires const provider = require(providerPlugins[providerName]); const config = await provider.getConfiguredAWSClientConfig(context, AmplifyCategories.NOTIFICATIONS, action); - return new IAM({ + return new IAMClient({ ...config, }); }; diff --git a/packages/amplify-category-notifications/src/channel-apns.ts b/packages/amplify-category-notifications/src/channel-apns.ts index f45eb9b596d..2381b353054 100644 --- a/packages/amplify-category-notifications/src/channel-apns.ts +++ b/packages/amplify-category-notifications/src/channel-apns.ts @@ -8,6 +8,7 @@ import * as configureKey from './apns-key-config'; import * as configureCertificate from './apns-cert-config'; import { ChannelAction, IChannelAPIResponse, ChannelConfigDeploymentType } from './channel-types'; import { buildPinpointChannelResponseSuccess } from './pinpoint-helper'; +import { UpdateApnsChannelCommand, UpdateApnsSandboxChannelCommand, GetApnsChannelCommand } from '@aws-sdk/client-pinpoint'; const channelName = 'APNS'; const spinner = ora(''); @@ -95,8 +96,8 @@ export const enable = async (context: $TSContext, successMessage: string | undef let data; try { - data = await context.exeInfo.pinpointClient.updateApnsChannel(params).promise(); - await context.exeInfo.pinpointClient.updateApnsSandboxChannel(sandboxParams).promise(); + data = await context.exeInfo.pinpointClient.send(new UpdateApnsChannelCommand(params)); + await context.exeInfo.pinpointClient.send(new UpdateApnsSandboxChannelCommand(sandboxParams)); context.exeInfo.serviceMeta.output[channelName] = data.APNSChannelResponse; } catch (e) { spinner.stop(); @@ -187,8 +188,8 @@ export const disable = async (context: $TSContext): Promise<$TSAny> => { let data; try { - data = await context.exeInfo.pinpointClient.updateApnsChannel(params).promise(); - await context.exeInfo.pinpointClient.updateApnsSandboxChannel(sandboxParams).promise(); + data = await context.exeInfo.pinpointClient.send(new UpdateApnsChannelCommand(params)); + await context.exeInfo.pinpointClient.send(new UpdateApnsSandboxChannelCommand(sandboxParams)); } catch (e) { spinner.fail(`Failed to update the ${channelName} channel.`); throw new AmplifyFault( @@ -219,13 +220,13 @@ export const pull = async (context: $TSContext, pinpointApp: $TSAny): Promise<$T spinner.start(`Retrieving channel information for ${channelName}.`); try { - const data = await context.exeInfo.pinpointClient.getApnsChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new GetApnsChannelCommand(params)); spinner.succeed(`Channel information retrieved for ${channelName}`); pinpointApp[channelName] = data.APNSChannelResponse; return buildPinpointChannelResponseSuccess(ChannelAction.PULL, deploymentType, channelName, data.APNSChannelResponse); } catch (err) { spinner.stop(); - if (err.code !== 'NotFoundException') { + if (err.name !== 'NotFoundException') { throw new AmplifyFault( 'NotificationsChannelAPNSFault', { diff --git a/packages/amplify-category-notifications/src/channel-email.ts b/packages/amplify-category-notifications/src/channel-email.ts index 7e944fe3ed3..913c3e833cd 100644 --- a/packages/amplify-category-notifications/src/channel-email.ts +++ b/packages/amplify-category-notifications/src/channel-email.ts @@ -5,6 +5,7 @@ import { printer, prompter } from '@aws-amplify/amplify-prompts'; import ora from 'ora'; import { ChannelAction, ChannelConfigDeploymentType } from './channel-types'; import { buildPinpointChannelResponseSuccess } from './pinpoint-helper'; +import { UpdateEmailChannelCommand, GetEmailChannelCommand } from '@aws-sdk/client-pinpoint'; const channelName = 'Email'; const spinner = ora(''); @@ -67,7 +68,7 @@ export const enable = async (context: $TSContext, successMessage: string | undef spinner.start('Enabling Email Channel.'); try { - const data = await context.exeInfo.pinpointClient.updateEmailChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new UpdateEmailChannelCommand(params)); spinner.succeed(successMessage ?? `The ${channelName} channel has been successfully enabled.`); context.exeInfo.serviceMeta.output[channelName] = { RoleArn: params.EmailChannelRequest.RoleArn, @@ -75,7 +76,7 @@ export const enable = async (context: $TSContext, successMessage: string | undef }; return buildPinpointChannelResponseSuccess(ChannelAction.ENABLE, deploymentType, channelName, data.EmailChannelResponse); } catch (err) { - if (err && err.code === 'NotFoundException') { + if (err && err.name === 'NotFoundException') { spinner.succeed(`Project with ID '${params.ApplicationId}' was already deleted from the cloud.`); return buildPinpointChannelResponseSuccess(ChannelAction.ENABLE, deploymentType, channelName, { id: params.ApplicationId, @@ -122,12 +123,12 @@ export const disable = async (context: $TSContext): Promise<$TSAny> => { }; spinner.start('Disabling Email Channel.'); try { - const data = await context.exeInfo.pinpointClient.updateEmailChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new UpdateEmailChannelCommand(params)); spinner.succeed(`The ${channelName} channel has been disabled.`); context.exeInfo.serviceMeta.output[channelName] = data.EmailChannelResponse; return buildPinpointChannelResponseSuccess(ChannelAction.DISABLE, deploymentType, channelName, data.EmailChannelResponse); } catch (err) { - if (err && err.code === 'NotFoundException') { + if (err && err.name === 'NotFoundException') { spinner.succeed(`Project with ID '${params.ApplicationId}' was already deleted from the cloud.`); return buildPinpointChannelResponseSuccess(ChannelAction.DISABLE, deploymentType, channelName, { id: params.ApplicationId, @@ -159,14 +160,14 @@ export const pull = async (context: $TSContext, pinpointApp: $TSAny): Promise<$T spinner.start(`Retrieving channel information for ${channelName}.`); try { - const data = await context.exeInfo.pinpointClient.getEmailChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new GetEmailChannelCommand(params)); spinner.succeed(`Channel information retrieved for ${channelName}`); // eslint-disable-next-line no-param-reassign pinpointApp[channelName] = data.EmailChannelResponse; return buildPinpointChannelResponseSuccess(ChannelAction.PULL, deploymentType, channelName, data.EmailChannelResponse); } catch (err) { spinner.stop(); - if (err.code !== 'NotFoundException') { + if (err.name !== 'NotFoundException') { throw new AmplifyFault( 'NotificationsChannelEmailFault', { diff --git a/packages/amplify-category-notifications/src/channel-fcm.ts b/packages/amplify-category-notifications/src/channel-fcm.ts index bffcec7bba5..c4d7d2c90af 100644 --- a/packages/amplify-category-notifications/src/channel-fcm.ts +++ b/packages/amplify-category-notifications/src/channel-fcm.ts @@ -5,6 +5,7 @@ import { ChannelAction, ChannelConfigDeploymentType, IChannelAPIResponse } from import { buildPinpointChannelResponseSuccess } from './pinpoint-helper'; import { validateFilePath } from './validate-filepath'; import fs from 'fs-extra'; +import { UpdateGcmChannelCommand, GetGcmChannelCommand } from '@aws-sdk/client-pinpoint'; const channelName = 'FCM'; const spinner = ora(''); @@ -63,7 +64,7 @@ export const enable = async (context: $TSContext, successMessage: string | undef spinner.start('Enabling FCM channel.'); try { - const data = await context.exeInfo.pinpointClient.updateGcmChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new UpdateGcmChannelCommand(params)); spinner.succeed(successMessage ?? `The ${channelName} channel has been successfully enabled.`); context.exeInfo.serviceMeta.output[channelName] = data.GCMChannelResponse; return buildPinpointChannelResponseSuccess(ChannelAction.ENABLE, deploymentType, channelName, data.GCMChannelResponse); @@ -117,7 +118,7 @@ export const disable = async (context: $TSContext): Promise<$TSAny> => { spinner.start('Disabling FCM channel.'); try { - const data = await context.exeInfo.pinpointClient.updateGcmChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new UpdateGcmChannelCommand(params)); spinner.succeed(`The ${channelName} channel has been disabled.`); context.exeInfo.serviceMeta.output[channelName] = data.GCMChannelResponse; return buildPinpointChannelResponseSuccess(ChannelAction.DISABLE, deploymentType, channelName, data.GCMChannelResponse); @@ -146,14 +147,14 @@ export const pull = async (context: $TSContext, pinpointApp: $TSAny): Promise<$T spinner.start(`Retrieving channel information for ${channelName}.`); try { - const data = await context.exeInfo.pinpointClient.getGcmChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new GetGcmChannelCommand(params)); spinner.succeed(`Successfully retrieved channel information for ${channelName}.`); // eslint-disable-next-line no-param-reassign pinpointApp[channelName] = data.GCMChannelResponse; return buildPinpointChannelResponseSuccess(ChannelAction.PULL, deploymentType, channelName, data.GCMChannelResponse); } catch (err) { spinner.stop(); - if (err.code !== 'NotFoundException') { + if (err.name !== 'NotFoundException') { throw new AmplifyFault( 'NotificationsChannelFCMFault', { diff --git a/packages/amplify-category-notifications/src/channel-sms.ts b/packages/amplify-category-notifications/src/channel-sms.ts index 5af35a30013..45d38fd3724 100644 --- a/packages/amplify-category-notifications/src/channel-sms.ts +++ b/packages/amplify-category-notifications/src/channel-sms.ts @@ -3,6 +3,7 @@ import ora from 'ora'; import { printer, prompter } from '@aws-amplify/amplify-prompts'; import { ChannelAction, ChannelConfigDeploymentType } from './channel-types'; import { buildPinpointChannelResponseSuccess } from './pinpoint-helper'; +import { UpdateSmsChannelCommand, GetSmsChannelCommand } from '@aws-sdk/client-pinpoint'; const channelName = 'SMS'; const spinner = ora(''); @@ -45,7 +46,7 @@ export const enable = async (context: $TSContext): Promise<$TSAny> => { spinner.start('Enabling SMS channel.'); try { - const data = await context.exeInfo.pinpointClient.updateSmsChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new UpdateSmsChannelCommand(params)); context.exeInfo.serviceMeta.output[channelName] = data.SMSChannelResponse; spinner.succeed(`The ${channelName} channel has been successfully enabled.`); @@ -78,7 +79,7 @@ export const disable = async (context: $TSContext): Promise<$TSAny> => { spinner.start('Disabling SMS channel.'); try { - const data = await context.exeInfo.pinpointClient.updateSmsChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new UpdateSmsChannelCommand(params)); context.exeInfo.serviceMeta.output[channelName] = data.SMSChannelResponse; spinner.succeed(`The ${channelName} channel has been disabled.`); @@ -107,14 +108,14 @@ export const pull = async (context: $TSContext, pinpointApp: $TSAny): Promise<$T }; spinner.start(`Retrieving channel information for ${channelName}.`); try { - const data = await context.exeInfo.pinpointClient.getSmsChannel(params).promise(); + const data = await context.exeInfo.pinpointClient.send(new GetSmsChannelCommand(params)); spinner.succeed(`Successfully retrieved channel information for ${channelName}.`); // eslint-disable-next-line no-param-reassign pinpointApp[channelName] = data.SMSChannelResponse; return buildPinpointChannelResponseSuccess(ChannelAction.PULL, deploymentType, channelName, data.SMSChannelResponse); } catch (err) { spinner.stop(); - if (err.code !== 'NotFoundException') { + if (err.name !== 'NotFoundException') { throw new AmplifyFault( 'NotificationsChannelSmsFault', { diff --git a/packages/amplify-category-notifications/src/multi-env-manager.ts b/packages/amplify-category-notifications/src/multi-env-manager.ts index 23b93ec4a47..0d352732f4e 100644 --- a/packages/amplify-category-notifications/src/multi-env-manager.ts +++ b/packages/amplify-category-notifications/src/multi-env-manager.ts @@ -33,7 +33,7 @@ import { viewShowInlineModeInstructionsStop, } from './display-utils'; import { getAvailableChannels } from './notifications-backend-cfg-channel-api'; - +import { DeleteAppCommand } from '@aws-sdk/client-pinpoint'; /** * Create Pinpoint resource in Analytics, Create Pinpoint Meta for Notifications category and * update configuration for enabling/disabling channels. @@ -264,21 +264,18 @@ export const deletePinpointAppForEnv = async (context: $TSContext, envName: stri const pinpointClient = await getPinpointClient(context, AmplifyCategories.NOTIFICATIONS, 'delete', envName); await authHelper.deleteRolePolicy(context); - return pinpointClient - .deleteApp(params) - .promise() - .then(() => { - printer.success(`Successfully deleted Pinpoint project: ${pinpointApp.Id}`); - }) - .catch((err: $TSAny) => { - // awscloudformation might have already removed the pinpoint project - if (err.code === 'NotFoundException') { - printer.warn(`${pinpointApp.Id}: not found`); - } else { - printer.error(`Failed to delete Pinpoint project: ${pinpointApp.Id}`); - throw err; - } - }); + try { + await pinpointClient.send(new DeleteAppCommand(params)); + printer.success(`Successfully deleted Pinpoint project: ${pinpointApp.Id}`); + } catch (err) { + // awscloudformation might have already removed the pinpoint project + if (err.name === 'NotFoundException') { + printer.warn(`${pinpointApp.Id}: not found`); + } else { + printer.error(`Failed to delete Pinpoint project: ${pinpointApp.Id}`); + throw err; + } + } } return undefined; }; diff --git a/packages/amplify-category-notifications/src/pinpoint-helper.ts b/packages/amplify-category-notifications/src/pinpoint-helper.ts index 06e133c8226..512bd2237fb 100644 --- a/packages/amplify-category-notifications/src/pinpoint-helper.ts +++ b/packages/amplify-category-notifications/src/pinpoint-helper.ts @@ -26,7 +26,8 @@ import { PinpointName } from './pinpoint-name'; import { isChannelDeploymentDeferred } from './notifications-backend-cfg-channel-api'; import { constructResourceMeta, addPartialNotificationsAppMeta } from './notifications-amplify-meta-api'; import { addPartialNotificationsBackendConfig } from './notifications-backend-cfg-api'; -import Pinpoint from 'aws-sdk/clients/pinpoint'; +import { PinpointClient, DeleteAppCommand } from '@aws-sdk/client-pinpoint'; +import { NodeHttpHandler } from '@smithy/node-http-handler'; import { formUserAgentParam, loadConfiguration, @@ -476,24 +477,28 @@ const deleteApp = async (context: $TSContext, pinpointAppId: string): Promise<$T const envName: string = stateManager.getCurrentEnvName() as string; // throws exception if env is not configured const pinpointClient = await getPinpointClient(context, AmplifyCategories.NOTIFICATIONS, 'delete', envName); spinner.start('Deleting Pinpoint app.'); - return new Promise((resolve, reject) => { - pinpointClient.deleteApp(params, (err: $TSAny, data: $TSAny) => { - if (err && err.code === 'NotFoundException') { - spinner.succeed(`Project with ID '${params.ApplicationId}' was already deleted from the cloud.`); - resolve({ - Id: params.ApplicationId, - }); - } else if (err) { - spinner.fail('Pinpoint project deletion error'); - reject(err); - } else { - spinner.succeed(`Successfully deleted Pinpoint project: ${data.ApplicationResponse.Name}`); - // eslint-disable-next-line no-param-reassign - data.ApplicationResponse.Region = pinpointClient.config.region; - resolve(data.ApplicationResponse); - } - }); - }); + try { + const data = await pinpointClient.send(new DeleteAppCommand(params)); + spinner.succeed(`Successfully deleted Pinpoint project: ${data.ApplicationResponse?.Name || params.ApplicationId}`); + if (data.ApplicationResponse) { + return { + ...data.ApplicationResponse, + Region: pinpointClient.config.region as any, + }; + } + return { Id: params.ApplicationId }; + // Keep region assignment as any due to changes in SDK v3 ApplicationResponse interface + } catch (err: any) { + if (err.name === 'NotFoundException') { + spinner.succeed(`Project with ID '${params.ApplicationId}' was already deleted from the cloud.`); + return { + Id: params.ApplicationId, + }; + } else { + spinner.fail('Pinpoint project deletion error'); + throw err; + } + } }; /** @@ -524,7 +529,12 @@ const getConfiguredCredentials = async (context: $TSContext, envName?: string): } }; -export const getPinpointClient = async (context: $TSContext, category: string, action?: string, envName?: string): Promise => { +export const getPinpointClient = async ( + context: $TSContext, + category: string, + action?: string, + envName?: string, +): Promise => { const httpProxy = process.env.HTTP_PROXY || process.env.HTTPS_PROXY; const cred = await getConfiguredCredentials(context, envName); @@ -545,7 +555,14 @@ export const getPinpointClient = async (context: $TSContext, category: string, a httpAgent = new ProxyAgent(); } - return new Pinpoint({ ...cred, ...defaultOptions, httpOptions: { agent: httpAgent } }); + return new PinpointClient({ + ...cred, + ...defaultOptions, + requestHandler: new NodeHttpHandler({ + httpAgent: httpAgent, + httpsAgent: httpAgent, + }), + }); }; export const mapServiceRegion = async (context: $TSContext, region: string): Promise => { diff --git a/packages/amplify-e2e-core/package.json b/packages/amplify-e2e-core/package.json index 2a2931263ff..dbf82ea68f0 100644 --- a/packages/amplify-e2e-core/package.json +++ b/packages/amplify-e2e-core/package.json @@ -23,6 +23,7 @@ }, "dependencies": { "@aws-amplify/amplify-cli-core": "4.4.3", + "@aws-sdk/client-pinpoint": "^3.901.0", "@aws-sdk/client-sts": "3.624.0", "@aws-sdk/credential-providers": "3.624.0", "amplify-headless-interface": "1.17.8", diff --git a/packages/amplify-e2e-core/src/categories/notifications.ts b/packages/amplify-e2e-core/src/categories/notifications.ts index 058bd3fe21a..ebb406cd1ff 100644 --- a/packages/amplify-e2e-core/src/categories/notifications.ts +++ b/packages/amplify-e2e-core/src/categories/notifications.ts @@ -69,7 +69,7 @@ export const addNotificationChannel = async ( break; } case 'In-App Messaging': { - return chain.wait(`Run "amplify push" to update the channel in the cloud`).runAsync(); + return chain.wait(`Run "amplify push" to update the channel in the cloud`).sendEof().runAsync(); } default: break; diff --git a/packages/amplify-e2e-core/src/utils/pinpoint.ts b/packages/amplify-e2e-core/src/utils/pinpoint.ts index eb40a64d1e9..f1f459749ff 100644 --- a/packages/amplify-e2e-core/src/utils/pinpoint.ts +++ b/packages/amplify-e2e-core/src/utils/pinpoint.ts @@ -1,4 +1,4 @@ -import { Pinpoint } from 'aws-sdk'; +import { PinpointClient, GetAppCommand } from '@aws-sdk/client-pinpoint'; import { EOL } from 'os'; import { getCLIPath, nspawn as spawn, singleSelect, amplifyRegions, addCircleCITags, KEY_DOWN_ARROW } from '..'; @@ -25,24 +25,25 @@ const settings = { export async function pinpointAppExist(pinpointProjectId: string, region: string): Promise { let result = false; - const pinpointClient = new Pinpoint({ - accessKeyId: settings.accessKeyId, - secretAccessKey: settings.secretAccessKey, - sessionToken: settings.sessionToken, + const pinpointClient = new PinpointClient({ + credentials: { + accessKeyId: settings.accessKeyId, + secretAccessKey: settings.secretAccessKey, + sessionToken: settings.sessionToken, + }, region, }); try { - const response = await pinpointClient - .getApp({ - ApplicationId: pinpointProjectId, - }) - .promise(); + const command = new GetAppCommand({ + ApplicationId: pinpointProjectId, + }); + const response = await pinpointClient.send(command); if (response.ApplicationResponse.Id === pinpointProjectId) { result = true; } } catch (err) { - if (err.code === 'NotFoundException') { + if (err.name === 'NotFoundException') { result = false; } else { throw err; diff --git a/scripts/split-e2e-tests-codebuild.ts b/scripts/split-e2e-tests-codebuild.ts index ffa2598f602..887640937a7 100644 --- a/scripts/split-e2e-tests-codebuild.ts +++ b/scripts/split-e2e-tests-codebuild.ts @@ -45,6 +45,9 @@ const RUN_SOLO = [ const RUN_DUO = [ 'src/__tests__/api_6c.test.ts', 'src/__tests__/auth_9.test.ts', + 'src/__tests__/function_2a.test.ts', + 'src/__tests__/geo-add-d.test.ts', + 'src/__tests__/migration/api.key.migration5.test.ts', 'src/__tests__/export-pull-a.test.ts', 'src/__tests__/export-pull-c.test.ts', 'src/__tests__/hosting.test.ts', diff --git a/yarn.lock b/yarn.lock index a412fec124c..676eb3fe75e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -346,7 +346,11 @@ __metadata: "@aws-amplify/amplify-environment-parameters": 1.9.22 "@aws-amplify/amplify-prompts": 2.8.7 "@aws-amplify/amplify-provider-awscloudformation": 8.11.14 - aws-sdk: ^2.1464.0 + "@aws-sdk/client-iam": ^3.624.0 + "@aws-sdk/client-pinpoint": ^3.624.0 + "@smithy/node-http-handler": ^4.1.0 + aws-sdk-client-mock: ^4.1.0 + aws-sdk-client-mock-jest: ^4.1.0 chalk: ^4.1.1 fs-extra: ^8.1.0 lodash: ^4.17.21 @@ -540,6 +544,7 @@ __metadata: resolution: "@aws-amplify/amplify-e2e-core@workspace:packages/amplify-e2e-core" dependencies: "@aws-amplify/amplify-cli-core": 4.4.3 + "@aws-sdk/client-pinpoint": ^3.901.0 "@aws-sdk/client-sts": 3.624.0 "@aws-sdk/credential-providers": 3.624.0 amplify-headless-interface: 1.17.8 @@ -3528,6 +3533,53 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-pinpoint@npm:^3.624.0, @aws-sdk/client-pinpoint@npm:^3.901.0": + version: 3.916.0 + resolution: "@aws-sdk/client-pinpoint@npm:3.916.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": 3.916.0 + "@aws-sdk/credential-provider-node": 3.916.0 + "@aws-sdk/middleware-host-header": 3.914.0 + "@aws-sdk/middleware-logger": 3.914.0 + "@aws-sdk/middleware-recursion-detection": 3.914.0 + "@aws-sdk/middleware-user-agent": 3.916.0 + "@aws-sdk/region-config-resolver": 3.914.0 + "@aws-sdk/types": 3.914.0 + "@aws-sdk/util-endpoints": 3.916.0 + "@aws-sdk/util-user-agent-browser": 3.914.0 + "@aws-sdk/util-user-agent-node": 3.916.0 + "@smithy/config-resolver": ^4.4.0 + "@smithy/core": ^3.17.1 + "@smithy/fetch-http-handler": ^5.3.4 + "@smithy/hash-node": ^4.2.3 + "@smithy/invalid-dependency": ^4.2.3 + "@smithy/middleware-content-length": ^4.2.3 + "@smithy/middleware-endpoint": ^4.3.5 + "@smithy/middleware-retry": ^4.4.5 + "@smithy/middleware-serde": ^4.2.3 + "@smithy/middleware-stack": ^4.2.3 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/node-http-handler": ^4.4.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/smithy-client": ^4.9.1 + "@smithy/types": ^4.8.0 + "@smithy/url-parser": ^4.2.3 + "@smithy/util-base64": ^4.3.0 + "@smithy/util-body-length-browser": ^4.2.0 + "@smithy/util-body-length-node": ^4.2.1 + "@smithy/util-defaults-mode-browser": ^4.3.4 + "@smithy/util-defaults-mode-node": ^4.2.6 + "@smithy/util-endpoints": ^3.2.3 + "@smithy/util-middleware": ^4.2.3 + "@smithy/util-retry": ^4.2.3 + "@smithy/util-utf8": ^4.2.0 + tslib: ^2.6.2 + checksum: 3b94865e8526f2bb34d75d4037ca9d733649f3465207416658a4786b2b30bb3cf53bb4c913d85614caf07b4e47302ebd2b6febf1cf85463083fc4458a94c3097 + languageName: node + linkType: hard + "@aws-sdk/client-polly@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/client-polly@npm:3.6.1" @@ -4642,6 +4694,52 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sso@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/client-sso@npm:3.916.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": 3.916.0 + "@aws-sdk/middleware-host-header": 3.914.0 + "@aws-sdk/middleware-logger": 3.914.0 + "@aws-sdk/middleware-recursion-detection": 3.914.0 + "@aws-sdk/middleware-user-agent": 3.916.0 + "@aws-sdk/region-config-resolver": 3.914.0 + "@aws-sdk/types": 3.914.0 + "@aws-sdk/util-endpoints": 3.916.0 + "@aws-sdk/util-user-agent-browser": 3.914.0 + "@aws-sdk/util-user-agent-node": 3.916.0 + "@smithy/config-resolver": ^4.4.0 + "@smithy/core": ^3.17.1 + "@smithy/fetch-http-handler": ^5.3.4 + "@smithy/hash-node": ^4.2.3 + "@smithy/invalid-dependency": ^4.2.3 + "@smithy/middleware-content-length": ^4.2.3 + "@smithy/middleware-endpoint": ^4.3.5 + "@smithy/middleware-retry": ^4.4.5 + "@smithy/middleware-serde": ^4.2.3 + "@smithy/middleware-stack": ^4.2.3 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/node-http-handler": ^4.4.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/smithy-client": ^4.9.1 + "@smithy/types": ^4.8.0 + "@smithy/url-parser": ^4.2.3 + "@smithy/util-base64": ^4.3.0 + "@smithy/util-body-length-browser": ^4.2.0 + "@smithy/util-body-length-node": ^4.2.1 + "@smithy/util-defaults-mode-browser": ^4.3.4 + "@smithy/util-defaults-mode-node": ^4.2.6 + "@smithy/util-endpoints": ^3.2.3 + "@smithy/util-middleware": ^4.2.3 + "@smithy/util-retry": ^4.2.3 + "@smithy/util-utf8": ^4.2.0 + tslib: ^2.6.2 + checksum: ce90c351bfeb207198136c378bd13fbceaec46b6306c62ea8b65d218391e5219afcfe6686313c7de13076f4e630dafb2c689639a0d76bd0773f09e09723fd2cc + languageName: node + linkType: hard + "@aws-sdk/client-sts@npm:3.186.3": version: 3.186.3 resolution: "@aws-sdk/client-sts@npm:3.186.3" @@ -5037,6 +5135,27 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/core@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/core@npm:3.916.0" + dependencies: + "@aws-sdk/types": 3.914.0 + "@aws-sdk/xml-builder": 3.914.0 + "@smithy/core": ^3.17.1 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/property-provider": ^4.2.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/signature-v4": ^5.3.3 + "@smithy/smithy-client": ^4.9.1 + "@smithy/types": ^4.8.0 + "@smithy/util-base64": ^4.3.0 + "@smithy/util-middleware": ^4.2.3 + "@smithy/util-utf8": ^4.2.0 + tslib: ^2.6.2 + checksum: ee4d6b11e7b070376e2af698fabaeb8bce77dc3f752a4f2843e3fcce9fb9a3e2a41a9b24b6c19f26312cda83ef1f825756b7a07532d061e192307c1a2abcf93b + languageName: node + linkType: hard + "@aws-sdk/credential-provider-cognito-identity@npm:3.624.0": version: 3.624.0 resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.624.0" @@ -5175,6 +5294,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-env@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.916.0" + dependencies: + "@aws-sdk/core": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/property-provider": ^4.2.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: 6a05a282c8599231b5e9af3cdd20abdc2ae0aff2fb2a126ca1fc171fed6cbe457e866d7791dca94d709b0b227a1fb59a63e35a806e6f3257a5d8ff32076b0e75 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-http@npm:3.622.0": version: 3.622.0 resolution: "@aws-sdk/credential-provider-http@npm:3.622.0" @@ -5300,6 +5432,24 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-http@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.916.0" + dependencies: + "@aws-sdk/core": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/fetch-http-handler": ^5.3.4 + "@smithy/node-http-handler": ^4.4.3 + "@smithy/property-provider": ^4.2.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/smithy-client": ^4.9.1 + "@smithy/types": ^4.8.0 + "@smithy/util-stream": ^4.5.4 + tslib: ^2.6.2 + checksum: 482012b32e01118196af4f8018bfcc154f085b9a1ea1d419b2287a364d34674d58ead4d95d931c66160d698d1a1e414b3b6ddc0f8e6995a597f3f207699538ed + languageName: node + linkType: hard + "@aws-sdk/credential-provider-imds@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-imds@npm:3.186.0" @@ -5520,6 +5670,27 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-ini@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.916.0" + dependencies: + "@aws-sdk/core": 3.916.0 + "@aws-sdk/credential-provider-env": 3.916.0 + "@aws-sdk/credential-provider-http": 3.916.0 + "@aws-sdk/credential-provider-process": 3.916.0 + "@aws-sdk/credential-provider-sso": 3.916.0 + "@aws-sdk/credential-provider-web-identity": 3.916.0 + "@aws-sdk/nested-clients": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/credential-provider-imds": ^4.2.3 + "@smithy/property-provider": ^4.2.3 + "@smithy/shared-ini-file-loader": ^4.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: 3cc7f56ba723e809009dd9771f0eb5362e07bbb0085d8789b356e0aeea008e7d31280a921847502007847510dc1857133bf5485eb253aea1a6bca89871a6ff4e + languageName: node + linkType: hard + "@aws-sdk/credential-provider-node@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-node@npm:3.186.0" @@ -5694,7 +5865,7 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.901.0, @aws-sdk/credential-provider-node@npm:^3.624.0": +"@aws-sdk/credential-provider-node@npm:3.901.0": version: 3.901.0 resolution: "@aws-sdk/credential-provider-node@npm:3.901.0" dependencies: @@ -5714,6 +5885,26 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-node@npm:3.916.0, @aws-sdk/credential-provider-node@npm:^3.624.0": + version: 3.916.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.916.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.916.0 + "@aws-sdk/credential-provider-http": 3.916.0 + "@aws-sdk/credential-provider-ini": 3.916.0 + "@aws-sdk/credential-provider-process": 3.916.0 + "@aws-sdk/credential-provider-sso": 3.916.0 + "@aws-sdk/credential-provider-web-identity": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/credential-provider-imds": ^4.2.3 + "@smithy/property-provider": ^4.2.3 + "@smithy/shared-ini-file-loader": ^4.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: 6c54373d510dd2a794fb48710c7373c471c93ba26b22268a02a3032951dced923f242bfb959d67e6fda07e0130cd6c94cf59699085bd846c86b44f17e16f440a + languageName: node + linkType: hard + "@aws-sdk/credential-provider-process@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-process@npm:3.186.0" @@ -5836,6 +6027,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-process@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.916.0" + dependencies: + "@aws-sdk/core": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/property-provider": ^4.2.3 + "@smithy/shared-ini-file-loader": ^4.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: a0cb35f6c79435613f7d4025fd7d8a898566d3c3c42cef76e9b01768d151193c0d235344134fa4514d65d76aa954633c9c424c95095e11b066bd8d01aea63126 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-sso@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-sso@npm:3.186.0" @@ -5976,6 +6181,22 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-sso@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.916.0" + dependencies: + "@aws-sdk/client-sso": 3.916.0 + "@aws-sdk/core": 3.916.0 + "@aws-sdk/token-providers": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/property-provider": ^4.2.3 + "@smithy/shared-ini-file-loader": ^4.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: f9cd04514d0bc6495fb6cf8172e0cd202e19262b036ff06bbd4244a6c3573fa7d0b1f5d23aa5267a4b9606eeba8145831eccc7fd75d4a929e3fc893bf26776f0 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-web-identity@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-web-identity@npm:3.186.0" @@ -6101,6 +6322,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-web-identity@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.916.0" + dependencies: + "@aws-sdk/core": 3.916.0 + "@aws-sdk/nested-clients": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/property-provider": ^4.2.3 + "@smithy/shared-ini-file-loader": ^4.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: 42dc589134730af1941d1657aa4d0129e7efe01324c1355f1b9dbe35a2472b0d6af61f3d638c73659720f9c92fb88e25e483df07f8b16f6cb64cd5b93778726a + languageName: node + linkType: hard + "@aws-sdk/credential-providers@npm:3.624.0": version: 3.624.0 resolution: "@aws-sdk/credential-providers@npm:3.624.0" @@ -6692,6 +6928,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-host-header@npm:3.914.0": + version: 3.914.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.914.0" + dependencies: + "@aws-sdk/types": 3.914.0 + "@smithy/protocol-http": ^5.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: f5141335b89132a7e54b799fb5e849a2162a79c9f3ff287e497938a6ddc9f81e2ebca7888759f83633cc4347c2510f937442695e24b9c5de07964e3545345cdd + languageName: node + linkType: hard + "@aws-sdk/middleware-location-constraint@npm:3.609.0": version: 3.609.0 resolution: "@aws-sdk/middleware-location-constraint@npm:3.609.0" @@ -6800,6 +7048,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-logger@npm:3.914.0": + version: 3.914.0 + resolution: "@aws-sdk/middleware-logger@npm:3.914.0" + dependencies: + "@aws-sdk/types": 3.914.0 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: d9011740d92d20b451a82e442069f81e57b5e86608573d753e4dedf80d9bfb5660fe2651aa542f26be7a16d97ec2aad708a80c1ae197ef0700ddfc6bc90e4554 + languageName: node + linkType: hard + "@aws-sdk/middleware-recursion-detection@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/middleware-recursion-detection@npm:3.186.0" @@ -6885,6 +7144,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-recursion-detection@npm:3.914.0": + version: 3.914.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.914.0" + dependencies: + "@aws-sdk/types": 3.914.0 + "@aws/lambda-invoke-store": ^0.0.1 + "@smithy/protocol-http": ^5.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: 45f5dfb4352e2554642eed38cee2bb7265ecbff2144671656f87d8f52948f11a9c401e08e6e1e054cd84e9ade32e86648f8de5266a342cc2d1efd6709c7f1574 + languageName: node + linkType: hard + "@aws-sdk/middleware-retry@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/middleware-retry@npm:3.186.0" @@ -7289,6 +7561,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-user-agent@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.916.0" + dependencies: + "@aws-sdk/core": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@aws-sdk/util-endpoints": 3.916.0 + "@smithy/core": ^3.17.1 + "@smithy/protocol-http": ^5.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: 4ad432b4fcc7c473c4b4dc2cf1fc7f2db8afbcb834471b746515f5f0c4b049276acd83a6dee59172166aa2df2288a821e0ee39d711dcd15fddc56ef62820d855 + languageName: node + linkType: hard + "@aws-sdk/nested-clients@npm:3.830.0": version: 3.830.0 resolution: "@aws-sdk/nested-clients@npm:3.830.0" @@ -7611,6 +7898,52 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/nested-clients@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/nested-clients@npm:3.916.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": 3.916.0 + "@aws-sdk/middleware-host-header": 3.914.0 + "@aws-sdk/middleware-logger": 3.914.0 + "@aws-sdk/middleware-recursion-detection": 3.914.0 + "@aws-sdk/middleware-user-agent": 3.916.0 + "@aws-sdk/region-config-resolver": 3.914.0 + "@aws-sdk/types": 3.914.0 + "@aws-sdk/util-endpoints": 3.916.0 + "@aws-sdk/util-user-agent-browser": 3.914.0 + "@aws-sdk/util-user-agent-node": 3.916.0 + "@smithy/config-resolver": ^4.4.0 + "@smithy/core": ^3.17.1 + "@smithy/fetch-http-handler": ^5.3.4 + "@smithy/hash-node": ^4.2.3 + "@smithy/invalid-dependency": ^4.2.3 + "@smithy/middleware-content-length": ^4.2.3 + "@smithy/middleware-endpoint": ^4.3.5 + "@smithy/middleware-retry": ^4.4.5 + "@smithy/middleware-serde": ^4.2.3 + "@smithy/middleware-stack": ^4.2.3 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/node-http-handler": ^4.4.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/smithy-client": ^4.9.1 + "@smithy/types": ^4.8.0 + "@smithy/url-parser": ^4.2.3 + "@smithy/util-base64": ^4.3.0 + "@smithy/util-body-length-browser": ^4.2.0 + "@smithy/util-body-length-node": ^4.2.1 + "@smithy/util-defaults-mode-browser": ^4.3.4 + "@smithy/util-defaults-mode-node": ^4.2.6 + "@smithy/util-endpoints": ^3.2.3 + "@smithy/util-middleware": ^4.2.3 + "@smithy/util-retry": ^4.2.3 + "@smithy/util-utf8": ^4.2.0 + tslib: ^2.6.2 + checksum: fd77d4cb08f3176ee87f18f5771039f883d76013b3cfd0440c2592b8e953ef775d2058c2c485c1b8df27a6e6ae56de6560fbd824ac5a5fff98b6f20376857158 + languageName: node + linkType: hard + "@aws-sdk/node-config-provider@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/node-config-provider@npm:3.186.0" @@ -7827,6 +8160,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/region-config-resolver@npm:3.914.0": + version: 3.914.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.914.0" + dependencies: + "@aws-sdk/types": 3.914.0 + "@smithy/config-resolver": ^4.4.0 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: a473db628478a4403c34121231ed03c4b9c148659d797f8daa1ed7608b86bb23b1f85c63a99abb0efe9f540659d424d9e720b2e689cbcd7d61d888de610d4513 + languageName: node + linkType: hard + "@aws-sdk/s3-request-presigner@npm:^3.624.0": version: 3.844.0 resolution: "@aws-sdk/s3-request-presigner@npm:3.844.0" @@ -8087,6 +8432,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/token-providers@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/token-providers@npm:3.916.0" + dependencies: + "@aws-sdk/core": 3.916.0 + "@aws-sdk/nested-clients": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/property-provider": ^4.2.3 + "@smithy/shared-ini-file-loader": ^4.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: 97d7ed9895f59eeadf597ec335d951a552a017e34d1e4283f42b8dc965ce115449d03219ac5364401fe2f82ad2bc32a96139d91be71faf17921886af9653b6a9 + languageName: node + linkType: hard + "@aws-sdk/types@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/types@npm:3.186.0" @@ -8160,7 +8520,7 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/types@npm:3.901.0, @aws-sdk/types@npm:^3.1.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.25.0, @aws-sdk/types@npm:^3.624.0": +"@aws-sdk/types@npm:3.901.0": version: 3.901.0 resolution: "@aws-sdk/types@npm:3.901.0" dependencies: @@ -8170,6 +8530,16 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/types@npm:3.914.0, @aws-sdk/types@npm:^3.1.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.25.0, @aws-sdk/types@npm:^3.624.0": + version: 3.914.0 + resolution: "@aws-sdk/types@npm:3.914.0" + dependencies: + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + checksum: 71de24f076587ffc53acdc62ef16de711bd0c00f9a40491cd12a2c762e794c751e4ab79e0fb798c06a6a0e731cf0716f7833add085b1c85b7bfa2fba75e83937 + languageName: node + linkType: hard + "@aws-sdk/url-parser-native@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/url-parser-native@npm:3.6.1" @@ -8485,6 +8855,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-endpoints@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/util-endpoints@npm:3.916.0" + dependencies: + "@aws-sdk/types": 3.914.0 + "@smithy/types": ^4.8.0 + "@smithy/url-parser": ^4.2.3 + "@smithy/util-endpoints": ^3.2.3 + tslib: ^2.6.2 + checksum: ea67106b19f10a8cd01bda8dc76978c844723056b2fa8fad637c4a456b2d4a1e131e7f872539f580e25fc41bdce219427b209eceb0fceb3bd610cab82b8025fb + languageName: node + linkType: hard + "@aws-sdk/util-format-url@npm:3.609.0": version: 3.609.0 resolution: "@aws-sdk/util-format-url@npm:3.609.0" @@ -8666,6 +9049,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-browser@npm:3.914.0": + version: 3.914.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.914.0" + dependencies: + "@aws-sdk/types": 3.914.0 + "@smithy/types": ^4.8.0 + bowser: ^2.11.0 + tslib: ^2.6.2 + checksum: d9adf87efbd9ecb242cf92b489f1f490008eb0149c182a72452f3352dd4b6bf0a4bf974f18369d780ed5f2341bb0c526e81611da36e5f5bf0613aca1eea3bdab + languageName: node + linkType: hard + "@aws-sdk/util-user-agent-node@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/util-user-agent-node@npm:3.186.0" @@ -8836,6 +9231,24 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-node@npm:3.916.0": + version: 3.916.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.916.0" + dependencies: + "@aws-sdk/middleware-user-agent": 3.916.0 + "@aws-sdk/types": 3.914.0 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/types": ^4.8.0 + tslib: ^2.6.2 + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: 60910c61254d342fd08c22bc781494bb34c2a3e153e6fe787f7e18177677cf8023665bf09ef77669864a69c07cc3fe1fd412bb82e0cc8e665dbbf2b317540860 + languageName: node + linkType: hard + "@aws-sdk/util-utf8-browser@npm:3.186.0, @aws-sdk/util-utf8-browser@npm:^3.0.0": version: 3.186.0 resolution: "@aws-sdk/util-utf8-browser@npm:3.186.0" @@ -8946,6 +9359,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/xml-builder@npm:3.914.0": + version: 3.914.0 + resolution: "@aws-sdk/xml-builder@npm:3.914.0" + dependencies: + "@smithy/types": ^4.8.0 + fast-xml-parser: 5.2.5 + tslib: ^2.6.2 + checksum: d229350c17594a04165ed812e79f01f7ddc1ae3c562a95684e70e897c5feb5ae9b58a54443808ed5f883544d7a8ab720d8a6395dfdb84a6a43587171772ee184 + languageName: node + linkType: hard + "@aws/lambda-invoke-store@npm:^0.0.1": version: 0.0.1 resolution: "@aws/lambda-invoke-store@npm:0.0.1" @@ -13023,13 +13447,13 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^4.0.4, @smithy/abort-controller@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/abort-controller@npm:4.2.0" +"@smithy/abort-controller@npm:^4.0.4, @smithy/abort-controller@npm:^4.2.0, @smithy/abort-controller@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/abort-controller@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: de11e4491f3042f9d3738c0bfccdcbcfa01468a90ff745ec59a26c405772f590e675f3fa7e4cfcde9165891348bb31ee434290717e8aaa90e1c131668cdcf008 + checksum: ddb1333f85df6e61e2b4ab9d7ae8c0135fa44e7d81703d18accdefb1c280c00c8f339e157e48ca8a19fbabe3d73e728df8dfca732418268961d6ba93c7b0fb7e languageName: node linkType: hard @@ -13084,16 +13508,17 @@ __metadata: languageName: node linkType: hard -"@smithy/config-resolver@npm:^4.1.4, @smithy/config-resolver@npm:^4.1.5, @smithy/config-resolver@npm:^4.2.2, @smithy/config-resolver@npm:^4.3.0": - version: 4.3.0 - resolution: "@smithy/config-resolver@npm:4.3.0" +"@smithy/config-resolver@npm:^4.1.4, @smithy/config-resolver@npm:^4.1.5, @smithy/config-resolver@npm:^4.2.2, @smithy/config-resolver@npm:^4.3.0, @smithy/config-resolver@npm:^4.4.0": + version: 4.4.0 + resolution: "@smithy/config-resolver@npm:4.4.0" dependencies: - "@smithy/node-config-provider": ^4.3.0 - "@smithy/types": ^4.6.0 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/types": ^4.8.0 "@smithy/util-config-provider": ^4.2.0 - "@smithy/util-middleware": ^4.2.0 + "@smithy/util-endpoints": ^3.2.3 + "@smithy/util-middleware": ^4.2.3 tslib: ^2.6.2 - checksum: 6847d620e946b84bcc35070e21db1d54cdd5a65701792552c706926b3db4fae77a9c1c54326bf631e9741e0586fabef371ead01c6a268c6cd44eaf7601915cde + checksum: f33e1c4569980e614dea8b709dbd8e120b725caf4a7cc557d9d31a91df1755ccc1a2179cf26681eebf713e755ad38d6b58f7aca00dfe2c3390e9481221530e43 languageName: node linkType: hard @@ -13113,21 +13538,21 @@ __metadata: languageName: node linkType: hard -"@smithy/core@npm:^3.11.0, @smithy/core@npm:^3.14.0, @smithy/core@npm:^3.5.3, @smithy/core@npm:^3.7.0, @smithy/core@npm:^3.8.0": - version: 3.14.0 - resolution: "@smithy/core@npm:3.14.0" +"@smithy/core@npm:^3.11.0, @smithy/core@npm:^3.14.0, @smithy/core@npm:^3.17.1, @smithy/core@npm:^3.5.3, @smithy/core@npm:^3.7.0, @smithy/core@npm:^3.8.0": + version: 3.17.1 + resolution: "@smithy/core@npm:3.17.1" dependencies: - "@smithy/middleware-serde": ^4.2.0 - "@smithy/protocol-http": ^5.3.0 - "@smithy/types": ^4.6.0 - "@smithy/util-base64": ^4.2.0 + "@smithy/middleware-serde": ^4.2.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/types": ^4.8.0 + "@smithy/util-base64": ^4.3.0 "@smithy/util-body-length-browser": ^4.2.0 - "@smithy/util-middleware": ^4.2.0 - "@smithy/util-stream": ^4.4.0 + "@smithy/util-middleware": ^4.2.3 + "@smithy/util-stream": ^4.5.4 "@smithy/util-utf8": ^4.2.0 "@smithy/uuid": ^1.1.0 tslib: ^2.6.2 - checksum: 44cbc3bed4e33d8bafb367cb9205e4bb529de75f068a8f3805895874925bdb056b360e3dc11bccece5c3d2b0fcc902cfdaad8ea8ed0100be727252f7ec273228 + checksum: 2b3e9f9c06b73e4e12361bec6bcf59ae6a33f60252a85114be91656765aaa9ff77fa7a9e0129875aba81b21c6630455720b8b174e1145be72aec86245c2dbf4b languageName: node linkType: hard @@ -13144,16 +13569,16 @@ __metadata: languageName: node linkType: hard -"@smithy/credential-provider-imds@npm:^4.0.6, @smithy/credential-provider-imds@npm:^4.0.7, @smithy/credential-provider-imds@npm:^4.1.2, @smithy/credential-provider-imds@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/credential-provider-imds@npm:4.2.0" +"@smithy/credential-provider-imds@npm:^4.0.6, @smithy/credential-provider-imds@npm:^4.0.7, @smithy/credential-provider-imds@npm:^4.1.2, @smithy/credential-provider-imds@npm:^4.2.0, @smithy/credential-provider-imds@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/credential-provider-imds@npm:4.2.3" dependencies: - "@smithy/node-config-provider": ^4.3.0 - "@smithy/property-provider": ^4.2.0 - "@smithy/types": ^4.6.0 - "@smithy/url-parser": ^4.2.0 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/property-provider": ^4.2.3 + "@smithy/types": ^4.8.0 + "@smithy/url-parser": ^4.2.3 tslib: ^2.6.2 - checksum: d8d4127e0f0d991c72105213a75bf9e1249a59ee88c733ca1a5ec50ce99976a69ff00a4d6c0040b4330ffd94b6a2a40f0e0ac57dfb384512120280bce2267707 + checksum: 9ea3eb9f80779180f50e2b5f68fac66f4f144b14d10419e411fcf3d44576be148af5795dde6951816784352d58e6950a0c8b45830f8f1fae9d98ffdf00ba8479 languageName: node linkType: hard @@ -13293,16 +13718,16 @@ __metadata: languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^5.0.4, @smithy/fetch-http-handler@npm:^5.1.0, @smithy/fetch-http-handler@npm:^5.1.1, @smithy/fetch-http-handler@npm:^5.2.1, @smithy/fetch-http-handler@npm:^5.3.0": - version: 5.3.0 - resolution: "@smithy/fetch-http-handler@npm:5.3.0" +"@smithy/fetch-http-handler@npm:^5.0.4, @smithy/fetch-http-handler@npm:^5.1.0, @smithy/fetch-http-handler@npm:^5.1.1, @smithy/fetch-http-handler@npm:^5.2.1, @smithy/fetch-http-handler@npm:^5.3.0, @smithy/fetch-http-handler@npm:^5.3.4": + version: 5.3.4 + resolution: "@smithy/fetch-http-handler@npm:5.3.4" dependencies: - "@smithy/protocol-http": ^5.3.0 - "@smithy/querystring-builder": ^4.2.0 - "@smithy/types": ^4.6.0 - "@smithy/util-base64": ^4.2.0 + "@smithy/protocol-http": ^5.3.3 + "@smithy/querystring-builder": ^4.2.3 + "@smithy/types": ^4.8.0 + "@smithy/util-base64": ^4.3.0 tslib: ^2.6.2 - checksum: cd4a02981ab35510872ae6a2bf7dfbe485109ede3dd0b0bf56042fb6f4c896fcf555e580a525ef56cd7d1b68a1b53b66c8df4a593c9e5a21d0996d030fb10f82 + checksum: 93ab064fbdc66021975abf070544739d428be79a5c349ada84ca2eac9c8dd23dc1aacc5a13c50d1a0043a91062291659471645a029700a2e1e0ce59b0baba5a0 languageName: node linkType: hard @@ -13342,15 +13767,15 @@ __metadata: languageName: node linkType: hard -"@smithy/hash-node@npm:^4.0.4, @smithy/hash-node@npm:^4.0.5, @smithy/hash-node@npm:^4.1.1, @smithy/hash-node@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/hash-node@npm:4.2.0" +"@smithy/hash-node@npm:^4.0.4, @smithy/hash-node@npm:^4.0.5, @smithy/hash-node@npm:^4.1.1, @smithy/hash-node@npm:^4.2.0, @smithy/hash-node@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/hash-node@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 "@smithy/util-buffer-from": ^4.2.0 "@smithy/util-utf8": ^4.2.0 tslib: ^2.6.2 - checksum: 98156506ae037d4e224b7be0c63606a04b8884b2a0309fc48c7a0bdc87025e2347a71577c3cdc73f76b776dbf09526fde3fa9d459c5f7caf6ff5f2d9258cec2e + checksum: 8e2945ad4e7dc4e6ef24afea4532a29e79ff787c670085079e9441951ec4a0ebe7fe65127e47dba1d6132d277b8ea619cc4920931f990fb45f209b6a393b8de7 languageName: node linkType: hard @@ -13386,13 +13811,13 @@ __metadata: languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^4.0.4, @smithy/invalid-dependency@npm:^4.0.5, @smithy/invalid-dependency@npm:^4.1.1, @smithy/invalid-dependency@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/invalid-dependency@npm:4.2.0" +"@smithy/invalid-dependency@npm:^4.0.4, @smithy/invalid-dependency@npm:^4.0.5, @smithy/invalid-dependency@npm:^4.1.1, @smithy/invalid-dependency@npm:^4.2.0, @smithy/invalid-dependency@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/invalid-dependency@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: f20003683c9358a252d05711fe7e0ad1d400fcf6658acc50894e5f3d9d8fc9a8de079f958e418c4031a872dfde0de2ac59f829e630f90241d4d4bfaa830c32f6 + checksum: 426cde94fc851007ede20cb7b201c03eb91a0d11ef5e0fb0308eb4d2fedbf2d82bc48367c765aa0491cf88fe731eb0c995ca6bcffe7381fd98b748795e2292a4 languageName: node linkType: hard @@ -13456,14 +13881,14 @@ __metadata: languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^4.0.4, @smithy/middleware-content-length@npm:^4.0.5, @smithy/middleware-content-length@npm:^4.1.1, @smithy/middleware-content-length@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/middleware-content-length@npm:4.2.0" +"@smithy/middleware-content-length@npm:^4.0.4, @smithy/middleware-content-length@npm:^4.0.5, @smithy/middleware-content-length@npm:^4.1.1, @smithy/middleware-content-length@npm:^4.2.0, @smithy/middleware-content-length@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/middleware-content-length@npm:4.2.3" dependencies: - "@smithy/protocol-http": ^5.3.0 - "@smithy/types": ^4.6.0 + "@smithy/protocol-http": ^5.3.3 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: c7e39e22c97dbcad8abe7ec9fb54381fce3acd601a2d8f3ea6f64e4f37663033e8ac5034e83814015d70277f587f7e0af8a60b3a01e46b06e305023e2d740bb8 + checksum: 67aabc8c2257299e2985eba32cf0f728c23aeb1ba6f17bab1a99bfde1970a841d709592a855d6fa1ffb10c4c004a76e70d2804622529b010e9ee2e7b243630e6 languageName: node linkType: hard @@ -13483,19 +13908,19 @@ __metadata: languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^4.1.11, @smithy/middleware-endpoint@npm:^4.1.14, @smithy/middleware-endpoint@npm:^4.1.15, @smithy/middleware-endpoint@npm:^4.1.18, @smithy/middleware-endpoint@npm:^4.2.2, @smithy/middleware-endpoint@npm:^4.3.0": - version: 4.3.0 - resolution: "@smithy/middleware-endpoint@npm:4.3.0" +"@smithy/middleware-endpoint@npm:^4.1.11, @smithy/middleware-endpoint@npm:^4.1.14, @smithy/middleware-endpoint@npm:^4.1.15, @smithy/middleware-endpoint@npm:^4.1.18, @smithy/middleware-endpoint@npm:^4.2.2, @smithy/middleware-endpoint@npm:^4.3.0, @smithy/middleware-endpoint@npm:^4.3.5": + version: 4.3.5 + resolution: "@smithy/middleware-endpoint@npm:4.3.5" dependencies: - "@smithy/core": ^3.14.0 - "@smithy/middleware-serde": ^4.2.0 - "@smithy/node-config-provider": ^4.3.0 - "@smithy/shared-ini-file-loader": ^4.3.0 - "@smithy/types": ^4.6.0 - "@smithy/url-parser": ^4.2.0 - "@smithy/util-middleware": ^4.2.0 + "@smithy/core": ^3.17.1 + "@smithy/middleware-serde": ^4.2.3 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/shared-ini-file-loader": ^4.3.3 + "@smithy/types": ^4.8.0 + "@smithy/url-parser": ^4.2.3 + "@smithy/util-middleware": ^4.2.3 tslib: ^2.6.2 - checksum: 81877411bb98888704066dc847428c070f53cfb591e2e689e1a8b894a0a3cd74562553955ae5527ca32e8cea7309cbe995ad20976247909704c93898047ebdad + checksum: 397cad4fff38b3d388315bac04499eca34f77cd558115d9b621f145d933a851bcac99a6c4c546f43f119f46d1f6abffb25bafdcf124d1851347cacce7017a626 languageName: node linkType: hard @@ -13516,20 +13941,20 @@ __metadata: languageName: node linkType: hard -"@smithy/middleware-retry@npm:^4.1.12, @smithy/middleware-retry@npm:^4.1.15, @smithy/middleware-retry@npm:^4.1.16, @smithy/middleware-retry@npm:^4.1.19, @smithy/middleware-retry@npm:^4.2.3, @smithy/middleware-retry@npm:^4.4.0": - version: 4.4.0 - resolution: "@smithy/middleware-retry@npm:4.4.0" +"@smithy/middleware-retry@npm:^4.1.12, @smithy/middleware-retry@npm:^4.1.15, @smithy/middleware-retry@npm:^4.1.16, @smithy/middleware-retry@npm:^4.1.19, @smithy/middleware-retry@npm:^4.2.3, @smithy/middleware-retry@npm:^4.4.0, @smithy/middleware-retry@npm:^4.4.5": + version: 4.4.5 + resolution: "@smithy/middleware-retry@npm:4.4.5" dependencies: - "@smithy/node-config-provider": ^4.3.0 - "@smithy/protocol-http": ^5.3.0 - "@smithy/service-error-classification": ^4.2.0 - "@smithy/smithy-client": ^4.7.0 - "@smithy/types": ^4.6.0 - "@smithy/util-middleware": ^4.2.0 - "@smithy/util-retry": ^4.2.0 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/service-error-classification": ^4.2.3 + "@smithy/smithy-client": ^4.9.1 + "@smithy/types": ^4.8.0 + "@smithy/util-middleware": ^4.2.3 + "@smithy/util-retry": ^4.2.3 "@smithy/uuid": ^1.1.0 tslib: ^2.6.2 - checksum: b135a6e9431bfd5aa417fcd1561d570d334b594bfc6069aee15f080bee9f85bc14fe2b37ca6294af8733c2acf343bef6fc50d14751fb7e42e3396b8d927c394f + checksum: fe196af3b5e91c4c64649425d51f61133e0776a4cb9ea3151a7aab53dea7abdf19fc7582168b615c0f90be570c0e6c2e048927ea012108b708419b1f62217dc6 languageName: node linkType: hard @@ -13543,14 +13968,14 @@ __metadata: languageName: node linkType: hard -"@smithy/middleware-serde@npm:^4.0.8, @smithy/middleware-serde@npm:^4.0.9, @smithy/middleware-serde@npm:^4.1.1, @smithy/middleware-serde@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/middleware-serde@npm:4.2.0" +"@smithy/middleware-serde@npm:^4.0.8, @smithy/middleware-serde@npm:^4.0.9, @smithy/middleware-serde@npm:^4.1.1, @smithy/middleware-serde@npm:^4.2.0, @smithy/middleware-serde@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/middleware-serde@npm:4.2.3" dependencies: - "@smithy/protocol-http": ^5.3.0 - "@smithy/types": ^4.6.0 + "@smithy/protocol-http": ^5.3.3 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: f43d5b438aca7184c7bf43c3136ec90f14c8e3936a4624158cb27f160ae18fd8647a34c0e9f3d37e8c89e7c8711748dfe93ec388da8e0f227e01e0c5e669de30 + checksum: c8cda503c62e380167595efb1d44b5cc81e23e88c9941f3b7cc485c1948c9d0c379252acdf46419281abb844bc5080a31c54f7e00427c411d8ae929dad1050a1 languageName: node linkType: hard @@ -13564,13 +13989,13 @@ __metadata: languageName: node linkType: hard -"@smithy/middleware-stack@npm:^4.0.4, @smithy/middleware-stack@npm:^4.0.5, @smithy/middleware-stack@npm:^4.1.1, @smithy/middleware-stack@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/middleware-stack@npm:4.2.0" +"@smithy/middleware-stack@npm:^4.0.4, @smithy/middleware-stack@npm:^4.0.5, @smithy/middleware-stack@npm:^4.1.1, @smithy/middleware-stack@npm:^4.2.0, @smithy/middleware-stack@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/middleware-stack@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 37886fb6da8dfda4c09f2cca268214397de05009835095d773b463aa815670e9cdd8460c19bb7c6024dc0f1104baa0db3d0b9623ac30ceafd8b1a734054b53d7 + checksum: 4a2cc539a6850501831a502a35eb135d5801003c3061e71e6cfc2cceba94a4db1a81e0c7f06f867871d20fc9b24868bddec513f3759ca484b299b153adf32dae languageName: node linkType: hard @@ -13586,15 +14011,15 @@ __metadata: languageName: node linkType: hard -"@smithy/node-config-provider@npm:^4.1.3, @smithy/node-config-provider@npm:^4.1.4, @smithy/node-config-provider@npm:^4.2.2, @smithy/node-config-provider@npm:^4.3.0": - version: 4.3.0 - resolution: "@smithy/node-config-provider@npm:4.3.0" +"@smithy/node-config-provider@npm:^4.1.3, @smithy/node-config-provider@npm:^4.1.4, @smithy/node-config-provider@npm:^4.2.2, @smithy/node-config-provider@npm:^4.3.0, @smithy/node-config-provider@npm:^4.3.3": + version: 4.3.3 + resolution: "@smithy/node-config-provider@npm:4.3.3" dependencies: - "@smithy/property-provider": ^4.2.0 - "@smithy/shared-ini-file-loader": ^4.3.0 - "@smithy/types": ^4.6.0 + "@smithy/property-provider": ^4.2.3 + "@smithy/shared-ini-file-loader": ^4.3.3 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: e67e3b4d281947cd7bfe358a4a40349f52c4761ec4903c4392e27ee6816eb3b0ba3d1e9d1c196ff2f28ee3ae4701945d0dfd234203aa93bc30b46146070b7216 + checksum: f8a6839f5850c289be5cc366fe45c9a0553752c5851f3b2eeb2e0b8cdeda183535767d41f7e9e99bfe3bfe7f6fd50c5861a6acd802e0ec49a12caa4789dde1b8 languageName: node linkType: hard @@ -13611,16 +14036,16 @@ __metadata: languageName: node linkType: hard -"@smithy/node-http-handler@npm:^4.0.6, @smithy/node-http-handler@npm:^4.1.0, @smithy/node-http-handler@npm:^4.1.1, @smithy/node-http-handler@npm:^4.2.1, @smithy/node-http-handler@npm:^4.3.0": - version: 4.3.0 - resolution: "@smithy/node-http-handler@npm:4.3.0" +"@smithy/node-http-handler@npm:^4.0.6, @smithy/node-http-handler@npm:^4.1.0, @smithy/node-http-handler@npm:^4.1.1, @smithy/node-http-handler@npm:^4.2.1, @smithy/node-http-handler@npm:^4.3.0, @smithy/node-http-handler@npm:^4.4.3": + version: 4.4.3 + resolution: "@smithy/node-http-handler@npm:4.4.3" dependencies: - "@smithy/abort-controller": ^4.2.0 - "@smithy/protocol-http": ^5.3.0 - "@smithy/querystring-builder": ^4.2.0 - "@smithy/types": ^4.6.0 + "@smithy/abort-controller": ^4.2.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/querystring-builder": ^4.2.3 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 30752ee8bd3d426847221417db3742e8e976615de8277e345af58899845e0e35438e4921056849f9d505a20af0f7512cb39276b68d0da5446d0b275f038bdeaf + checksum: 343ca2d2ce8e8b11f849edaa69b52b439be93cf2351cac78c0c545e41af621b0300eaa32fdeea06e282a6b5801db3b9dc3b339674f7dd427aa1e26fd46968f2a languageName: node linkType: hard @@ -13634,13 +14059,13 @@ __metadata: languageName: node linkType: hard -"@smithy/property-provider@npm:^4.0.4, @smithy/property-provider@npm:^4.0.5, @smithy/property-provider@npm:^4.1.1, @smithy/property-provider@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/property-provider@npm:4.2.0" +"@smithy/property-provider@npm:^4.0.4, @smithy/property-provider@npm:^4.0.5, @smithy/property-provider@npm:^4.1.1, @smithy/property-provider@npm:^4.2.0, @smithy/property-provider@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/property-provider@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 8ea9ccc9d3e67895c7002a3f5ab2f3f8b3432213eff3e5b3e4d81845273903de706e6c46e815b39e00c2fc5bf76a341d99e396cb9dc0c9cdc5981a35c83991a1 + checksum: 1dc7a673023f3f4bb9e6fb879c5e02972d5e8dbc9d3aab36f6a1ef2ee897223416c4f98a2455e7837e42dcd923cbe18dcffd60843c6f8eef632fdfa4ebd529b8 languageName: node linkType: hard @@ -13654,13 +14079,13 @@ __metadata: languageName: node linkType: hard -"@smithy/protocol-http@npm:^5.1.2, @smithy/protocol-http@npm:^5.1.3, @smithy/protocol-http@npm:^5.2.1, @smithy/protocol-http@npm:^5.3.0": - version: 5.3.0 - resolution: "@smithy/protocol-http@npm:5.3.0" +"@smithy/protocol-http@npm:^5.1.2, @smithy/protocol-http@npm:^5.1.3, @smithy/protocol-http@npm:^5.2.1, @smithy/protocol-http@npm:^5.3.0, @smithy/protocol-http@npm:^5.3.3": + version: 5.3.3 + resolution: "@smithy/protocol-http@npm:5.3.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 718f1729c6b44a0d493ed4d815e9b6037fd50a87d9f7ac6070d53c083f11d1e460c6edc5997b2d8c8138559d15e2a79c1bd26534357c55c32bc5d2aaae625d3a + checksum: f94d43aefcabc89b3de881b6d11b40ca46367a938be7cb7ebea85a289d373f18b68453c7374e9d254805b84c336b8654fd2c6bbbf34b3974752de2b0774c7023 languageName: node linkType: hard @@ -13675,14 +14100,14 @@ __metadata: languageName: node linkType: hard -"@smithy/querystring-builder@npm:^4.0.4, @smithy/querystring-builder@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/querystring-builder@npm:4.2.0" +"@smithy/querystring-builder@npm:^4.0.4, @smithy/querystring-builder@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/querystring-builder@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 "@smithy/util-uri-escape": ^4.2.0 tslib: ^2.6.2 - checksum: 01eb2e947130c1d88e67da65032e88911f6d2f4fa99f56555370fa765e63c629273e06537d5c5160f882b64abbf524168a8b510dc5de6ac2e161a53e914d7ef7 + checksum: a29741ddde6f9e9e4e3774b4008a12ecc189a9296b6ac6df4a563bd7e3e18352674e754bfbf2a87b2c0e9cede77e51bee88c54fb169d99b30f3f803571cb985e languageName: node linkType: hard @@ -13696,13 +14121,13 @@ __metadata: languageName: node linkType: hard -"@smithy/querystring-parser@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/querystring-parser@npm:4.2.0" +"@smithy/querystring-parser@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/querystring-parser@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 9d50446af317bd5231514151a8a00d808db985543a2c5aa755b5b3bf1c7ce0290a652dbebb577709d2a7fa51279ad162e5551e780e5b8360eeda4cd88beaa828 + checksum: 974c20463b18dfc90b9446713ab959c1998ffd2269e512942fd16d831f44ef2684db700ba82afe9510c8a59b06e0765cc70a1eacc1ce4d7902a20c3e441e715e languageName: node linkType: hard @@ -13715,12 +14140,12 @@ __metadata: languageName: node linkType: hard -"@smithy/service-error-classification@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/service-error-classification@npm:4.2.0" +"@smithy/service-error-classification@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/service-error-classification@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 - checksum: 943cf1afc5d0337fb35625ec1ffc1128062d12d6d97b33f7d14dad760b2b02bcb982111c131a5ada74ebe3d03fa3d12506caaa66c549fad5731718c1f4133ddd + "@smithy/types": ^4.8.0 + checksum: 8cd7327515125632a5b7535a9db24ab3f3d733253224d260ac6bf94e04ed3abf99ebd6cfb723d160b3fe49aa87c573dc51775656f4a661939851521e1fd750bb languageName: node linkType: hard @@ -13734,13 +14159,13 @@ __metadata: languageName: node linkType: hard -"@smithy/shared-ini-file-loader@npm:^4.0.4, @smithy/shared-ini-file-loader@npm:^4.0.5, @smithy/shared-ini-file-loader@npm:^4.2.0, @smithy/shared-ini-file-loader@npm:^4.3.0": - version: 4.3.0 - resolution: "@smithy/shared-ini-file-loader@npm:4.3.0" +"@smithy/shared-ini-file-loader@npm:^4.0.4, @smithy/shared-ini-file-loader@npm:^4.0.5, @smithy/shared-ini-file-loader@npm:^4.2.0, @smithy/shared-ini-file-loader@npm:^4.3.0, @smithy/shared-ini-file-loader@npm:^4.3.3": + version: 4.3.3 + resolution: "@smithy/shared-ini-file-loader@npm:4.3.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 73d39e470acea3b635532065987f4aab72b3af73840d3d92154429f4273f0d2d3269e852da2420dd6a7d2a2fc69c38cfd6a9802a4b67002b830e9babe53fde0d + checksum: 8e5092d0be0a45b265d0a469dfded89aa3da93e751262efa71e358ca95902a3e34f6ae1465790c7fea131e6a945f322a357b5d681c1a5f66baf4acbfff347937 languageName: node linkType: hard @@ -13760,19 +14185,19 @@ __metadata: languageName: node linkType: hard -"@smithy/signature-v4@npm:^5.1.2, @smithy/signature-v4@npm:^5.1.3, @smithy/signature-v4@npm:^5.2.1, @smithy/signature-v4@npm:^5.3.0": - version: 5.3.0 - resolution: "@smithy/signature-v4@npm:5.3.0" +"@smithy/signature-v4@npm:^5.1.2, @smithy/signature-v4@npm:^5.1.3, @smithy/signature-v4@npm:^5.2.1, @smithy/signature-v4@npm:^5.3.0, @smithy/signature-v4@npm:^5.3.3": + version: 5.3.3 + resolution: "@smithy/signature-v4@npm:5.3.3" dependencies: "@smithy/is-array-buffer": ^4.2.0 - "@smithy/protocol-http": ^5.3.0 - "@smithy/types": ^4.6.0 + "@smithy/protocol-http": ^5.3.3 + "@smithy/types": ^4.8.0 "@smithy/util-hex-encoding": ^4.2.0 - "@smithy/util-middleware": ^4.2.0 + "@smithy/util-middleware": ^4.2.3 "@smithy/util-uri-escape": ^4.2.0 "@smithy/util-utf8": ^4.2.0 tslib: ^2.6.2 - checksum: e581445d947322146358dbc4adc42cecda31892d14bc1750fac205a1bd25feb210d80aafa03428108018f67998a9b3df888f423820af55bac05d2466e75610da + checksum: 454c5bc2847b066741fed57c7ea4ace1d6c3cb92387c78f3fd1ebf4c4a8629a65322bd13dd6f3dc62ef1f6b2f8d6d4ed88dfe8ce892c2fc6945d78e34e18727c languageName: node linkType: hard @@ -13791,18 +14216,18 @@ __metadata: languageName: node linkType: hard -"@smithy/smithy-client@npm:^4.4.10, @smithy/smithy-client@npm:^4.4.3, @smithy/smithy-client@npm:^4.4.6, @smithy/smithy-client@npm:^4.4.7, @smithy/smithy-client@npm:^4.6.2, @smithy/smithy-client@npm:^4.7.0": - version: 4.7.0 - resolution: "@smithy/smithy-client@npm:4.7.0" +"@smithy/smithy-client@npm:^4.4.10, @smithy/smithy-client@npm:^4.4.3, @smithy/smithy-client@npm:^4.4.6, @smithy/smithy-client@npm:^4.4.7, @smithy/smithy-client@npm:^4.6.2, @smithy/smithy-client@npm:^4.7.0, @smithy/smithy-client@npm:^4.9.1": + version: 4.9.1 + resolution: "@smithy/smithy-client@npm:4.9.1" dependencies: - "@smithy/core": ^3.14.0 - "@smithy/middleware-endpoint": ^4.3.0 - "@smithy/middleware-stack": ^4.2.0 - "@smithy/protocol-http": ^5.3.0 - "@smithy/types": ^4.6.0 - "@smithy/util-stream": ^4.4.0 + "@smithy/core": ^3.17.1 + "@smithy/middleware-endpoint": ^4.3.5 + "@smithy/middleware-stack": ^4.2.3 + "@smithy/protocol-http": ^5.3.3 + "@smithy/types": ^4.8.0 + "@smithy/util-stream": ^4.5.4 tslib: ^2.6.2 - checksum: f94fa42a96a52fea0fdc6417477b65f7c31a63641d641d6f11e5679d9917cc40f0ff43cfbab8f9abbf5edfa31b5ffa25c354b70b2c71b4e5f04efccfe20c4063 + checksum: 6b50a5d00e2b68e72e78d08e6d90587159ed80d6fb9a6fb341cc78a55feca9f12157cb309eb8e22ab8fe6508a63ac4bfa2e42cf6f7077a8d571a30cb33232ce8 languageName: node linkType: hard @@ -13815,12 +14240,12 @@ __metadata: languageName: node linkType: hard -"@smithy/types@npm:^4.3.1, @smithy/types@npm:^4.3.2, @smithy/types@npm:^4.5.0, @smithy/types@npm:^4.6.0": - version: 4.6.0 - resolution: "@smithy/types@npm:4.6.0" +"@smithy/types@npm:^4.3.1, @smithy/types@npm:^4.3.2, @smithy/types@npm:^4.5.0, @smithy/types@npm:^4.6.0, @smithy/types@npm:^4.8.0": + version: 4.8.0 + resolution: "@smithy/types@npm:4.8.0" dependencies: tslib: ^2.6.2 - checksum: 7a791fa2ad4a4407875076088b6438a6d328af9675705e64fba046c1ca84dbbdd0b9e398f4c45f5c6bc20a8b312aec0e5e69dd9114c5f7bd0a01ef23a646c6cd + checksum: 342173aeaa80b3837dce51c393a3fcab7db9b3ec1481cbc6d00298566076481b88e274c258c2dab54112641d66ab678c7ed7dc2c2a4500ffcf407a6d61c33fd0 languageName: node linkType: hard @@ -13835,14 +14260,14 @@ __metadata: languageName: node linkType: hard -"@smithy/url-parser@npm:^4.0.4, @smithy/url-parser@npm:^4.0.5, @smithy/url-parser@npm:^4.1.1, @smithy/url-parser@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/url-parser@npm:4.2.0" +"@smithy/url-parser@npm:^4.0.4, @smithy/url-parser@npm:^4.0.5, @smithy/url-parser@npm:^4.1.1, @smithy/url-parser@npm:^4.2.0, @smithy/url-parser@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/url-parser@npm:4.2.3" dependencies: - "@smithy/querystring-parser": ^4.2.0 - "@smithy/types": ^4.6.0 + "@smithy/querystring-parser": ^4.2.3 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 3e76168d2eb972e07a70cf9a4e1a45faf1915474bce399e3c1836dec9794b744e804f4c5bc0b0fd1f5f6582fbb08c716072225b5bbe7aab59d9b3a026b1a7a18 + checksum: fe624e0ed2447a6e27c32560aaf8371847982185743cfefe4d5fd46ddeb05bff12cd9fcdb4e568d1ce0c7dc1e5317e0e3cc5e78096c3ceb0fb77da93f86e7f56 languageName: node linkType: hard @@ -13857,14 +14282,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-base64@npm:^4.0.0, @smithy/util-base64@npm:^4.1.0, @smithy/util-base64@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/util-base64@npm:4.2.0" +"@smithy/util-base64@npm:^4.0.0, @smithy/util-base64@npm:^4.1.0, @smithy/util-base64@npm:^4.2.0, @smithy/util-base64@npm:^4.3.0": + version: 4.3.0 + resolution: "@smithy/util-base64@npm:4.3.0" dependencies: "@smithy/util-buffer-from": ^4.2.0 "@smithy/util-utf8": ^4.2.0 tslib: ^2.6.2 - checksum: 6b11dd6c782a419a7a85b908e0311eab4f853ae9d60da5f2c2e42614f983858052a2075b71bd51ed15ec89a54b7d53f1e52e97e3a055a6e6de82d2cc1fd9aeb3 + checksum: 02dd536b9257914cc9a595a865faac64fc96db10468d52d0cba475df78764fc25ba255707ccd061ee197fca189d7859d70af8cf89b0b0c3e27c1c693676eb6e4 languageName: node linkType: hard @@ -13895,12 +14320,12 @@ __metadata: languageName: node linkType: hard -"@smithy/util-body-length-node@npm:^4.0.0, @smithy/util-body-length-node@npm:^4.1.0, @smithy/util-body-length-node@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/util-body-length-node@npm:4.2.0" +"@smithy/util-body-length-node@npm:^4.0.0, @smithy/util-body-length-node@npm:^4.1.0, @smithy/util-body-length-node@npm:^4.2.0, @smithy/util-body-length-node@npm:^4.2.1": + version: 4.2.1 + resolution: "@smithy/util-body-length-node@npm:4.2.1" dependencies: tslib: ^2.6.2 - checksum: 9f5197df54ad1361c7ff94cab7a5310d84e5dd9480c868de20e7e19472b0a5892ee27c5ea205ef978707868eee2ecab73b95115047a30ed070b337ab60c90936 + checksum: 3c32306735af5b62f75375e976a531ab45f171dfb0dc23ee035478d2132eaf21f244c31b0f3e861c514ff97d8112055e74c98ed44595ad24bd31434d5fdaf4bf languageName: node linkType: hard @@ -13965,16 +14390,15 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^4.0.19, @smithy/util-defaults-mode-browser@npm:^4.0.22, @smithy/util-defaults-mode-browser@npm:^4.0.23, @smithy/util-defaults-mode-browser@npm:^4.0.26, @smithy/util-defaults-mode-browser@npm:^4.1.2, @smithy/util-defaults-mode-browser@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/util-defaults-mode-browser@npm:4.2.0" +"@smithy/util-defaults-mode-browser@npm:^4.0.19, @smithy/util-defaults-mode-browser@npm:^4.0.22, @smithy/util-defaults-mode-browser@npm:^4.0.23, @smithy/util-defaults-mode-browser@npm:^4.0.26, @smithy/util-defaults-mode-browser@npm:^4.1.2, @smithy/util-defaults-mode-browser@npm:^4.2.0, @smithy/util-defaults-mode-browser@npm:^4.3.4": + version: 4.3.4 + resolution: "@smithy/util-defaults-mode-browser@npm:4.3.4" dependencies: - "@smithy/property-provider": ^4.2.0 - "@smithy/smithy-client": ^4.7.0 - "@smithy/types": ^4.6.0 - bowser: ^2.11.0 + "@smithy/property-provider": ^4.2.3 + "@smithy/smithy-client": ^4.9.1 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 7758034aaa3734ff92b3b9a95b940e65ef94568bcb5272861de222464b1875292a2d336b3faacbf5ccc15e6cef44fa5bc8ce282e31fc1c6685122b56d8aca15f + checksum: b3e48214a2f9e3b55995e7b44b4531b37c4e83960582afae8991ba98d2552132e1fc1962408be476ec45301cf03887194d5941cc76db500ad2f4fc748552bfee languageName: node linkType: hard @@ -13993,18 +14417,18 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^4.0.19, @smithy/util-defaults-mode-node@npm:^4.0.22, @smithy/util-defaults-mode-node@npm:^4.0.23, @smithy/util-defaults-mode-node@npm:^4.0.26, @smithy/util-defaults-mode-node@npm:^4.1.2, @smithy/util-defaults-mode-node@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/util-defaults-mode-node@npm:4.2.0" +"@smithy/util-defaults-mode-node@npm:^4.0.19, @smithy/util-defaults-mode-node@npm:^4.0.22, @smithy/util-defaults-mode-node@npm:^4.0.23, @smithy/util-defaults-mode-node@npm:^4.0.26, @smithy/util-defaults-mode-node@npm:^4.1.2, @smithy/util-defaults-mode-node@npm:^4.2.0, @smithy/util-defaults-mode-node@npm:^4.2.6": + version: 4.2.6 + resolution: "@smithy/util-defaults-mode-node@npm:4.2.6" dependencies: - "@smithy/config-resolver": ^4.3.0 - "@smithy/credential-provider-imds": ^4.2.0 - "@smithy/node-config-provider": ^4.3.0 - "@smithy/property-provider": ^4.2.0 - "@smithy/smithy-client": ^4.7.0 - "@smithy/types": ^4.6.0 + "@smithy/config-resolver": ^4.4.0 + "@smithy/credential-provider-imds": ^4.2.3 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/property-provider": ^4.2.3 + "@smithy/smithy-client": ^4.9.1 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 4e17e7c8a64d2798c43ad3b091a30bd908cdb166496fdcec401ae3f95076bc725c443530de0dcb9b9ba14d693cb85dc31a43d4044664b2937e4aa5b4852bef7d + checksum: edd0918a5cff0787dd2fadf8aa36ef603922eaff5f3b2ec620c2c522e2bbda127327c26debe26028544ff34d5726004cfbf8c0a90505b657b852989a94f5c8ab languageName: node linkType: hard @@ -14019,14 +14443,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-endpoints@npm:^3.0.6, @smithy/util-endpoints@npm:^3.0.7, @smithy/util-endpoints@npm:^3.1.2, @smithy/util-endpoints@npm:^3.2.0": - version: 3.2.0 - resolution: "@smithy/util-endpoints@npm:3.2.0" +"@smithy/util-endpoints@npm:^3.0.6, @smithy/util-endpoints@npm:^3.0.7, @smithy/util-endpoints@npm:^3.1.2, @smithy/util-endpoints@npm:^3.2.0, @smithy/util-endpoints@npm:^3.2.3": + version: 3.2.3 + resolution: "@smithy/util-endpoints@npm:3.2.3" dependencies: - "@smithy/node-config-provider": ^4.3.0 - "@smithy/types": ^4.6.0 + "@smithy/node-config-provider": ^4.3.3 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: 0a05ea69df3ab29b451b0e90cee43b5fa038cf15d88f724f34accd1ff84d04e274c578e29b587bc40c25201cd9e4c89840d55319eef408b06618f30ac87f2cca + checksum: 49daffb28d384e7c58f04ac3610f295f41b3ceef78f295ebff6d737efa142e9c95e4eed6db06ca085de7497fc95a4dbb2be99050ca31d07f399aaf63ab0adf35 languageName: node linkType: hard @@ -14058,13 +14482,13 @@ __metadata: languageName: node linkType: hard -"@smithy/util-middleware@npm:^4.0.4, @smithy/util-middleware@npm:^4.0.5, @smithy/util-middleware@npm:^4.1.1, @smithy/util-middleware@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/util-middleware@npm:4.2.0" +"@smithy/util-middleware@npm:^4.0.4, @smithy/util-middleware@npm:^4.0.5, @smithy/util-middleware@npm:^4.1.1, @smithy/util-middleware@npm:^4.2.0, @smithy/util-middleware@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/util-middleware@npm:4.2.3" dependencies: - "@smithy/types": ^4.6.0 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: db64843017fed2fcda503af98b47f5c5d8e36d537ea24e5d12063a1865aa52f6ffb2ae0757c89f5734bcae2f5b3fa5e6a592eac9e8fb35f87dd84e644fd8396b + checksum: e98d461754d849b543a69e6a0fa74448cf00cf0954d6f484f735bcbf6c10a51cf63ad2090bcd8f276c19cbe7c413075ee49e6018cad8c15c3844480fa0efd0a1 languageName: node linkType: hard @@ -14079,14 +14503,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-retry@npm:^4.0.5, @smithy/util-retry@npm:^4.0.6, @smithy/util-retry@npm:^4.0.7, @smithy/util-retry@npm:^4.1.2, @smithy/util-retry@npm:^4.2.0": - version: 4.2.0 - resolution: "@smithy/util-retry@npm:4.2.0" +"@smithy/util-retry@npm:^4.0.5, @smithy/util-retry@npm:^4.0.6, @smithy/util-retry@npm:^4.0.7, @smithy/util-retry@npm:^4.1.2, @smithy/util-retry@npm:^4.2.0, @smithy/util-retry@npm:^4.2.3": + version: 4.2.3 + resolution: "@smithy/util-retry@npm:4.2.3" dependencies: - "@smithy/service-error-classification": ^4.2.0 - "@smithy/types": ^4.6.0 + "@smithy/service-error-classification": ^4.2.3 + "@smithy/types": ^4.8.0 tslib: ^2.6.2 - checksum: d972acbd9e9dd524dba50cdb34eb7cc92ff305dbb8b2c4b7a270546bc75329f67c041312306f2e1bec3fb486ce3334c3e4812c03fe9950ff21d11f3336d1ce29 + checksum: 9340714056d3ae6513c2527ba0806712aa4e86532ead5150dd0d34210a9f6d10ea1bb55cf4efa3711234444b58dca561a2708d885e61b2dd926a7cb6cf74baa2 languageName: node linkType: hard @@ -14106,19 +14530,19 @@ __metadata: languageName: node linkType: hard -"@smithy/util-stream@npm:^4.2.2, @smithy/util-stream@npm:^4.2.3, @smithy/util-stream@npm:^4.2.4, @smithy/util-stream@npm:^4.3.1, @smithy/util-stream@npm:^4.4.0": - version: 4.4.0 - resolution: "@smithy/util-stream@npm:4.4.0" +"@smithy/util-stream@npm:^4.2.2, @smithy/util-stream@npm:^4.2.3, @smithy/util-stream@npm:^4.2.4, @smithy/util-stream@npm:^4.3.1, @smithy/util-stream@npm:^4.4.0, @smithy/util-stream@npm:^4.5.4": + version: 4.5.4 + resolution: "@smithy/util-stream@npm:4.5.4" dependencies: - "@smithy/fetch-http-handler": ^5.3.0 - "@smithy/node-http-handler": ^4.3.0 - "@smithy/types": ^4.6.0 - "@smithy/util-base64": ^4.2.0 + "@smithy/fetch-http-handler": ^5.3.4 + "@smithy/node-http-handler": ^4.4.3 + "@smithy/types": ^4.8.0 + "@smithy/util-base64": ^4.3.0 "@smithy/util-buffer-from": ^4.2.0 "@smithy/util-hex-encoding": ^4.2.0 "@smithy/util-utf8": ^4.2.0 tslib: ^2.6.2 - checksum: 6328011045d4d4ed8e2bc07a07559ad64a593971c886a6699bd590bbda1cbb65fe8413f8a08de66837fbf5a2d87c60f4a3885aa5b48a884f3f50d5aaefae4128 + checksum: 9c0ea9062b6800a1261524d4268cbbd943e3681367a5c0ff3b3186889b76c28516acfdaf1c47ad71f72a909c796d97204b1e4cd338cd52e54ace808658a826b5 languageName: node linkType: hard