diff --git a/.github/composite_actions/fetch_backends/action.yaml b/.github/composite_actions/fetch_backends/action.yaml index 01070b3dfd..d1b3082fd0 100644 --- a/.github/composite_actions/fetch_backends/action.yaml +++ b/.github/composite_actions/fetch_backends/action.yaml @@ -17,6 +17,9 @@ inputs: secret-identifier: required: true description: ARN of secret from AWS Secrets Manger which is a JSON object of app IDs / s3 bucket ARNs + needs-gen2-config: + required: true + description: Whether the E2E workflow needs amplify_outputs from AWS runs: using: "composite" @@ -44,6 +47,14 @@ runs: shell: bash run: dart pub global run aft exec --include=${{ inputs.scope }} -- tool/pull_test_backend.sh + - name: Pull Amplify Outputs + shell: bash + run: | + if [[ "${{inputs.needs-gen2-config}}" == true ]]; then + dart pub global run aft exec --include=${{ inputs.scope }} -- tool/pull_test_gen2_backend.sh ... + fi + exit 0 + - name: Undo any codegen changes from amplify pull shell: bash run: dart pub global run aft exec --include=${{ inputs.scope }} -- [ -d "lib/models" ] && git checkout '**/lib/models/*' || exit 0 diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 57d7b2b604..c270cd92d0 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -33,6 +33,27 @@ updates: - dependency-name: "*" update-types: - "version-update:semver-patch" + - package-ecosystem: "npm" + directory: "infra-gen2" + schedule: + interval: "weekly" + groups: + cdk: + patterns: + - "aws-amplify" + - "@aws-amplify/*" + - "aws-cdk" + - "aws-cdk-lib" + - "constructs" + aws-sdk-js: + patterns: + - "@aws-sdk/*" + - "@aws-crypto/*" + ignore: + # Ignore patch version bumps + - dependency-name: "*" + update-types: + - "version-update:semver-patch" - package-ecosystem: "pub" directory: "/" schedule: @@ -129,20 +150,6 @@ updates: test: patterns: - "test" - - package-ecosystem: "pub" - directory: "infra" - schedule: - interval: "daily" - ignore: - # Ignore patch version bumps - - dependency-name: "*" - update-types: - - "version-update:semver-patch" - # Ignore all repo packages - - dependency-name: "amplify_core" - - dependency-name: "aws_common" - - dependency-name: "amplify_lints" - - dependency-name: "aws_signature_v4" - package-ecosystem: "pub" directory: "actions" schedule: @@ -207,6 +214,34 @@ updates: - dependency-name: "amplify_datastore_plugin_interface" - dependency-name: "amplify_storage_s3" - dependency-name: "amplify_storage_s3_dart" + - package-ecosystem: "pub" + directory: "infra" + schedule: + interval: "daily" + ignore: + # Ignore patch version bumps + - dependency-name: "*" + update-types: + - "version-update:semver-patch" + # Ignore all repo packages + - dependency-name: "amplify_core" + - dependency-name: "aws_common" + - dependency-name: "amplify_lints" + - dependency-name: "aws_signature_v4" + - package-ecosystem: "pub" + directory: "infra-gen2" + schedule: + interval: "daily" + ignore: + # Ignore patch version bumps + - dependency-name: "*" + update-types: + - "version-update:semver-patch" + # Ignore all repo packages + - dependency-name: "amplify_core" + - dependency-name: "aws_common" + - dependency-name: "amplify_lints" + - dependency-name: "aws_signature_v4" - package-ecosystem: "pub" directory: "packages/aft" schedule: diff --git a/.github/workflows/amplify_analytics_pinpoint.yaml b/.github/workflows/amplify_analytics_pinpoint.yaml index f32941147d..db1a5c6445 100644 --- a/.github/workflows/amplify_analytics_pinpoint.yaml +++ b/.github/workflows/amplify_analytics_pinpoint.yaml @@ -74,6 +74,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_analytics_pinpoint_android.yaml b/.github/workflows/amplify_analytics_pinpoint_android.yaml index 09e9d99dd9..7afd5c96cc 100644 --- a/.github/workflows/amplify_analytics_pinpoint_android.yaml +++ b/.github/workflows/amplify_analytics_pinpoint_android.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/analytics/amplify_analytics_pinpoint/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_analytics_pinpoint_android.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_analytics_pinpoint_dart.yaml b/.github/workflows/amplify_analytics_pinpoint_dart.yaml index ed15a15a2e..84cceace55 100644 --- a/.github/workflows/amplify_analytics_pinpoint_dart.yaml +++ b/.github/workflows/amplify_analytics_pinpoint_dart.yaml @@ -70,6 +70,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_analytics_pinpoint_example.yaml b/.github/workflows/amplify_analytics_pinpoint_example.yaml index 8d02df3ad0..b26607e9b0 100644 --- a/.github/workflows/amplify_analytics_pinpoint_example.yaml +++ b/.github/workflows/amplify_analytics_pinpoint_example.yaml @@ -134,6 +134,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -165,6 +166,7 @@ jobs: package-name: amplify_analytics_pinpoint_example working-directory: packages/analytics/amplify_analytics_pinpoint/example needs-aws-config: true + needs-gen2-config: false e2e_ios_test: needs: [test] uses: ./.github/workflows/e2e_ios.yaml @@ -173,6 +175,7 @@ jobs: package-name: amplify_analytics_pinpoint_example working-directory: packages/analytics/amplify_analytics_pinpoint/example needs-aws-config: true + needs-gen2-config: false e2e_web_test: needs: [test] uses: ./.github/workflows/e2e_web.yaml @@ -181,6 +184,7 @@ jobs: package-name: amplify_analytics_pinpoint_example working-directory: packages/analytics/amplify_analytics_pinpoint/example needs-aws-config: true + needs-gen2-config: false e2e_linux_test: needs: [test] uses: ./.github/workflows/e2e_linux.yaml @@ -189,6 +193,7 @@ jobs: package-name: amplify_analytics_pinpoint_example working-directory: packages/analytics/amplify_analytics_pinpoint/example needs-aws-config: true + needs-gen2-config: false e2e_windows_test: needs: [test] uses: ./.github/workflows/e2e_windows.yaml @@ -197,3 +202,4 @@ jobs: package-name: amplify_analytics_pinpoint_example working-directory: packages/analytics/amplify_analytics_pinpoint/example needs-aws-config: true + needs-gen2-config: false diff --git a/.github/workflows/amplify_api.yaml b/.github/workflows/amplify_api.yaml index 548a3c6625..348528afed 100644 --- a/.github/workflows/amplify_api.yaml +++ b/.github/workflows/amplify_api.yaml @@ -62,6 +62,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_api_dart.yaml b/.github/workflows/amplify_api_dart.yaml index b8bde5ebc3..c4c6eda5ef 100644 --- a/.github/workflows/amplify_api_dart.yaml +++ b/.github/workflows/amplify_api_dart.yaml @@ -46,6 +46,7 @@ on: - 'packages/aws_signature_v4/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_api_example.yaml b/.github/workflows/amplify_api_example.yaml index 24d372f23e..422495ee87 100644 --- a/.github/workflows/amplify_api_example.yaml +++ b/.github/workflows/amplify_api_example.yaml @@ -138,6 +138,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -169,6 +170,7 @@ jobs: package-name: amplify_api_example working-directory: packages/api/amplify_api/example needs-aws-config: true + needs-gen2-config: false e2e_ios_test: needs: [test] uses: ./.github/workflows/e2e_ios.yaml @@ -177,6 +179,7 @@ jobs: package-name: amplify_api_example working-directory: packages/api/amplify_api/example needs-aws-config: true + needs-gen2-config: false e2e_web_test: needs: [test] uses: ./.github/workflows/e2e_web.yaml @@ -185,6 +188,7 @@ jobs: package-name: amplify_api_example working-directory: packages/api/amplify_api/example needs-aws-config: true + needs-gen2-config: false e2e_linux_test: needs: [test] uses: ./.github/workflows/e2e_linux.yaml @@ -193,6 +197,7 @@ jobs: package-name: amplify_api_example working-directory: packages/api/amplify_api/example needs-aws-config: true + needs-gen2-config: false e2e_windows_test: needs: [test] uses: ./.github/workflows/e2e_windows.yaml @@ -201,3 +206,4 @@ jobs: package-name: amplify_api_example working-directory: packages/api/amplify_api/example needs-aws-config: true + needs-gen2-config: false diff --git a/.github/workflows/amplify_auth_cognito.yaml b/.github/workflows/amplify_auth_cognito.yaml index f8e5aa2f8b..a51c04420d 100644 --- a/.github/workflows/amplify_auth_cognito.yaml +++ b/.github/workflows/amplify_auth_cognito.yaml @@ -90,6 +90,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_auth_cognito_android.yaml b/.github/workflows/amplify_auth_cognito_android.yaml index c4295d74fc..89f97d2295 100644 --- a/.github/workflows/amplify_auth_cognito_android.yaml +++ b/.github/workflows/amplify_auth_cognito_android.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/auth/amplify_auth_cognito/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_auth_cognito_android.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_auth_cognito_dart.yaml b/.github/workflows/amplify_auth_cognito_dart.yaml index b7ef591a1e..76c3351e71 100644 --- a/.github/workflows/amplify_auth_cognito_dart.yaml +++ b/.github/workflows/amplify_auth_cognito_dart.yaml @@ -72,6 +72,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_auth_cognito_example.yaml b/.github/workflows/amplify_auth_cognito_example.yaml index 8b347ea856..5238495283 100644 --- a/.github/workflows/amplify_auth_cognito_example.yaml +++ b/.github/workflows/amplify_auth_cognito_example.yaml @@ -146,6 +146,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -177,6 +178,7 @@ jobs: package-name: amplify_auth_cognito_example working-directory: packages/auth/amplify_auth_cognito/example needs-aws-config: true + needs-gen2-config: false e2e_ios_test: needs: [test] uses: ./.github/workflows/e2e_ios.yaml @@ -185,6 +187,7 @@ jobs: package-name: amplify_auth_cognito_example working-directory: packages/auth/amplify_auth_cognito/example needs-aws-config: true + needs-gen2-config: false e2e_web_test: needs: [test] uses: ./.github/workflows/e2e_web.yaml @@ -193,6 +196,7 @@ jobs: package-name: amplify_auth_cognito_example working-directory: packages/auth/amplify_auth_cognito/example needs-aws-config: true + needs-gen2-config: false e2e_linux_test: needs: [test] uses: ./.github/workflows/e2e_linux.yaml @@ -201,6 +205,7 @@ jobs: package-name: amplify_auth_cognito_example working-directory: packages/auth/amplify_auth_cognito/example needs-aws-config: true + needs-gen2-config: false e2e_windows_test: needs: [test] uses: ./.github/workflows/e2e_windows.yaml @@ -209,3 +214,4 @@ jobs: package-name: amplify_auth_cognito_example working-directory: packages/auth/amplify_auth_cognito/example needs-aws-config: true + needs-gen2-config: false diff --git a/.github/workflows/amplify_auth_cognito_test.yaml b/.github/workflows/amplify_auth_cognito_test.yaml index 4ca4a3622e..439fde41a7 100644 --- a/.github/workflows/amplify_auth_cognito_test.yaml +++ b/.github/workflows/amplify_auth_cognito_test.yaml @@ -82,6 +82,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_authenticator.yaml b/.github/workflows/amplify_authenticator.yaml index 015ff22b16..5e5eb6cae3 100644 --- a/.github/workflows/amplify_authenticator.yaml +++ b/.github/workflows/amplify_authenticator.yaml @@ -94,6 +94,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_authenticator_example.yaml b/.github/workflows/amplify_authenticator_example.yaml index 662ccedbda..a3d814aec0 100644 --- a/.github/workflows/amplify_authenticator_example.yaml +++ b/.github/workflows/amplify_authenticator_example.yaml @@ -138,6 +138,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -169,6 +170,7 @@ jobs: package-name: amplify_authenticator_example working-directory: packages/authenticator/amplify_authenticator/example needs-aws-config: true + needs-gen2-config: false e2e_ios_test: needs: [test] uses: ./.github/workflows/e2e_ios.yaml @@ -177,6 +179,7 @@ jobs: package-name: amplify_authenticator_example working-directory: packages/authenticator/amplify_authenticator/example needs-aws-config: true + needs-gen2-config: false e2e_web_test: needs: [test] uses: ./.github/workflows/e2e_web.yaml @@ -185,6 +188,7 @@ jobs: package-name: amplify_authenticator_example working-directory: packages/authenticator/amplify_authenticator/example needs-aws-config: true + needs-gen2-config: false e2e_linux_test: needs: [test] uses: ./.github/workflows/e2e_linux.yaml @@ -193,6 +197,7 @@ jobs: package-name: amplify_authenticator_example working-directory: packages/authenticator/amplify_authenticator/example needs-aws-config: true + needs-gen2-config: false e2e_windows_test: needs: [test] uses: ./.github/workflows/e2e_windows.yaml @@ -201,3 +206,4 @@ jobs: package-name: amplify_authenticator_example working-directory: packages/authenticator/amplify_authenticator/example needs-aws-config: true + needs-gen2-config: false diff --git a/.github/workflows/amplify_core.yaml b/.github/workflows/amplify_core.yaml index e6155bb673..a115b11f19 100644 --- a/.github/workflows/amplify_core.yaml +++ b/.github/workflows/amplify_core.yaml @@ -42,6 +42,7 @@ on: - 'packages/aws_signature_v4/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_datastore.yaml b/.github/workflows/amplify_datastore.yaml index 43302c7ef3..d3d3794310 100644 --- a/.github/workflows/amplify_datastore.yaml +++ b/.github/workflows/amplify_datastore.yaml @@ -42,6 +42,7 @@ on: - 'packages/aws_signature_v4/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_datastore_android.yaml b/.github/workflows/amplify_datastore_android.yaml index ae6a048775..8a09e6d8de 100644 --- a/.github/workflows/amplify_datastore_android.yaml +++ b/.github/workflows/amplify_datastore_android.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/amplify_datastore/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_datastore_android.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_datastore_example.yaml b/.github/workflows/amplify_datastore_example.yaml index 075da4b169..fc53c697b9 100644 --- a/.github/workflows/amplify_datastore_example.yaml +++ b/.github/workflows/amplify_datastore_example.yaml @@ -112,6 +112,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -143,6 +144,7 @@ jobs: package-name: amplify_datastore_example working-directory: packages/amplify_datastore/example needs-aws-config: true + needs-gen2-config: false e2e_ios_test: needs: [test] uses: ./.github/workflows/e2e_ios.yaml @@ -151,3 +153,4 @@ jobs: package-name: amplify_datastore_example working-directory: packages/amplify_datastore/example needs-aws-config: true + needs-gen2-config: false diff --git a/.github/workflows/amplify_datastore_ios.yaml b/.github/workflows/amplify_datastore_ios.yaml index 1862469a26..aefbfa0611 100644 --- a/.github/workflows/amplify_datastore_ios.yaml +++ b/.github/workflows/amplify_datastore_ios.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/amplify_datastore/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_datastore_ios.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_datastore_plugin_interface.yaml b/.github/workflows/amplify_datastore_plugin_interface.yaml index 5e003a16dc..0cf0ed27d2 100644 --- a/.github/workflows/amplify_datastore_plugin_interface.yaml +++ b/.github/workflows/amplify_datastore_plugin_interface.yaml @@ -38,6 +38,7 @@ on: - 'packages/aws_signature_v4/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_db_common.yaml b/.github/workflows/amplify_db_common.yaml index 7c28645143..c43cb82592 100644 --- a/.github/workflows/amplify_db_common.yaml +++ b/.github/workflows/amplify_db_common.yaml @@ -42,6 +42,7 @@ on: - 'packages/common/amplify_db_common_dart/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_db_common_android.yaml b/.github/workflows/amplify_db_common_android.yaml index 77f3219058..7037bd7899 100644 --- a/.github/workflows/amplify_db_common_android.yaml +++ b/.github/workflows/amplify_db_common_android.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/common/amplify_db_common/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_db_common_android.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_db_common_dart.yaml b/.github/workflows/amplify_db_common_dart.yaml index 0a1fb69557..e5db04ed9b 100644 --- a/.github/workflows/amplify_db_common_dart.yaml +++ b/.github/workflows/amplify_db_common_dart.yaml @@ -46,6 +46,7 @@ on: - 'packages/common/amplify_db_common_dart/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_db_common_example.yaml b/.github/workflows/amplify_db_common_example.yaml index 02b489b9f3..62e2b37235 100644 --- a/.github/workflows/amplify_db_common_example.yaml +++ b/.github/workflows/amplify_db_common_example.yaml @@ -66,6 +66,7 @@ on: - 'packages/common/amplify_db_common_dart/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -97,6 +98,7 @@ jobs: package-name: amplify_db_common_example working-directory: packages/common/amplify_db_common/example needs-aws-config: true + needs-gen2-config: false e2e_ios_test: needs: [test] uses: ./.github/workflows/e2e_ios.yaml @@ -105,6 +107,7 @@ jobs: package-name: amplify_db_common_example working-directory: packages/common/amplify_db_common/example needs-aws-config: true + needs-gen2-config: false e2e_web_test: needs: [test] uses: ./.github/workflows/e2e_web.yaml @@ -113,6 +116,7 @@ jobs: package-name: amplify_db_common_example working-directory: packages/common/amplify_db_common/example needs-aws-config: true + needs-gen2-config: false e2e_linux_test: needs: [test] uses: ./.github/workflows/e2e_linux.yaml @@ -121,6 +125,7 @@ jobs: package-name: amplify_db_common_example working-directory: packages/common/amplify_db_common/example needs-aws-config: true + needs-gen2-config: false e2e_windows_test: needs: [test] uses: ./.github/workflows/e2e_windows.yaml @@ -129,3 +134,4 @@ jobs: package-name: amplify_db_common_example working-directory: packages/common/amplify_db_common/example needs-aws-config: true + needs-gen2-config: false diff --git a/.github/workflows/amplify_db_common_ios.yaml b/.github/workflows/amplify_db_common_ios.yaml index 0b1b4e661f..6876cd0eb9 100644 --- a/.github/workflows/amplify_db_common_ios.yaml +++ b/.github/workflows/amplify_db_common_ios.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/common/amplify_db_common/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_db_common_ios.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_flutter.yaml b/.github/workflows/amplify_flutter.yaml index ac3aeb3e8c..9f0c55a726 100644 --- a/.github/workflows/amplify_flutter.yaml +++ b/.github/workflows/amplify_flutter.yaml @@ -54,6 +54,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_flutter_example.yaml b/.github/workflows/amplify_flutter_example.yaml index 0bc3ae3f17..35a1c8cdb0 100644 --- a/.github/workflows/amplify_flutter_example.yaml +++ b/.github/workflows/amplify_flutter_example.yaml @@ -118,6 +118,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_lints.yaml b/.github/workflows/amplify_lints.yaml index 867f70c92f..50e726a756 100644 --- a/.github/workflows/amplify_lints.yaml +++ b/.github/workflows/amplify_lints.yaml @@ -22,6 +22,7 @@ on: - 'packages/amplify_lints/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_native_legacy_wrapper.yaml b/.github/workflows/amplify_native_legacy_wrapper.yaml index b2e7040a62..e73d3f8ee2 100644 --- a/.github/workflows/amplify_native_legacy_wrapper.yaml +++ b/.github/workflows/amplify_native_legacy_wrapper.yaml @@ -26,6 +26,7 @@ on: - 'packages/amplify_native_legacy_wrapper/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_native_legacy_wrapper_android.yaml b/.github/workflows/amplify_native_legacy_wrapper_android.yaml index 90d400e8d6..11785bb447 100644 --- a/.github/workflows/amplify_native_legacy_wrapper_android.yaml +++ b/.github/workflows/amplify_native_legacy_wrapper_android.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/amplify_native_legacy_wrapper/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_native_legacy_wrapper_android.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_native_legacy_wrapper_example.yaml b/.github/workflows/amplify_native_legacy_wrapper_example.yaml index eb49ed9e57..14832075bb 100644 --- a/.github/workflows/amplify_native_legacy_wrapper_example.yaml +++ b/.github/workflows/amplify_native_legacy_wrapper_example.yaml @@ -34,6 +34,7 @@ on: - 'packages/aws_common/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_native_legacy_wrapper_ios.yaml b/.github/workflows/amplify_native_legacy_wrapper_ios.yaml index adba925b14..d9a593fa0a 100644 --- a/.github/workflows/amplify_native_legacy_wrapper_ios.yaml +++ b/.github/workflows/amplify_native_legacy_wrapper_ios.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/amplify_native_legacy_wrapper/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_native_legacy_wrapper_ios.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_push_notifications.yaml b/.github/workflows/amplify_push_notifications.yaml index a58278b1a3..41be09a6b0 100644 --- a/.github/workflows/amplify_push_notifications.yaml +++ b/.github/workflows/amplify_push_notifications.yaml @@ -60,6 +60,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_push_notifications_android.yaml b/.github/workflows/amplify_push_notifications_android.yaml index 00d9f26c3c..03af9d659d 100644 --- a/.github/workflows/amplify_push_notifications_android.yaml +++ b/.github/workflows/amplify_push_notifications_android.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/notifications/push/amplify_push_notifications/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_push_notifications_android.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_push_notifications_example.yaml b/.github/workflows/amplify_push_notifications_example.yaml index 42a3f90b11..ecef0300c9 100644 --- a/.github/workflows/amplify_push_notifications_example.yaml +++ b/.github/workflows/amplify_push_notifications_example.yaml @@ -58,6 +58,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_push_notifications_ios.yaml b/.github/workflows/amplify_push_notifications_ios.yaml index f9ca955730..02bc1ddf58 100644 --- a/.github/workflows/amplify_push_notifications_ios.yaml +++ b/.github/workflows/amplify_push_notifications_ios.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/notifications/push/amplify_push_notifications/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_push_notifications_ios.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_push_notifications_pinpoint.yaml b/.github/workflows/amplify_push_notifications_pinpoint.yaml index ab255edf6b..b89a13670c 100644 --- a/.github/workflows/amplify_push_notifications_pinpoint.yaml +++ b/.github/workflows/amplify_push_notifications_pinpoint.yaml @@ -98,6 +98,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_push_notifications_pinpoint_example.yaml b/.github/workflows/amplify_push_notifications_pinpoint_example.yaml index f212af2c7a..56accf66d5 100644 --- a/.github/workflows/amplify_push_notifications_pinpoint_example.yaml +++ b/.github/workflows/amplify_push_notifications_pinpoint_example.yaml @@ -102,6 +102,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_secure_storage.yaml b/.github/workflows/amplify_secure_storage.yaml index 268e6bbeb6..baf56d4e3c 100644 --- a/.github/workflows/amplify_secure_storage.yaml +++ b/.github/workflows/amplify_secure_storage.yaml @@ -42,6 +42,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_secure_storage_android.yaml b/.github/workflows/amplify_secure_storage_android.yaml index c239115c3b..11a15d7042 100644 --- a/.github/workflows/amplify_secure_storage_android.yaml +++ b/.github/workflows/amplify_secure_storage_android.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/secure_storage/amplify_secure_storage/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_secure_storage_android.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_secure_storage_dart.yaml b/.github/workflows/amplify_secure_storage_dart.yaml index af0f12e70d..5bacfe89ca 100644 --- a/.github/workflows/amplify_secure_storage_dart.yaml +++ b/.github/workflows/amplify_secure_storage_dart.yaml @@ -38,6 +38,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_secure_storage_example.yaml b/.github/workflows/amplify_secure_storage_example.yaml index c92b17f23f..82350165bc 100644 --- a/.github/workflows/amplify_secure_storage_example.yaml +++ b/.github/workflows/amplify_secure_storage_example.yaml @@ -62,6 +62,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -93,6 +94,7 @@ jobs: package-name: amplify_secure_storage_example working-directory: packages/secure_storage/amplify_secure_storage/example needs-aws-config: false + needs-gen2-config: false e2e_ios_test: needs: [test] uses: ./.github/workflows/e2e_ios.yaml @@ -101,6 +103,7 @@ jobs: package-name: amplify_secure_storage_example working-directory: packages/secure_storage/amplify_secure_storage/example needs-aws-config: false + needs-gen2-config: false e2e_web_test: needs: [test] uses: ./.github/workflows/e2e_web.yaml @@ -109,6 +112,7 @@ jobs: package-name: amplify_secure_storage_example working-directory: packages/secure_storage/amplify_secure_storage/example needs-aws-config: false + needs-gen2-config: false e2e_linux_test: needs: [test] uses: ./.github/workflows/e2e_linux.yaml @@ -117,6 +121,7 @@ jobs: package-name: amplify_secure_storage_example working-directory: packages/secure_storage/amplify_secure_storage/example needs-aws-config: false + needs-gen2-config: false e2e_windows_test: needs: [test] uses: ./.github/workflows/e2e_windows.yaml @@ -125,3 +130,4 @@ jobs: package-name: amplify_secure_storage_example working-directory: packages/secure_storage/amplify_secure_storage/example needs-aws-config: false + needs-gen2-config: false diff --git a/.github/workflows/amplify_secure_storage_ios.yaml b/.github/workflows/amplify_secure_storage_ios.yaml index bce64ace72..e28fd6c8ac 100644 --- a/.github/workflows/amplify_secure_storage_ios.yaml +++ b/.github/workflows/amplify_secure_storage_ios.yaml @@ -5,7 +5,6 @@ on: branches: - main - stable - - next pull_request: paths: - 'packages/secure_storage/amplify_secure_storage/**/*.yaml' @@ -15,6 +14,7 @@ on: - '.github/workflows/amplify_secure_storage_ios.yaml' schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_secure_storage_test.yaml b/.github/workflows/amplify_secure_storage_test.yaml index 665edc5e8b..c8016597e7 100644 --- a/.github/workflows/amplify_secure_storage_test.yaml +++ b/.github/workflows/amplify_secure_storage_test.yaml @@ -50,6 +50,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_storage_s3.yaml b/.github/workflows/amplify_storage_s3.yaml index dc135a2544..8eae4c2417 100644 --- a/.github/workflows/amplify_storage_s3.yaml +++ b/.github/workflows/amplify_storage_s3.yaml @@ -58,6 +58,7 @@ on: - 'packages/storage/amplify_storage_s3_dart/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_storage_s3_dart.yaml b/.github/workflows/amplify_storage_s3_dart.yaml index 1789a249bb..d1cd8f148e 100644 --- a/.github/workflows/amplify_storage_s3_dart.yaml +++ b/.github/workflows/amplify_storage_s3_dart.yaml @@ -52,6 +52,7 @@ on: - 'packages/storage/amplify_storage_s3_dart/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/amplify_storage_s3_example.yaml b/.github/workflows/amplify_storage_s3_example.yaml index 4ab6035585..76695e2074 100644 --- a/.github/workflows/amplify_storage_s3_example.yaml +++ b/.github/workflows/amplify_storage_s3_example.yaml @@ -138,6 +138,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -169,6 +170,7 @@ jobs: package-name: amplify_storage_s3_example working-directory: packages/storage/amplify_storage_s3/example needs-aws-config: true + needs-gen2-config: false e2e_ios_test: needs: [test] uses: ./.github/workflows/e2e_ios.yaml @@ -177,6 +179,7 @@ jobs: package-name: amplify_storage_s3_example working-directory: packages/storage/amplify_storage_s3/example needs-aws-config: true + needs-gen2-config: false e2e_web_test: needs: [test] uses: ./.github/workflows/e2e_web.yaml @@ -185,6 +188,7 @@ jobs: package-name: amplify_storage_s3_example working-directory: packages/storage/amplify_storage_s3/example needs-aws-config: true + needs-gen2-config: false e2e_linux_test: needs: [test] uses: ./.github/workflows/e2e_linux.yaml @@ -193,6 +197,7 @@ jobs: package-name: amplify_storage_s3_example working-directory: packages/storage/amplify_storage_s3/example needs-aws-config: true + needs-gen2-config: false e2e_windows_test: needs: [test] uses: ./.github/workflows/e2e_windows.yaml @@ -201,3 +206,4 @@ jobs: package-name: amplify_storage_s3_example working-directory: packages/storage/amplify_storage_s3/example needs-aws-config: true + needs-gen2-config: false diff --git a/.github/workflows/aws_common.yaml b/.github/workflows/aws_common.yaml index 910b67dc15..6372ce6690 100644 --- a/.github/workflows/aws_common.yaml +++ b/.github/workflows/aws_common.yaml @@ -34,6 +34,7 @@ on: - 'packages/aws_common/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/aws_json1_0_v1.yaml b/.github/workflows/aws_json1_0_v1.yaml index c3a6a3d3bb..930d10b953 100644 --- a/.github/workflows/aws_json1_0_v1.yaml +++ b/.github/workflows/aws_json1_0_v1.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/aws_json1_0_v2.yaml b/.github/workflows/aws_json1_0_v2.yaml index e516c00851..507202af7f 100644 --- a/.github/workflows/aws_json1_0_v2.yaml +++ b/.github/workflows/aws_json1_0_v2.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/aws_json1_1_v1.yaml b/.github/workflows/aws_json1_1_v1.yaml index 53d0220a2b..634508204f 100644 --- a/.github/workflows/aws_json1_1_v1.yaml +++ b/.github/workflows/aws_json1_1_v1.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/aws_json1_1_v2.yaml b/.github/workflows/aws_json1_1_v2.yaml index 6f1d3c3b26..90398c27eb 100644 --- a/.github/workflows/aws_json1_1_v2.yaml +++ b/.github/workflows/aws_json1_1_v2.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/aws_query_v1.yaml b/.github/workflows/aws_query_v1.yaml index 2db909d471..3009cb3ff7 100644 --- a/.github/workflows/aws_query_v1.yaml +++ b/.github/workflows/aws_query_v1.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/aws_query_v2.yaml b/.github/workflows/aws_query_v2.yaml index 8a0b2a98f0..9dacf8f6bf 100644 --- a/.github/workflows/aws_query_v2.yaml +++ b/.github/workflows/aws_query_v2.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/aws_signature_v4.yaml b/.github/workflows/aws_signature_v4.yaml index 2755d038ed..377dd83900 100644 --- a/.github/workflows/aws_signature_v4.yaml +++ b/.github/workflows/aws_signature_v4.yaml @@ -38,6 +38,7 @@ on: - 'packages/aws_signature_v4/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/cognito_example.yaml b/.github/workflows/cognito_example.yaml index 701a6adbe0..9f604bf749 100644 --- a/.github/workflows/cognito_example.yaml +++ b/.github/workflows/cognito_example.yaml @@ -82,6 +82,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/custom_v2.yaml b/.github/workflows/custom_v2.yaml index c108b3dff8..8225b1c48e 100644 --- a/.github/workflows/custom_v2.yaml +++ b/.github/workflows/custom_v2.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/e2e_android.yaml b/.github/workflows/e2e_android.yaml index e9353de2ed..2f75b848cb 100644 --- a/.github/workflows/e2e_android.yaml +++ b/.github/workflows/e2e_android.yaml @@ -14,6 +14,10 @@ on: description: Whether the E2E workflow needs configuration pulled from AWS required: true type: boolean + needs-gen2-config: + required: true + description: Whether the E2E workflow needs amplify_outputs from AWS + type: boolean jobs: e2e-test-android: @@ -62,6 +66,7 @@ jobs: aws-region: ${{ secrets.AWS_REGION }} scope: ${{ inputs.package-name }} secret-identifier: ${{ secrets.AWS_SECRET_IDENTIFIER }} + needs-gen2-config: ${{ inputs.needs-gen2-config }} - name: Launch Android emulator uses: ./.github/composite_actions/launch_android_emulator diff --git a/.github/workflows/e2e_ios.yaml b/.github/workflows/e2e_ios.yaml index 8ce6ba8e1f..1c14c26915 100644 --- a/.github/workflows/e2e_ios.yaml +++ b/.github/workflows/e2e_ios.yaml @@ -14,6 +14,10 @@ on: description: Whether the E2E workflow needs configuration pulled from AWS required: true type: boolean + needs-gen2-config: + required: true + description: Whether the E2E workflow needs amplify_outputs from AWS + type: boolean jobs: e2e-test-ios: @@ -60,6 +64,7 @@ jobs: aws-region: ${{ secrets.AWS_REGION }} scope: ${{ inputs.package-name }} secret-identifier: ${{ secrets.AWS_SECRET_IDENTIFIER }} + needs-gen2-config: ${{ inputs.needs-gen2-config }} - name: Run integration tests timeout-minutes: 60 diff --git a/.github/workflows/e2e_linux.yaml b/.github/workflows/e2e_linux.yaml index 39d1e2d6e2..d21313d471 100644 --- a/.github/workflows/e2e_linux.yaml +++ b/.github/workflows/e2e_linux.yaml @@ -14,6 +14,10 @@ on: description: Whether the E2E workflow needs configuration pulled from AWS required: true type: boolean + needs-gen2-config: + required: true + description: Whether the E2E workflow needs amplify_outputs from AWS + type: boolean jobs: e2e-test-linux: @@ -55,6 +59,7 @@ jobs: aws-region: ${{ secrets.AWS_REGION }} scope: ${{ inputs.package-name }} secret-identifier: ${{ secrets.AWS_SECRET_IDENTIFIER }} + needs-gen2-config: ${{ inputs.needs-gen2-config }} - name: Run integration tests timeout-minutes: 60 diff --git a/.github/workflows/e2e_web.yaml b/.github/workflows/e2e_web.yaml index 9ed561a600..db72691250 100644 --- a/.github/workflows/e2e_web.yaml +++ b/.github/workflows/e2e_web.yaml @@ -14,6 +14,10 @@ on: description: Whether the E2E workflow needs configuration pulled from AWS required: true type: boolean + needs-gen2-config: + required: true + description: Whether the E2E workflow needs amplify_outputs from AWS + type: boolean jobs: e2e-test-web: @@ -55,6 +59,7 @@ jobs: aws-region: ${{ secrets.AWS_REGION }} scope: ${{ inputs.package-name }} secret-identifier: ${{ secrets.AWS_SECRET_IDENTIFIER }} + needs-gen2-config: ${{ inputs.needs-gen2-config }} - uses: ./.github/composite_actions/setup_chromedriver diff --git a/.github/workflows/e2e_windows.yaml b/.github/workflows/e2e_windows.yaml index de1c66627b..4eea27b5f4 100644 --- a/.github/workflows/e2e_windows.yaml +++ b/.github/workflows/e2e_windows.yaml @@ -14,6 +14,10 @@ on: description: Whether the E2E workflow needs configuration pulled from AWS required: true type: boolean + needs-gen2-config: + required: true + description: Whether the E2E workflow needs amplify_outputs from AWS + type: boolean jobs: e2e-test-windows: @@ -58,6 +62,7 @@ jobs: aws-region: ${{ secrets.AWS_REGION }} scope: ${{ inputs.package-name }} secret-identifier: ${{ secrets.AWS_SECRET_IDENTIFIER }} + needs-gen2-config: ${{ inputs.needs-gen2-config }} - name: Run integration tests timeout-minutes: 60 diff --git a/.github/workflows/ec2_query_v1.yaml b/.github/workflows/ec2_query_v1.yaml index 10294e1309..a39790929b 100644 --- a/.github/workflows/ec2_query_v1.yaml +++ b/.github/workflows/ec2_query_v1.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/ec2_query_v2.yaml b/.github/workflows/ec2_query_v2.yaml index aff8d603a3..8677435585 100644 --- a/.github/workflows/ec2_query_v2.yaml +++ b/.github/workflows/ec2_query_v2.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/pub_server.yaml b/.github/workflows/pub_server.yaml index d1939b84db..f0fa6f8bd3 100644 --- a/.github/workflows/pub_server.yaml +++ b/.github/workflows/pub_server.yaml @@ -32,6 +32,7 @@ on: - 'packages/test/pub_server/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/rest_json1_v1.yaml b/.github/workflows/rest_json1_v1.yaml index f73d4a3f4e..3467fd045a 100644 --- a/.github/workflows/rest_json1_v1.yaml +++ b/.github/workflows/rest_json1_v1.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/rest_json1_v2.yaml b/.github/workflows/rest_json1_v2.yaml index ff2d1db9d0..567ecc3cdb 100644 --- a/.github/workflows/rest_json1_v2.yaml +++ b/.github/workflows/rest_json1_v2.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/rest_xml_v1.yaml b/.github/workflows/rest_xml_v1.yaml index 80283a9983..a6beb26a8e 100644 --- a/.github/workflows/rest_xml_v1.yaml +++ b/.github/workflows/rest_xml_v1.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/rest_xml_v2.yaml b/.github/workflows/rest_xml_v2.yaml index 29c13d8527..b5539ae5c9 100644 --- a/.github/workflows/rest_xml_v2.yaml +++ b/.github/workflows/rest_xml_v2.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/rest_xml_with_namespace_v1.yaml b/.github/workflows/rest_xml_with_namespace_v1.yaml index 613ccc279f..c05a4a40e4 100644 --- a/.github/workflows/rest_xml_with_namespace_v1.yaml +++ b/.github/workflows/rest_xml_with_namespace_v1.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/rest_xml_with_namespace_v2.yaml b/.github/workflows/rest_xml_with_namespace_v2.yaml index fba84ed723..94347a02a8 100644 --- a/.github/workflows/rest_xml_with_namespace_v2.yaml +++ b/.github/workflows/rest_xml_with_namespace_v2.yaml @@ -50,6 +50,7 @@ on: - 'packages/smithy/smithy_aws/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/smithy.yaml b/.github/workflows/smithy.yaml index 9fb81d57b1..3cd48f2a7f 100644 --- a/.github/workflows/smithy.yaml +++ b/.github/workflows/smithy.yaml @@ -32,6 +32,7 @@ on: - 'packages/smithy/smithy/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/smithy_aws.yaml b/.github/workflows/smithy_aws.yaml index 1f5d6ca96d..e804b020c4 100644 --- a/.github/workflows/smithy_aws.yaml +++ b/.github/workflows/smithy_aws.yaml @@ -40,6 +40,7 @@ on: - 'packages/smithy/smithy_aws/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/smithy_codegen.yaml b/.github/workflows/smithy_codegen.yaml index 8ed96dada8..b394277db2 100644 --- a/.github/workflows/smithy_codegen.yaml +++ b/.github/workflows/smithy_codegen.yaml @@ -44,6 +44,7 @@ on: - 'packages/smithy/smithy_codegen/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/storage_s3_example.yaml b/.github/workflows/storage_s3_example.yaml index 8961e6af11..165642f3c8 100644 --- a/.github/workflows/storage_s3_example.yaml +++ b/.github/workflows/storage_s3_example.yaml @@ -82,6 +82,7 @@ on: - 'packages/worker_bee/worker_bee_builder/pubspec.yaml' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/worker_bee.yaml b/.github/workflows/worker_bee.yaml index 919306e44e..6be85b836f 100644 --- a/.github/workflows/worker_bee.yaml +++ b/.github/workflows/worker_bee.yaml @@ -30,6 +30,7 @@ on: - 'packages/worker_bee/worker_bee/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.github/workflows/worker_bee_builder.yaml b/.github/workflows/worker_bee_builder.yaml index d9a907a9fa..37a61aa78f 100644 --- a/.github/workflows/worker_bee_builder.yaml +++ b/.github/workflows/worker_bee_builder.yaml @@ -34,6 +34,7 @@ on: - 'packages/worker_bee/worker_bee_builder/test/**/*' schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash diff --git a/.gitignore b/.gitignore index 571d9accda..983c5608a4 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ amplifyconfiguration.dart amplify-build-config.json amplify-gradle-config.json amplifytools.xcconfig +amplify_outputs.dart # Smithy .smithy.lsp.log diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 93a15d4fac..77a8029273 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -97,11 +97,9 @@ $ aft bootstrap #### Packages inside Amplify Flutter -- [amplify_flutter](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify_flutter) -- [amplify_auth_plugin_interface](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify_auth_plugin_interface) -- [amplify_auth_cognito](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify_auth_cognito) -- [amplify_analytics_plugin_interface](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify_analytics_plugin_interface) -- [amplify_analytics_pinpoint](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify_analytics_pinpoint) +- [amplify_flutter](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify/amplify_flutter) +- [amplify_auth_cognito](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/auth/amplify_auth_cognito) +- [amplify_analytics_pinpoint](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/analytics/amplify_analytics_pinpoint) ### Platform Setup diff --git a/README.md b/README.md index d91d737470..cd1ae88ca2 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ We are iterating and looking for feedback and collaboration, so please [**let us [Getting Started Guide](https://docs.amplify.aws/start/getting-started/setup/q/integration/flutter) -⚠️ **Amplify Flutter v0 is now in Maintenance Mode until July 19th, 2024. This means that we will continue to include updates to ensure compatibility with backend services and security. No new features will be introduced in v0.** +⚠️ **Amplify Flutter v1 is now in Maintenance Mode until April 30th, 2025. This means that we will continue to include updates to ensure compatibility with backend services and security. No new features will be introduced in v1.** -Please use the latest version (v1) of Amplify Flutter. If you are currently using v0, follow [these instructions](https://docs.amplify.aws/lib/project-setup/upgrade-guide/q/platform/flutter/) to upgrade to v1. +Please use the latest version (v2) of Amplify Flutter. If you are currently using v1, follow [these instructions](https://docs.amplify.aws/lib/project-setup/upgrade-guide/q/platform/flutter/) to upgrade to v2. ## Supported Amplify Libraries @@ -35,7 +35,7 @@ We follow [semantic versioning](https://dart.dev/tools/pub/versioning#semantic-v When Amplify adds a new enumeration entry or sealed class subtype, we will publish a new **minor** version of the library. -Applications that use a `switch` statement to evaluate all members of an enumerated type can add a `default` clause to prevent +Applications that use a `switch` statement to evaluate all members of an enumerated type can add a `default` clause to prevent new cases from causing compile warnings or errors. #### Semantic versioning and dependencies update @@ -44,15 +44,15 @@ We follow [semantic versioning for updating our dependencies](https://semver.org ## Category / Platform Support -| Category | Android | iOS | Web | Windows | MacOS | Linux | -| -------------- | :-----: | :---: | :---: | :-----: | :---: | :---: | -| Analytics | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| API (REST) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| API (GraphQL) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| Authentication | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| DataStore | ✅ | ✅ | 🔴 | 🔴 | 🔴 | 🔴 | -| Storage | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| Notifications | ✅ | ✅ | 🔴 | 🔴 | 🔴 | 🔴 | +| Category | Android | iOS | Web | Windows | MacOS | Linux | +| -------------- | :-----: | :-: | :-: | :-----: | :---: | :---: | +| Analytics | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| API (REST) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| API (GraphQL) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Authentication | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| DataStore | ✅ | ✅ | 🔴 | 🔴 | 🔴 | 🔴 | +| Storage | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Notifications | ✅ | ✅ | 🔴 | 🔴 | 🔴 | 🔴 | ## Documentation @@ -119,9 +119,9 @@ https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html ```yaml dependencies: - amplify_auth_cognito: ^1.0.0 - amplify_authenticator: ^1.0.0 - amplify_flutter: ^1.0.0 + amplify_auth_cognito: ^2.0.0 + amplify_authenticator: ^2.0.0 + amplify_flutter: ^2.0.0 flutter: sdk: flutter ``` diff --git a/canaries/.gitignore b/canaries/.gitignore index 889401e5cc..c0ff8e3dda 100644 --- a/canaries/.gitignore +++ b/canaries/.gitignore @@ -65,5 +65,7 @@ amplifytools.xcconfig **.sample #amplify-do-not-edit-end +amplify_outputs.dart + team-provider-info.json amplifyconfiguration.dart diff --git a/infra-gen2/.gitignore b/infra-gen2/.gitignore new file mode 100644 index 0000000000..40b878db5b --- /dev/null +++ b/infra-gen2/.gitignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/infra-gen2/analysis_options.yaml b/infra-gen2/analysis_options.yaml new file mode 100644 index 0000000000..a853f2a2d6 --- /dev/null +++ b/infra-gen2/analysis_options.yaml @@ -0,0 +1,5 @@ +include: package:amplify_lints/library.yaml + +analyzer: + exclude: + - backends/* diff --git a/infra-gen2/backends/api/apiMultiAuth/.gitignore b/infra-gen2/backends/api/apiMultiAuth/.gitignore new file mode 100644 index 0000000000..03d4668c65 --- /dev/null +++ b/infra-gen2/backends/api/apiMultiAuth/.gitignore @@ -0,0 +1,5 @@ +# amplify +node_modules +.amplify +amplify_outputs* +amplifyconfiguration* diff --git a/infra-gen2/backends/api/apiMultiAuth/amplify/auth/resource.ts b/infra-gen2/backends/api/apiMultiAuth/amplify/auth/resource.ts new file mode 100644 index 0000000000..14a8886cd9 --- /dev/null +++ b/infra-gen2/backends/api/apiMultiAuth/amplify/auth/resource.ts @@ -0,0 +1,11 @@ +import { defineAuth } from '@aws-amplify/backend'; + +/** + * Define and configure your auth resource + * @see https://docs.amplify.aws/gen2/build-a-backend/auth + */ +export const auth = defineAuth({ + loginWith: { + email: true, + }, +}); diff --git a/infra-gen2/backends/api/apiMultiAuth/amplify/backend.ts b/infra-gen2/backends/api/apiMultiAuth/amplify/backend.ts new file mode 100644 index 0000000000..b793ab7c3b --- /dev/null +++ b/infra-gen2/backends/api/apiMultiAuth/amplify/backend.ts @@ -0,0 +1,11 @@ +import { defineBackend } from '@aws-amplify/backend'; +import { auth } from './auth/resource'; +import { data } from './data/resource'; + +/** + * @see https://docs.amplify.aws/react/build-a-backend/ to add storage, functions, and more + */ +defineBackend({ + auth, + data, +}); diff --git a/infra-gen2/backends/api/apiMultiAuth/amplify/data/resource.ts b/infra-gen2/backends/api/apiMultiAuth/amplify/data/resource.ts new file mode 100644 index 0000000000..7d90fddf33 --- /dev/null +++ b/infra-gen2/backends/api/apiMultiAuth/amplify/data/resource.ts @@ -0,0 +1,163 @@ +import { a, defineData, type ClientSchema } from "@aws-amplify/backend"; + +const schema = a.schema({ + Todo: a + .model({ + content: a.string(), + isDone: a.boolean(), + }) + .authorization((allow) => [allow.owner()]), + + lowerCase: a + .model({ + id: a.id().required(), + name: a.string().required(), + }) + .authorization((allow) => [ + allow.publicApiKey().to(["read"]), + allow.guest().to(["read"]), + allow.authenticated("identityPool").to(["read"]), + allow.authenticated("userPools").to(["read"]), + allow.owner().to(["read", "create", "update", "delete"]), + ]), + + OwnerOnly: a + .model({ + id: a.id().required(), + name: a.string().required(), + }) + .authorization((allow) => [allow.owner()]), + + Sample: a + .model({ + id: a.id().required(), + name: a.string(), + number: a.integer(), + flag: a.boolean(), + data: a.datetime(), + rootbeer: a.float(), + }) + .authorization((allow) => [ + allow.publicApiKey(), + allow.guest().to(["read"]), + allow.authenticated("identityPool").to(["read"]), + allow.authenticated("userPools").to(["read"]), + allow.owner().to(["read", "create", "update", "delete"]), + ]), + + Blog: a + .model({ + id: a.id().required(), + name: a.string().required(), + posts: a.hasMany("Post", "blogID"), + }) + .authorization((allow) => [ + allow.publicApiKey().to(["read"]), + allow.guest().to(["read"]), + allow.authenticated("identityPool").to(["read"]), + allow.authenticated("userPools").to(["read"]), + allow.owner().to(["read", "create", "update", "delete"]), + ]), + + Post: a + .model({ + id: a.id().required(), + title: a.string().required(), + rating: a.integer().required(), + blogID: a.id().required(), + blog: a.belongsTo("Blog", "blogID"), + comments: a.hasMany("Comment", "postID"), + }) + .secondaryIndexes((index) => [index("blogID").name("blogID")]) + .authorization((allow) => [ + allow.guest().to(["read"]), + allow.authenticated("identityPool").to(["read"]), + allow.authenticated("userPools").to(["read"]), + allow.owner().to(["read", "create", "update", "delete"]), + ]), + + Comment: a + .model({ + id: a.id(), + content: a.string(), + postID: a.id(), + post: a.belongsTo("Post", "postID"), + }) + .authorization((allow) => [ + allow.authenticated("identityPool").to(["read"]), + allow.authenticated("userPools").to(["read"]), + allow.owner().to(["read", "create", "update", "delete"]), + ]), + + CpkOneToOneBidirectionalParentCD: a + .model({ + customId: a.id().required(), + name: a.string().required(), + implicitChild: a.hasOne("CpkOneToOneBidirectionalChildImplicitCD", [ + "parentID", + "parentName", + ]), + explicitChild: a.hasOne("CpkOneToOneBidirectionalChildExplicitCD", [ + "belongsToParentID", + "belongsToParentName", + ]), + }) + .identifier(["customId", "name"]) + .authorization((allow) => [allow.authenticated("identityPool")]), + + CpkOneToOneBidirectionalChildImplicitCD: a + .model({ + id: a.id(), + name: a.string().required(), + parentID: a.id(), + parentName: a.string(), + belongsToParent: a.belongsTo("CpkOneToOneBidirectionalParentCD", [ + "parentID", + "parentName", + ]), + }) + .authorization((allow) => [allow.authenticated("identityPool")]), + + CpkOneToOneBidirectionalChildExplicitCD: a + .model({ + id: a.id().required(), + name: a.string().required(), + belongsToParentID: a.id(), + belongsToParentName: a.string(), + belongsToParent: a.belongsTo("CpkOneToOneBidirectionalParentCD", [ + "belongsToParentID", + "belongsToParentName", + ]), + }) + .identifier(["id", "name"]) + .authorization((allow) => [allow.authenticated("identityPool")]), + + CpkIntIndexes: a + .model({ + name: a.string().required(), + fieldA: a.integer().required(), + fieldB: a.integer().required(), + }) + .identifier(["name", "fieldA", "fieldB"]) + .authorization((allow) => [allow.owner()]), + + CpkIntPrimaryKey: a + .model({ + intAsId: a.integer().required(), + fieldA: a.integer().required(), + fieldB: a.integer().required(), + }) + .identifier(["intAsId", "fieldA", "fieldB"]) + .authorization((allow) => [allow.owner()]), +}); + +export type Schema = ClientSchema; + +export const data = defineData({ + name: "apiMultiAuth", + schema, + authorizationModes: { + defaultAuthorizationMode: "userPool", + apiKeyAuthorizationMode: { expiresInDays: 30 }, + }, +}); diff --git a/infra-gen2/backends/api/apiMultiAuth/amplify/package.json b/infra-gen2/backends/api/apiMultiAuth/amplify/package.json new file mode 100644 index 0000000000..aead43de36 --- /dev/null +++ b/infra-gen2/backends/api/apiMultiAuth/amplify/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} \ No newline at end of file diff --git a/infra-gen2/backends/api/apiMultiAuth/amplify/tsconfig.json b/infra-gen2/backends/api/apiMultiAuth/amplify/tsconfig.json new file mode 100644 index 0000000000..4eb4ab26ca --- /dev/null +++ b/infra-gen2/backends/api/apiMultiAuth/amplify/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "es2022", + "module": "es2022", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "paths": { + "$amplify/*": [ + "../.amplify/generated/*" + ] + } + } +} \ No newline at end of file diff --git a/infra-gen2/backends/api/apiMultiAuth/package.json b/infra-gen2/backends/api/apiMultiAuth/package.json new file mode 100644 index 0000000000..94af1924c3 --- /dev/null +++ b/infra-gen2/backends/api/apiMultiAuth/package.json @@ -0,0 +1,5 @@ +{ + "name": "api-multi-auth", + "version": "1.0.0", + "main": "index.js" +} diff --git a/infra-gen2/package-lock.json b/infra-gen2/package-lock.json new file mode 100644 index 0000000000..f1a3353127 --- /dev/null +++ b/infra-gen2/package-lock.json @@ -0,0 +1,19711 @@ +{ + "name": "root", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "root", + "workspaces": [ + "backends/analytics/*", + "backends/api/*", + "backends/auth/*", + "backends/storage/*" + ], + "dependencies": { + "aws-amplify": "^6.3.6" + }, + "devDependencies": { + "@aws-amplify/backend": "^1.0.3", + "@aws-amplify/backend-cli": "^1.0.4", + "aws-cdk": "^2.145.0", + "aws-cdk-lib": "^2.145.0", + "constructs": "^10.3.0", + "esbuild": "^0.21.5", + "tsx": "^4.15.4", + "typescript": "^5.4.5" + } + }, + "backends/api/mainInteg": { + "name": "maininteg", + "version": "1.0.0" + }, + "backends/auth/mainInteg": { + "name": "auth-main-integ", + "version": "1.0.0" + }, + "backends/auth/username": { + "version": "1.0.0" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ardatan/aggregate-error": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz", + "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==", + "dev": true, + "dependencies": { + "tslib": "~2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/aggregate-error/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", + "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.4.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "relay-runtime": "12.0.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "relay-compiler": "bin/relay-compiler" + }, + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@ardatan/sync-fetch": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", + "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ardatan/sync-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@aws-amplify/analytics": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/@aws-amplify/analytics/-/analytics-7.0.35.tgz", + "integrity": "sha512-+PjJSQz59VlOGF4HdvLkCzNpYkkvFrob+I4yLK9jYDj+sZzbKiECK+IjqWpOy4iO1sZo36+rpET6EPAQOBCQbA==", + "dependencies": { + "@aws-sdk/client-firehose": "3.398.0", + "@aws-sdk/client-kinesis": "3.398.0", + "@aws-sdk/client-personalize-events": "3.398.0", + "@smithy/util-utf8": "2.0.0", + "tslib": "^2.5.0" + }, + "peerDependencies": { + "@aws-amplify/core": "^6.1.0" + } + }, + "node_modules/@aws-amplify/analytics/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/analytics/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/analytics/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.0.0.tgz", + "integrity": "sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/api": { + "version": "6.0.37", + "resolved": "https://registry.npmjs.org/@aws-amplify/api/-/api-6.0.37.tgz", + "integrity": "sha512-fwHWBdjbljJ5nUmWdREm1Ydw04KEAw7WfTZmkEaRJ4LZo6sPu5e5ucb/7mKUzt/xrlKBjKkqSkFusBUkz+S24w==", + "dependencies": { + "@aws-amplify/api-graphql": "4.1.6", + "@aws-amplify/api-rest": "4.0.35", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-amplify/api-graphql": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-4.1.6.tgz", + "integrity": "sha512-FwsmqUracVPYW2sUqpdBrUSxCYYEWcye8/ZedvFvF5baAB1hwVtt3XMzpP50iCJnb+ueNxw0Rbc5dpkt+ZQ6nQ==", + "dependencies": { + "@aws-amplify/api-rest": "4.0.35", + "@aws-amplify/core": "6.3.2", + "@aws-amplify/data-schema": "^1.0.0", + "@aws-sdk/types": "3.387.0", + "graphql": "15.8.0", + "rxjs": "^7.8.1", + "tslib": "^2.5.0", + "uuid": "^9.0.0" + } + }, + "node_modules/@aws-amplify/api-graphql/node_modules/@aws-sdk/types": { + "version": "3.387.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.387.0.tgz", + "integrity": "sha512-YTjFabNwjTF+6yl88f0/tWff018qmmgMmjlw45s6sdVKueWxdxV68U7gepNLF2nhaQPZa6FDOBoA51NaviVs0Q==", + "dependencies": { + "@smithy/types": "^2.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/api-graphql/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/api-rest": { + "version": "4.0.35", + "resolved": "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-4.0.35.tgz", + "integrity": "sha512-e39VxlCIKqbI1KWIKFIG0a3/grJGK5BKM3qobJXEyxDhtljr1PZy8URUahpyIV0IJtD4XEj+IXIAN1e0rQztCw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "peerDependencies": { + "@aws-amplify/core": "^6.1.0" + } + }, + "node_modules/@aws-amplify/appsync-modelgen-plugin": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/appsync-modelgen-plugin/-/appsync-modelgen-plugin-2.12.2.tgz", + "integrity": "sha512-934QqusQaZpj11NM8xf84C4sgCnW1TINL1IgBpQzk9Zq4MVPuGZK1SO/fsSiriqBtGoMcpHSmMVZ94t+bXwDBg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^1.18.8", + "@graphql-codegen/visitor-plugin-common": "^1.22.0", + "@graphql-tools/utils": "^6.0.18", + "chalk": "^3.0.0", + "change-case": "^4.1.1", + "graphql-transformer-common": "^4.25.1", + "lower-case-first": "^2.0.1", + "pluralize": "^8.0.0", + "strip-indent": "^3.0.0", + "ts-dedent": "^1.1.0" + }, + "peerDependencies": { + "graphql": "^15.5.0" + } + }, + "node_modules/@aws-amplify/auth": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/auth/-/auth-6.3.5.tgz", + "integrity": "sha512-vPg+ipug3S1Q698ixWg+q7GV5qOrJJSMZQ0oTLmy1sPcb/o7SJLd6DmwrmguDfgue6x6JDELSAZjaKKJZerA3g==", + "dependencies": { + "tslib": "^2.5.0" + }, + "peerDependencies": { + "@aws-amplify/core": "^6.1.0" + } + }, + "node_modules/@aws-amplify/auth-construct": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/auth-construct/-/auth-construct-1.1.4.tgz", + "integrity": "sha512-1KoYDelhIKzCFayvKiE1g3V8ezwLOeO7QAchzKYAypsT0U2Jt60FbuFe97IU2eKPb1AjeZhk76oJGuP+HKXc5g==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-sdk/util-arn-parser": "^3.465.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend/-/backend-1.0.3.tgz", + "integrity": "sha512-/NNEtmu59v4x8Z/vLSmZnw/2PBMQ6RlB8E9glfldf6COs0DOacx4UeoPLRc7+E7eLWpTQWl4mPdSiWdBh5jb+w==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-auth": "^1.0.2", + "@aws-amplify/backend-data": "^1.0.2", + "@aws-amplify/backend-function": "^1.0.3", + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/backend-secret": "^1.0.0", + "@aws-amplify/backend-storage": "^1.0.2", + "@aws-amplify/client-config": "^1.0.3", + "@aws-amplify/data-schema": "^1.0.0", + "@aws-amplify/platform-core": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-sdk/client-amplify": "^3.465.0", + "lodash.snakecase": "^4.1.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend-auth": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-auth/-/backend-auth-1.0.2.tgz", + "integrity": "sha512-+UxRsH5ZZhppkyZjhbAuWrVV7L6eHKWEOcF/07cnz8yoZCcilUK2pLbw1tb60WjskV2S45Fi8QmXy4nP+ovJMw==", + "dev": true, + "dependencies": { + "@aws-amplify/auth-construct": "^1.1.1", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend-cli": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-cli/-/backend-cli-1.0.4.tgz", + "integrity": "sha512-Hgh8hQAbB3KjaJ2hfwEqs+Ubp86ewIvtmvao370el71dmPtpRQ7PKmsYJtmjvt2fvtM0wFjeTui7slNBLKYzwA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-deployer": "^1.0.0", + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-secret": "^1.0.0", + "@aws-amplify/cli-core": "^1.0.0", + "@aws-amplify/client-config": "^1.0.3", + "@aws-amplify/deployed-backend-client": "^1.0.1", + "@aws-amplify/form-generator": "^1.0.0", + "@aws-amplify/model-generator": "^1.0.1", + "@aws-amplify/platform-core": "^1.0.1", + "@aws-amplify/sandbox": "^1.0.3", + "@aws-amplify/schema-generator": "^1.0.0", + "@aws-sdk/client-amplify": "^3.465.0", + "@aws-sdk/client-cloudformation": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0", + "@aws-sdk/credential-provider-ini": "^3.465.0", + "@aws-sdk/credential-providers": "^3.465.0", + "@aws-sdk/region-config-resolver": "^3.465.0", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.2.5", + "envinfo": "^7.11.0", + "execa": "^8.0.1", + "is-ci": "^3.0.1", + "open": "^9.1.0", + "yargs": "^17.7.2", + "zod": "^3.22.2" + }, + "bin": { + "amplify": "lib/ampx.js", + "ampx": "lib/ampx.js" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@aws-sdk/types": "^3.465.0" + } + }, + "node_modules/@aws-amplify/backend-data": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-data/-/backend-data-1.0.2.tgz", + "integrity": "sha512-6yuZxjD2MwwqehR8aLdnQPBVmOgsFCNcOGIZx9CHY7wt3bh7KWT5xQndfXjVrVlh4WhlZ36ZeC35hssfYa4yuQ==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/data-construct": "^1.8.0", + "@aws-amplify/data-schema-types": "^1.0.0", + "@aws-amplify/plugin-types": "^1.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend-deployer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-deployer/-/backend-deployer-1.0.0.tgz", + "integrity": "sha512-rBqEIi25gV2JnCwj6M+OFWMJXxMzrlJrSZt4JCGIfqQzMffm4MEIklYEfcVht4J3zBzL7gDXn1ejNjWqtiLm4w==", + "dev": true, + "dependencies": { + "@aws-amplify/platform-core": "^1.0.0", + "@aws-amplify/plugin-types": "^1.0.0", + "execa": "^8.0.1", + "tsx": "^4.6.1" + }, + "peerDependencies": { + "aws-cdk": "^2.127.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@aws-amplify/backend-function": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-function/-/backend-function-1.0.3.tgz", + "integrity": "sha512-eEfon9yEsoXHqYv+AHXvIA73vGqvYYj8MvjJkD8YtcKbpAwCJuZJgAKZ8xL4Et3iZTm7B4hMX+4+zu9jt7QPhA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0", + "execa": "^8.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend-output-schemas": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-1.1.0.tgz", + "integrity": "sha512-6qOjtRfSBOzGA2aH+I5oqpoXgMuhEo0clOufgxApid9KyS1ygWKRNBlwXKUh+do2PuM3XEhBHC4x0md5ayFRRQ==", + "dev": true, + "peerDependencies": { + "zod": "^3.22.2" + } + }, + "node_modules/@aws-amplify/backend-output-storage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-output-storage/-/backend-output-storage-1.0.1.tgz", + "integrity": "sha512-JjunSz4qJzhVNU/Dsz37gpJVbckY/jR0cEyun9XHvnFYvR41gwyraEP9P1pL+rO3+CFtCqxPMFgp5Ym4at+EyQ==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/platform-core": "^1.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0" + } + }, + "node_modules/@aws-amplify/backend-secret": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-secret/-/backend-secret-1.0.0.tgz", + "integrity": "sha512-0FrhjAK5eCrybBi9XCxxz+JxWbqJtgzz44tkVvS8Dmt9Eh1qOtw1XUMuZ7M50oqs5ZNRb/dBLgmWUzlv5oWa4g==", + "dev": true, + "dependencies": { + "@aws-amplify/platform-core": "^1.0.0", + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-sdk/client-ssm": "^3.465.0" + } + }, + "node_modules/@aws-amplify/backend-storage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-storage/-/backend-storage-1.0.3.tgz", + "integrity": "sha512-Z2AEE0y4AoHD9ZsWxEnBNKOYldne77nx68GuU9iMYu0vTiFAk/y3TAx1pWBbme2v6XJ0RZm1ahQIYMk9Bj9KfA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/cli-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/cli-core/-/cli-core-1.0.0.tgz", + "integrity": "sha512-mH1dcfjyzmDoXr5yDux10Y87Hf6nwIYR5haedC1gHlehDHPes489y1tyg+aPapeQkLoDO2cO/OnRBzs3Hfu1KA==", + "dev": true, + "dependencies": { + "@aws-amplify/platform-core": "^1.0.0", + "@inquirer/prompts": "^3.0.0", + "execa": "^8.0.1", + "kleur": "^4.1.5" + } + }, + "node_modules/@aws-amplify/client-config": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/client-config/-/client-config-1.0.4.tgz", + "integrity": "sha512-u/FUzHVuGavge9sxAqXejRa6SvhwJd1mlP9reGlhDvbohMla4KqMWZyyNMbiR9AAEAeAjbW5+8rhan0Rbd64AQ==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/deployed-backend-client": "^1.0.2", + "@aws-amplify/model-generator": "^1.0.1", + "@aws-amplify/platform-core": "^1.0.1", + "zod": "^3.22.2" + }, + "peerDependencies": { + "@aws-sdk/client-amplify": "^3.465.0", + "@aws-sdk/client-cloudformation": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0" + } + }, + "node_modules/@aws-amplify/codegen-ui": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/codegen-ui/-/codegen-ui-2.20.1.tgz", + "integrity": "sha512-BPe056jGzZ/dPVQwEeq/uTG1bDzbBWpyvNrVpRpYkxcFR3zOt0SBAMgmSAPcTfJZjO1vCv5US24esE7Vjsi+3g==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "yup": "^0.32.11" + } + }, + "node_modules/@aws-amplify/codegen-ui-react": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/codegen-ui-react/-/codegen-ui-react-2.20.1.tgz", + "integrity": "sha512-9GVHoxoOfXiDjF4pBASVbkDH4NDvQC4dAhj7vyUs4DiQSS87J3WB6ydypQpQI4OHYYoD07XOaBSVPi+6XGyDfw==", + "dev": true, + "dependencies": { + "@aws-amplify/codegen-ui": "2.20.1", + "@typescript/vfs": "~1.3.5", + "pluralize": "^8.0.0", + "semver": "^7.5.4", + "typescript": "<=4.5.0" + }, + "optionalDependencies": { + "prettier": "2.3.2" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@aws-amplify/codegen-ui-react/node_modules/prettier": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@aws-amplify/codegen-ui-react/node_modules/typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@aws-amplify/core": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/core/-/core-6.3.2.tgz", + "integrity": "sha512-ulRpIIBVIbnouwNyd9kSwXXcPbwLP+jq2ZYbc6xjpH/8Vo+PwzinTecdi01lUdZC6wRJCKZYNoGYwdA+QAR2qw==", + "dependencies": { + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/types": "3.398.0", + "@smithy/util-hex-encoding": "2.0.0", + "@types/uuid": "^9.0.0", + "js-cookie": "^3.0.5", + "rxjs": "^7.8.1", + "tslib": "^2.5.0", + "uuid": "^9.0.0" + } + }, + "node_modules/@aws-amplify/core/node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/core/node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-amplify/core/node_modules/@aws-sdk/types": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.398.0.tgz", + "integrity": "sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==", + "dependencies": { + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/core/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/core/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/core/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/core/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz", + "integrity": "sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/core/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/data-construct": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-construct/-/data-construct-1.8.5.tgz", + "integrity": "sha512-Z//AsEmAasQw1a6cS3fGe38ct7KRo6WxncW5/brgCB1riOPYuopvxaUsgl9T2J4mb366LzRObF7xNqJNJhnCwg==", + "bundleDependencies": [ + "@aws-amplify/backend-output-schemas", + "@aws-amplify/backend-output-storage", + "@aws-amplify/graphql-transformer", + "@aws-amplify/graphql-transformer-core", + "@aws-amplify/graphql-transformer-interfaces", + "zod", + "@aws-amplify/graphql-auth-transformer", + "@aws-amplify/graphql-default-value-transformer", + "@aws-amplify/graphql-directives", + "@aws-amplify/graphql-function-transformer", + "@aws-amplify/graphql-http-transformer", + "@aws-amplify/graphql-index-transformer", + "@aws-amplify/graphql-maps-to-transformer", + "@aws-amplify/graphql-model-transformer", + "@aws-amplify/graphql-predictions-transformer", + "@aws-amplify/graphql-relational-transformer", + "@aws-amplify/graphql-searchable-transformer", + "@aws-amplify/graphql-sql-transformer", + "@aws-amplify/platform-core", + "@aws-amplify/plugin-types", + "fs-extra", + "graphql", + "graphql-transformer-common", + "hjson", + "lodash", + "md5", + "object-hash", + "ts-dedent", + "charenc", + "crypt", + "graceful-fs", + "graphql-mapping-template", + "immer", + "is-buffer", + "jsonfile", + "libphonenumber-js", + "pluralize", + "universalify" + ], + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^0.4.0", + "@aws-amplify/backend-output-storage": "^0.2.2", + "@aws-amplify/graphql-api-construct": "1.9.5", + "@aws-amplify/graphql-auth-transformer": "3.5.5", + "@aws-amplify/graphql-default-value-transformer": "2.3.7", + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-function-transformer": "2.1.22", + "@aws-amplify/graphql-http-transformer": "2.1.22", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-maps-to-transformer": "3.4.17", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-predictions-transformer": "2.1.22", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-searchable-transformer": "2.7.3", + "@aws-amplify/graphql-sql-transformer": "0.3.3", + "@aws-amplify/graphql-transformer": "1.5.7", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "@aws-amplify/platform-core": "^0.2.0", + "@aws-amplify/plugin-types": "^0.4.1", + "charenc": "^0.0.2", + "crypt": "^0.0.2", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.2.11", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "immer": "^9.0.12", + "is-buffer": "^2.0.5", + "jsonfile": "^6.1.0", + "libphonenumber-js": "1.9.47", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "pluralize": "^8.0.0", + "ts-dedent": "^2.0.0", + "universalify": "^2.0.0", + "zod": "^3.22.3" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/backend-output-schemas": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "zod": "^3.21.4" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/backend-output-storage": { + "version": "0.2.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/backend-output-schemas": "^0.4.0", + "@aws-amplify/platform-core": "^0.2.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.103.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-auth-transformer": { + "version": "3.5.5", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "lodash": "^4.17.21", + "md5": "^2.3.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-default-value-transformer": { + "version": "2.3.7", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "libphonenumber-js": "1.9.47" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-directives": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-function-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-http-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-index-transformer": { + "version": "2.4.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-maps-to-transformer": { + "version": "3.4.17", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-model-transformer": { + "version": "2.10.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-predictions-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-relational-transformer": { + "version": "2.5.5", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "immer": "^9.0.12" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-searchable-transformer": { + "version": "2.7.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-sql-transformer": { + "version": "0.3.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer": { + "version": "1.5.7", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-auth-transformer": "3.5.5", + "@aws-amplify/graphql-default-value-transformer": "2.3.7", + "@aws-amplify/graphql-function-transformer": "2.1.22", + "@aws-amplify/graphql-http-transformer": "2.1.22", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-maps-to-transformer": "3.4.17", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-predictions-transformer": "2.1.22", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-searchable-transformer": "2.7.3", + "@aws-amplify/graphql-sql-transformer": "0.3.3", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer-core": { + "version": "2.8.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "fs-extra": "^8.1.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "ts-dedent": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer-interfaces": { + "version": "3.8.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/platform-core": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/plugin-types": "^0.4.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/plugin-types": { + "version": "0.4.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "aws-cdk-lib": "^2.103.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/charenc": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/crypt": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/fs-extra": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql": { + "version": "15.8.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql-mapping-template": { + "version": "4.20.16", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql-transformer-common": { + "version": "4.30.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "md5": "^2.2.1", + "pluralize": "8.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/hjson": { + "version": "3.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "hjson": "bin/hjson" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/immer": { + "version": "9.0.21", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/libphonenumber-js": { + "version": "1.9.47", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/md5": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/md5/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/object-hash": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/pluralize": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/ts-dedent": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/zod": { + "version": "3.22.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@aws-amplify/data-schema": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-schema/-/data-schema-1.3.1.tgz", + "integrity": "sha512-GJa1bficIFNKWpRQTbLx+JBCr3Oqm/2t20I1v8Q9qzZKm9dZs8tcnsGBXiEmxRK2uPM7cyXqxHIbPWn7xs7z7A==", + "dependencies": { + "@aws-amplify/data-schema-types": "*", + "@types/aws-lambda": "^8.10.134", + "rxjs": "^7.8.1" + } + }, + "node_modules/@aws-amplify/data-schema-types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-schema-types/-/data-schema-types-1.0.1.tgz", + "integrity": "sha512-+hRNzVuVkhjLl7Oxcse087y/PYKSjCETHE0KnRNYzQy5f/dzYw1sE8ui76bk5TR2O+vs7f8P42Ti90sWOgSzSQ==", + "dependencies": { + "graphql": "15.8.0", + "rxjs": "^7.8.1" + } + }, + "node_modules/@aws-amplify/datastore": { + "version": "5.0.37", + "resolved": "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-5.0.37.tgz", + "integrity": "sha512-J7h4wZ+Iu8dKWnick60ScxI5RVldCIXeOLd3NVubjp1exBZbfy84WwrWVsJuJMDYfBsPFaBHtyCuT8Ibf3IIVg==", + "dependencies": { + "@aws-amplify/api": "6.0.37", + "buffer": "4.9.2", + "idb": "5.0.6", + "immer": "9.0.6", + "rxjs": "^7.8.1", + "ulid": "^2.3.0" + }, + "peerDependencies": { + "@aws-amplify/core": "^6.1.0" + } + }, + "node_modules/@aws-amplify/deployed-backend-client": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/deployed-backend-client/-/deployed-backend-client-1.0.2.tgz", + "integrity": "sha512-EwRGYLrH1PangGs6p9oQGDBOLaD5xKtcIwIi/dwjI/OhzwZ2eNZNikJxlRMul9sunL7tXEawhn8lZsZz+6ITTA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/platform-core": "^1.0.0", + "zod": "^3.22.2" + }, + "peerDependencies": { + "@aws-sdk/client-amplify": "^3.465.0", + "@aws-sdk/client-cloudformation": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0", + "@aws-sdk/types": "^3.465.0" + } + }, + "node_modules/@aws-amplify/form-generator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/form-generator/-/form-generator-1.0.0.tgz", + "integrity": "sha512-XIr+U8EmK7PHnBlj0CZXyCzvHJZOiHMvuQbKPOUdos4btme1q430rz+Oa7ddDBIig05aZke5VJA+4hKH4FLl6g==", + "dev": true, + "dependencies": { + "@aws-amplify/appsync-modelgen-plugin": "^2.11.0", + "@aws-amplify/codegen-ui": "^2.19.4", + "@aws-amplify/codegen-ui-react": "^2.19.4", + "@aws-amplify/graphql-directives": "^1.0.1", + "@aws-amplify/graphql-docs-generator": "^4.1.0", + "@aws-sdk/client-amplifyuibuilder": "^3.465.0", + "@aws-sdk/client-appsync": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0", + "@graphql-codegen/core": "^4.0.0", + "@graphql-codegen/typescript": "^2.8.3", + "graphql": "^15.8.0", + "node-fetch": "^3.3.2", + "prettier": "^2.8.7" + } + }, + "node_modules/@aws-amplify/graphql-api-construct": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-api-construct/-/graphql-api-construct-1.9.5.tgz", + "integrity": "sha512-/B2d+zD7oElH3Yw9MACNwxPHPhd/Q1VgZxB4NP0aXum2wAwc+gZ4VGrHHG4YYsJSJKRhd/IVHGzFPoZy34Uzew==", + "bundleDependencies": [ + "@aws-amplify/backend-output-schemas", + "@aws-amplify/backend-output-storage", + "@aws-amplify/graphql-auth-transformer", + "@aws-amplify/graphql-default-value-transformer", + "@aws-amplify/graphql-directives", + "@aws-amplify/graphql-function-transformer", + "@aws-amplify/graphql-http-transformer", + "@aws-amplify/graphql-index-transformer", + "@aws-amplify/graphql-maps-to-transformer", + "@aws-amplify/graphql-model-transformer", + "@aws-amplify/graphql-predictions-transformer", + "@aws-amplify/graphql-relational-transformer", + "@aws-amplify/graphql-searchable-transformer", + "@aws-amplify/graphql-sql-transformer", + "@aws-amplify/graphql-transformer", + "@aws-amplify/graphql-transformer-core", + "@aws-amplify/graphql-transformer-interfaces", + "@aws-amplify/platform-core", + "@aws-amplify/plugin-types", + "charenc", + "crypt", + "fs-extra", + "graceful-fs", + "graphql", + "graphql-mapping-template", + "graphql-transformer-common", + "hjson", + "immer", + "is-buffer", + "jsonfile", + "libphonenumber-js", + "lodash", + "md5", + "object-hash", + "pluralize", + "ts-dedent", + "universalify", + "zod" + ], + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^0.4.0", + "@aws-amplify/backend-output-storage": "^0.2.2", + "@aws-amplify/graphql-auth-transformer": "3.5.5", + "@aws-amplify/graphql-default-value-transformer": "2.3.7", + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-function-transformer": "2.1.22", + "@aws-amplify/graphql-http-transformer": "2.1.22", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-maps-to-transformer": "3.4.17", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-predictions-transformer": "2.1.22", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-searchable-transformer": "2.7.3", + "@aws-amplify/graphql-sql-transformer": "0.3.3", + "@aws-amplify/graphql-transformer": "1.5.7", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "@aws-amplify/platform-core": "^0.2.0", + "@aws-amplify/plugin-types": "^0.4.1", + "charenc": "^0.0.2", + "crypt": "^0.0.2", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.2.11", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "immer": "^9.0.12", + "is-buffer": "^2.0.5", + "jsonfile": "^6.1.0", + "libphonenumber-js": "1.9.47", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "pluralize": "^8.0.0", + "ts-dedent": "^2.0.0", + "universalify": "^2.0.0", + "zod": "^3.22.3" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-schemas": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "zod": "^3.21.4" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-storage": { + "version": "0.2.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/backend-output-schemas": "^0.4.0", + "@aws-amplify/platform-core": "^0.2.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.103.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-auth-transformer": { + "version": "3.5.5", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "lodash": "^4.17.21", + "md5": "^2.3.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-default-value-transformer": { + "version": "2.3.7", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "libphonenumber-js": "1.9.47" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-directives": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-function-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-http-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-index-transformer": { + "version": "2.4.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-maps-to-transformer": { + "version": "3.4.17", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-model-transformer": { + "version": "2.10.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-predictions-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-relational-transformer": { + "version": "2.5.5", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "immer": "^9.0.12" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-searchable-transformer": { + "version": "2.7.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-sql-transformer": { + "version": "0.3.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer": { + "version": "1.5.7", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-auth-transformer": "3.5.5", + "@aws-amplify/graphql-default-value-transformer": "2.3.7", + "@aws-amplify/graphql-function-transformer": "2.1.22", + "@aws-amplify/graphql-http-transformer": "2.1.22", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-maps-to-transformer": "3.4.17", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-predictions-transformer": "2.1.22", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-searchable-transformer": "2.7.3", + "@aws-amplify/graphql-sql-transformer": "0.3.3", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer-core": { + "version": "2.8.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "fs-extra": "^8.1.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "ts-dedent": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer-interfaces": { + "version": "3.8.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/platform-core": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/plugin-types": "^0.4.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/plugin-types": { + "version": "0.4.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "aws-cdk-lib": "^2.103.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/charenc": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/crypt": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/fs-extra": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/graphql": { + "version": "15.8.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/graphql-mapping-template": { + "version": "4.20.16", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/graphql-transformer-common": { + "version": "4.30.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "md5": "^2.2.1", + "pluralize": "8.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/hjson": { + "version": "3.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "hjson": "bin/hjson" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/immer": { + "version": "9.0.21", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/libphonenumber-js": { + "version": "1.9.47", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/md5": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/md5/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/object-hash": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/pluralize": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/ts-dedent": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/zod": { + "version": "3.22.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@aws-amplify/graphql-directives": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-directives/-/graphql-directives-1.1.0.tgz", + "integrity": "sha512-rcGfm8DsnD7Em1wYgNoq7yO+cE22mM0ssFYRWnHGsZOMX9Lh25HP1Ympt633V+raaTK3ND0gAlbVLxXzCN8XOg==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-docs-generator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-docs-generator/-/graphql-docs-generator-4.2.1.tgz", + "integrity": "sha512-ReBlY5//mWOmO0FL2ndswB9ku+vpg/JTY9Wwemjm/ibyoLHU1ojtGkPBkKH0CzbpOkIuEkIBLIg9EZ2yca/6oA==", + "dev": true, + "dependencies": { + "graphql": "^15.5.0", + "handlebars": "4.7.7", + "yargs": "^15.1.0" + }, + "bin": { + "graphql-docs-generator": "bin/cli" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@aws-amplify/graphql-generator": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-generator/-/graphql-generator-0.4.3.tgz", + "integrity": "sha512-21cbUm7n1f0Ox4UeXNkmcikWgE4ws9vdZqySGTGpERoC5OHPfSsu5KFQ/+V4XePUcEI5ofE+6R7xVH1BEaeUCA==", + "dev": true, + "dependencies": { + "@aws-amplify/appsync-modelgen-plugin": "2.12.2", + "@aws-amplify/graphql-directives": "^1.0.1", + "@aws-amplify/graphql-docs-generator": "4.2.1", + "@aws-amplify/graphql-types-generator": "3.6.0", + "@graphql-codegen/core": "^2.6.6", + "@graphql-tools/apollo-engine-loader": "^8.0.0", + "graphql": "^15.5.0", + "prettier": "^1.19.1" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.8.tgz", + "integrity": "sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.1", + "@graphql-tools/schema": "^9.0.0", + "@graphql-tools/utils": "^9.1.1", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core/node_modules/@graphql-tools/schema": { + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", + "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", + "dev": true, + "dependencies": { + "@graphql-tools/merge": "^8.4.1", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core/node_modules/@graphql-tools/schema/node_modules/@graphql-tools/merge": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", + "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-schema-generator": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-schema-generator/-/graphql-schema-generator-0.8.6.tgz", + "integrity": "sha512-YPJrYL4cKCd4UmfWzFDfl3T+Rzv6pOYU9JgjVHFw+PrcTJtcb2/V05amCu+iLTOONMcPuGf3WDknTydeXFTZrQ==", + "dev": true, + "dependencies": { + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "@aws-sdk/client-ec2": "3.338.0", + "@aws-sdk/client-iam": "3.338.0", + "@aws-sdk/client-lambda": "3.338.0", + "@aws-sdk/client-rds": "3.338.0", + "csv-parse": "^5.5.2", + "fs-extra": "11.1.1", + "graphql": "^15.5.0", + "graphql-transformer-common": "4.30.1", + "knex": "~2.4.0", + "mysql2": "~3.9.7", + "ora": "^4.0.3", + "pg": "~8.11.3", + "pluralize": "^8.0.0", + "typescript": "^4.8.4" + } + }, + "node_modules/@aws-amplify/graphql-schema-generator/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@aws-amplify/graphql-schema-generator/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/graphql-schema-generator/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@aws-amplify/graphql-schema-generator/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-transformer-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-transformer-core/-/graphql-transformer-core-2.8.0.tgz", + "integrity": "sha512-Z+tHOai3nB8bU2Prq46GCSfDJwLtrOV4FMRoXf6QKGKT5HzsFDFCfXnveL3t+4ROz4ib3kYTJBqKar/zx0I24g==", + "dev": true, + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "fs-extra": "^8.1.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "ts-dedent": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-transformer-core/node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/@aws-amplify/graphql-transformer-interfaces": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-transformer-interfaces/-/graphql-transformer-interfaces-3.8.0.tgz", + "integrity": "sha512-/VNL0x0CTGTQq/bcdytp7Q+o28nhIsvSZww2t/lpnF05My4EUDYHzmGoLIB6IB+1X1U6S+DiWVViqMPiLpkQNA==", + "dev": true, + "dependencies": { + "graphql": "^15.5.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-types-generator": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-types-generator/-/graphql-types-generator-3.6.0.tgz", + "integrity": "sha512-yjPXJ2dYZwtGvwwcEQ5RDNlwTsd/hUfD2Dgguo999Gu3mQjz7nV4l7CXD/Oxo/QzwtU/4rmTX69yadBpR+he3A==", + "dev": true, + "dependencies": { + "@babel/generator": "7.0.0-beta.4", + "@babel/types": "7.0.0-beta.4", + "babel-generator": "^6.26.1", + "babel-types": "^6.26.0", + "change-case": "^4.1.1", + "common-tags": "^1.8.0", + "core-js": "^3.6.4", + "fs-extra": "^8.1.0", + "globby": "^11.1.0", + "graphql": "^15.5.0", + "inflected": "^2.0.4", + "prettier": "^1.19.1", + "rimraf": "^3.0.0", + "source-map-support": "^0.5.16", + "yargs": "^15.1.0" + }, + "bin": { + "graphql-types-generator": "lib/cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@aws-amplify/model-generator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/model-generator/-/model-generator-1.0.1.tgz", + "integrity": "sha512-3pwl6US5OB0Vr0C/y7Cu1Bt5+lnIOi8+SYkH6PswQaOKEE7kWSlxe8lphDg+NDbXI83vgX1GlbNgi0KuofruPA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/deployed-backend-client": "^1.0.1", + "@aws-amplify/graphql-generator": "^0.4.0", + "@aws-amplify/graphql-types-generator": "^3.6.0", + "@aws-amplify/platform-core": "^1.0.0", + "@aws-sdk/client-appsync": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0", + "@aws-sdk/credential-providers": "^3.465.0", + "@aws-sdk/types": "^3.465.0", + "graphql": "^15.8.0" + }, + "peerDependencies": { + "@aws-sdk/client-amplify": "^3.465.0", + "@aws-sdk/client-cloudformation": "^3.465.0" + } + }, + "node_modules/@aws-amplify/notifications": { + "version": "2.0.35", + "resolved": "https://registry.npmjs.org/@aws-amplify/notifications/-/notifications-2.0.35.tgz", + "integrity": "sha512-2UPLZH/ibUwu+J2DLKpKgU7ZixkVzmqUFJ2OFSx6NI6M0kfBHi4OY1PVQ3h/60h27pbGDSf/nxOBuNG8YLzgCw==", + "dependencies": { + "lodash": "^4.17.21", + "tslib": "^2.5.0" + }, + "peerDependencies": { + "@aws-amplify/core": "^6.1.0" + } + }, + "node_modules/@aws-amplify/platform-core": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/platform-core/-/platform-core-1.0.1.tgz", + "integrity": "sha512-E00hGQO5Vgf/c/hVr1cL5dPkwcM600ILsACqUJS8KOXdTgdWzK29sunm4PCGUJVUMfsFN/hQGmaWOCi9FNQrNw==", + "dev": true, + "dependencies": { + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-sdk/client-sts": "^3.465.0", + "is-ci": "^3.0.1", + "lodash.mergewith": "^4.6.2", + "uuid": "^9.0.1", + "zod": "^3.22.2" + } + }, + "node_modules/@aws-amplify/plugin-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/plugin-types/-/plugin-types-1.0.0.tgz", + "integrity": "sha512-r+20BiiC4PRybb9vlTZwvlTuLD5b2ieGhPXkr4wMhOoun7auDqyMrLnadRDnne8L8pPRqCYTuWC1o66YiBx9bA==", + "dev": true, + "peerDependencies": { + "@aws-sdk/types": "^3.465.0", + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/sandbox": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/sandbox/-/sandbox-1.0.4.tgz", + "integrity": "sha512-cqblbL0mbOlKq3ZgIs4kxQ9sKTCdH+4ZiVAWD8wkaxhE53iXMT08boz+GMGFEu+Co2uj7QwIVhJ3HlxtjAov2g==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-deployer": "^1.0.0", + "@aws-amplify/backend-secret": "^1.0.0", + "@aws-amplify/cli-core": "^1.0.0", + "@aws-amplify/client-config": "^1.0.4", + "@aws-amplify/deployed-backend-client": "^1.0.2", + "@aws-amplify/platform-core": "^1.0.1", + "@aws-sdk/client-cloudformation": "^3.465.0", + "@aws-sdk/client-ssm": "^3.465.0", + "@aws-sdk/credential-providers": "^3.465.0", + "@aws-sdk/types": "^3.465.0", + "@parcel/watcher": "^2.4.1", + "debounce-promise": "^3.1.2", + "glob": "^10.2.7", + "open": "^9.1.0", + "parse-gitignore": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk": "^2.127.0" + } + }, + "node_modules/@aws-amplify/schema-generator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/schema-generator/-/schema-generator-1.0.0.tgz", + "integrity": "sha512-lhP0pTVT5PTb516W0opmoWEZkBppn6mYqf3OOtjDofRFRXFzxi2gbU44w+surgDxmtGAXgdhz1QzSmdUW7stSQ==", + "dev": true, + "dependencies": { + "@aws-amplify/graphql-schema-generator": "^0.8.3", + "@aws-amplify/platform-core": "^1.0.0" + } + }, + "node_modules/@aws-amplify/storage": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/storage/-/storage-6.4.6.tgz", + "integrity": "sha512-q4KyYTLX1/vp02n37aCcD9XqklNeWS5/dbyLeDwzYV+xCF7O9djpiF0v413KNJ8jBWcPosyqGD2xepn07R3VcA==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/md5-js": "2.0.7", + "buffer": "4.9.2", + "fast-xml-parser": "^4.2.5", + "tslib": "^2.5.0" + }, + "peerDependencies": { + "@aws-amplify/core": "^6.1.0" + } + }, + "node_modules/@aws-amplify/storage/node_modules/@aws-sdk/types": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.398.0.tgz", + "integrity": "sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==", + "dependencies": { + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/storage/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/storage/node_modules/@smithy/md5-js": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.7.tgz", + "integrity": "sha512-2i2BpXF9pI5D1xekqUsgQ/ohv5+H//G9FlawJrkOJskV18PgJ8LiNbLiskMeYt07yAsSTZR7qtlcAaa/GQLWww==", + "dependencies": { + "@smithy/types": "^2.3.1", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-amplify/storage/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/storage/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/storage/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/storage/node_modules/fast-xml-parser": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", + "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-cdk/asset-awscli-v1": { + "version": "2.2.202", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.202.tgz", + "integrity": "sha512-JqlF0D4+EVugnG5dAsNZMqhu3HW7ehOXm5SDMxMbXNDMdsF0pxtQKNHRl52z1U9igsHmaFpUgSGjbhAJ+0JONg==", + "dev": true + }, + "node_modules/@aws-cdk/asset-kubectl-v20": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz", + "integrity": "sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==", + "dev": true + }, + "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.3.tgz", + "integrity": "sha512-twhuEG+JPOYCYPx/xy5uH2+VUsIEhPTzDY0F1KuB+ocjWWB/KEDiOVL19nHvbPCB6fhWnkykXEMJ4HHcKvjtvg==", + "dev": true + }, + "node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/crc32c": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz", + "integrity": "sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==", + "dev": true, + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32c/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz", + "integrity": "sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==", + "dev": true, + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/util": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-sdk/abort-controller": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.338.0.tgz", + "integrity": "sha512-/yLI32+HwFNBRJ39jMXw+/cn3AnlCuJpQd7Ax4887g32Dgte5eyrfY8sJUOL6902BUmAq4oSRI5QeBXNplO0Xw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/abort-controller/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-amplify": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-amplify/-/client-amplify-3.596.0.tgz", + "integrity": "sha512-bAKu9Jbtw4dqHzy7mI3ldfvsmer3d/0WsHYIQjUXHqdU7Y0ks68B1FacaNlx4I5jtw7EngOxZoZ9kCvIpeL8Zg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.596.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplify/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplify/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplifyuibuilder": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-amplifyuibuilder/-/client-amplifyuibuilder-3.596.0.tgz", + "integrity": "sha512-YG7EVGIens4LG+hz8KdHPrAvyb5bc/BO4k7A7il7IQ7QdOSWnDp+pfSPaOgfQ6ZuNVO4YRsF47K1AJPdpartHQ==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.596.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplifyuibuilder/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplifyuibuilder/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-appsync": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-appsync/-/client-appsync-3.596.0.tgz", + "integrity": "sha512-HfwLalpzbdHhoaK5P4RrWZOcm5urDUqtofYYmFtyTVBJv4wM7yPhpbCsrY27xm2pqA+UAbWLipfrhs+n4cF45w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.596.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-appsync/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-appsync/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.596.0.tgz", + "integrity": "sha512-xOj9dJV1g63njXFju74F6GbiRpZpgGjC8SnTw1kGi/YkVtvsKaECz++qj0Qrcy7bsEXI6V+Fd4CSfxVGvow48g==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.596.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.0.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.596.0.tgz", + "integrity": "sha512-EnMebSL120H1V3CvxlSDu7xVg/c/U19J2pw5t3TbgWdP0bWR4gmaf2m7wczyi5XtPel0NIklnpPhlDJqr6T4Eg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.596.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ec2/-/client-ec2-3.338.0.tgz", + "integrity": "sha512-p672Q4BjrjnItcERtRXyHbsrXMTMzsNsbxljB89hwE0fa32f14nJoSV/ZfmjAQIJu56DuyJ5KUAX54+gS2knjg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.338.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-ec2": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@aws-sdk/util-waiter": "3.338.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/client-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz", + "integrity": "sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz", + "integrity": "sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/client-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz", + "integrity": "sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-sts": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz", + "integrity": "sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz", + "integrity": "sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz", + "integrity": "sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-ini": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz", + "integrity": "sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz", + "integrity": "sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/token-providers": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz", + "integrity": "sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz", + "integrity": "sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/middleware-logger": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz", + "integrity": "sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz", + "integrity": "sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz", + "integrity": "sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/token-providers": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz", + "integrity": "sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/util-endpoints": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz", + "integrity": "sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz", + "integrity": "sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz", + "integrity": "sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/client-firehose": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-firehose/-/client-firehose-3.398.0.tgz", + "integrity": "sha512-qOWNLAD7K+7LofQCeBe56xP/+XJ7C0Wmkkczra2QuA4dveYBrBftxMJcWQjiA2SY4C0GjlMcBoSdXNCtinJnIQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.398.0", + "@aws-sdk/credential-provider-node": "3.398.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/client-sso": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.398.0.tgz", + "integrity": "sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/client-sts": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.398.0.tgz", + "integrity": "sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/credential-provider-node": "3.398.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-sdk-sts": "3.398.0", + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.398.0.tgz", + "integrity": "sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.398.0.tgz", + "integrity": "sha512-AsK1lStK3nB9Cn6S6ODb1ktGh7SRejsNVQVKX3t5d3tgOaX+aX1Iwy8FzM/ZEN8uCloeRifUGIY9uQFygg5mSw==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.398.0", + "@aws-sdk/credential-provider-process": "3.398.0", + "@aws-sdk/credential-provider-sso": "3.398.0", + "@aws-sdk/credential-provider-web-identity": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.398.0.tgz", + "integrity": "sha512-odmI/DSKfuWUYeDnGTCEHBbC8/MwnF6yEq874zl6+owoVv0ZsYP8qBHfiJkYqrwg7wQ7Pi40sSAPC1rhesGwzg==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.398.0", + "@aws-sdk/credential-provider-ini": "3.398.0", + "@aws-sdk/credential-provider-process": "3.398.0", + "@aws-sdk/credential-provider-sso": "3.398.0", + "@aws-sdk/credential-provider-web-identity": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.398.0.tgz", + "integrity": "sha512-WrkBL1W7TXN508PA9wRXPFtzmGpVSW98gDaHEaa8GolAPHMPa5t2QcC/z/cFpglzrcVv8SA277zu9Z8tELdZhg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.398.0.tgz", + "integrity": "sha512-2Dl35587xbnzR/GGZqA2MnFs8+kS4wbHQO9BioU0okA+8NRueohNMdrdQmQDdSNK4BfIpFspiZmFkXFNyEAfgw==", + "dependencies": { + "@aws-sdk/client-sso": "3.398.0", + "@aws-sdk/token-providers": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.398.0.tgz", + "integrity": "sha512-iG3905Alv9pINbQ8/MIsshgqYMbWx+NDQWpxbIW3W0MkSH3iAqdVpSCteYidYX9G/jv2Um1nW3y360ib20bvNg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.398.0.tgz", + "integrity": "sha512-m+5laWdBaxIZK2ko0OwcCHJZJ5V1MgEIt8QVQ3k4/kOkN9ICjevOYmba751pHoTnbOYB7zQd6D2OT3EYEEsUcA==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/middleware-logger": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.398.0.tgz", + "integrity": "sha512-CiJjW+FL12elS6Pn7/UVjVK8HWHhXMfvHZvOwx/Qkpy340sIhkuzOO6fZEruECDTZhl2Wqn81XdJ1ZQ4pRKpCg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.398.0.tgz", + "integrity": "sha512-7QpOqPQAZNXDXv6vsRex4R8dLniL0E/80OPK4PPFsrCh9btEyhN9Begh4i1T+5lL28hmYkztLOkTQ2N5J3hgRQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.398.0.tgz", + "integrity": "sha512-+JH76XHEgfVihkY+GurohOQ5Z83zVN1nYcQzwCFnCDTh4dG4KwhnZKG+WPw6XJECocY0R+H0ivofeALHvVWJtQ==", + "dependencies": { + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/middleware-signing": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.398.0.tgz", + "integrity": "sha512-O0KqXAix1TcvZBFt1qoFkHMUNJOSgjJTYS7lFTRKSwgsD27bdW2TM2r9R8DAccWFt5Amjkdt+eOwQMIXPGTm8w==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.2.2", + "@smithy/util-middleware": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.398.0.tgz", + "integrity": "sha512-nF1jg0L+18b5HvTcYzwyFgfZQQMELJINFqI0mi4yRKaX7T5a3aGp5RVLGGju/6tAGTuFbfBoEhkhU3kkxexPYQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/token-providers": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.398.0.tgz", + "integrity": "sha512-nrYgjzavGCKJL/48Vt0EL+OlIc5UZLfNGpgyUW9cv3XZwl+kXV0QB+HH0rHZZLfpbBgZ2RBIJR9uD5ieu/6hpQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/types": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.398.0.tgz", + "integrity": "sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==", + "dependencies": { + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/util-endpoints": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.398.0.tgz", + "integrity": "sha512-Fy0gLYAei/Rd6BrXG4baspCnWTUSd0NdokU1pZh4KlfEAEN1i8SPPgfiO5hLk7+2inqtCmqxVJlfqbMVe9k4bw==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.398.0.tgz", + "integrity": "sha512-A3Tzx1tkDHlBT+IgxmsMCHbV8LM7SwwCozq2ZjJRx0nqw3MCrrcxQFXldHeX/gdUMO+0Oocb7HGSnVODTq+0EA==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.398.0.tgz", + "integrity": "sha512-RTVQofdj961ej4//fEkppFf4KXqKGMTCqJYghx3G0C/MYXbg7MGl7LjfNGtJcboRE8pfHHQ/TUWBDA7RIAPPlQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/abort-controller": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz", + "integrity": "sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/config-resolver": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.2.0.tgz", + "integrity": "sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-config-provider": "^2.3.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/credential-provider-imds": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz", + "integrity": "sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/fetch-http-handler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz", + "integrity": "sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==", + "dependencies": { + "@smithy/protocol-http": "^3.3.0", + "@smithy/querystring-builder": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-base64": "^2.3.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/fetch-http-handler/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/hash-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.2.0.tgz", + "integrity": "sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/invalid-dependency": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz", + "integrity": "sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/middleware-content-length": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz", + "integrity": "sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==", + "dependencies": { + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/middleware-content-length/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/middleware-endpoint": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz", + "integrity": "sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==", + "dependencies": { + "@smithy/middleware-serde": "^2.3.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/middleware-retry": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz", + "integrity": "sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/service-error-classification": "^2.1.5", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-retry": "^2.2.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/middleware-retry/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/middleware-serde": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz", + "integrity": "sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/middleware-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz", + "integrity": "sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/node-http-handler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz", + "integrity": "sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==", + "dependencies": { + "@smithy/abort-controller": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/querystring-builder": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/node-http-handler/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/property-provider": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz", + "integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/protocol-http": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-2.0.5.tgz", + "integrity": "sha512-d2hhHj34mA2V86doiDfrsy2fNTnUOowGaf9hKb0hIPHqvcnShU4/OSc4Uf1FwHkAdYF3cFXTrj5VGUYbEuvMdw==", + "dependencies": { + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/querystring-builder": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz", + "integrity": "sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-uri-escape": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/querystring-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz", + "integrity": "sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/service-error-classification": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz", + "integrity": "sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==", + "dependencies": { + "@smithy/types": "^2.12.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/signature-v4": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.3.0.tgz", + "integrity": "sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-uri-escape": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/smithy-client": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.1.tgz", + "integrity": "sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==", + "dependencies": { + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-stack": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-stream": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/smithy-client/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/url-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz", + "integrity": "sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==", + "dependencies": { + "@smithy/querystring-parser": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-base64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz", + "integrity": "sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-body-length-browser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz", + "integrity": "sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-body-length-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz", + "integrity": "sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-config-provider": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz", + "integrity": "sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz", + "integrity": "sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==", + "dependencies": { + "@smithy/property-provider": "^2.2.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz", + "integrity": "sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==", + "dependencies": { + "@smithy/config-resolver": "^2.2.0", + "@smithy/credential-provider-imds": "^2.3.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-hex-encoding": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz", + "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-middleware": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz", + "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-retry": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.2.0.tgz", + "integrity": "sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==", + "dependencies": { + "@smithy/service-error-classification": "^2.1.5", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz", + "integrity": "sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==", + "dependencies": { + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/types": "^2.12.0", + "@smithy/util-base64": "^2.3.0", + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-uri-escape": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz", + "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-firehose/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/client-iam": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-iam/-/client-iam-3.338.0.tgz", + "integrity": "sha512-lrs278aIQwjc6kUYXy3YlJRRFRtufr6JdvckCAgIAkhAUQaK20yjDq6Rb8Lhm47eL44z6zF54oa2aspumlUcyQ==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.338.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@aws-sdk/util-waiter": "3.338.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/client-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz", + "integrity": "sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz", + "integrity": "sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/client-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz", + "integrity": "sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-sts": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz", + "integrity": "sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz", + "integrity": "sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz", + "integrity": "sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-ini": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz", + "integrity": "sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz", + "integrity": "sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/token-providers": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz", + "integrity": "sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz", + "integrity": "sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/middleware-logger": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz", + "integrity": "sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz", + "integrity": "sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz", + "integrity": "sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/token-providers": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz", + "integrity": "sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/util-endpoints": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz", + "integrity": "sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz", + "integrity": "sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz", + "integrity": "sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-kinesis/-/client-kinesis-3.398.0.tgz", + "integrity": "sha512-zaOw+MwwdMpUdeUF8UVG19xcBDpQ1+8/Q2CEwu4OilTBMpcz9El+FaMVyOW4IWpVJMlDJfroZPxKkuITCHxgXA==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.398.0", + "@aws-sdk/credential-provider-node": "3.398.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/eventstream-serde-browser": "^2.0.5", + "@smithy/eventstream-serde-config-resolver": "^2.0.5", + "@smithy/eventstream-serde-node": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "@smithy/util-waiter": "^2.0.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/client-sso": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.398.0.tgz", + "integrity": "sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/client-sts": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.398.0.tgz", + "integrity": "sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/credential-provider-node": "3.398.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-sdk-sts": "3.398.0", + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.398.0.tgz", + "integrity": "sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.398.0.tgz", + "integrity": "sha512-AsK1lStK3nB9Cn6S6ODb1ktGh7SRejsNVQVKX3t5d3tgOaX+aX1Iwy8FzM/ZEN8uCloeRifUGIY9uQFygg5mSw==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.398.0", + "@aws-sdk/credential-provider-process": "3.398.0", + "@aws-sdk/credential-provider-sso": "3.398.0", + "@aws-sdk/credential-provider-web-identity": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.398.0.tgz", + "integrity": "sha512-odmI/DSKfuWUYeDnGTCEHBbC8/MwnF6yEq874zl6+owoVv0ZsYP8qBHfiJkYqrwg7wQ7Pi40sSAPC1rhesGwzg==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.398.0", + "@aws-sdk/credential-provider-ini": "3.398.0", + "@aws-sdk/credential-provider-process": "3.398.0", + "@aws-sdk/credential-provider-sso": "3.398.0", + "@aws-sdk/credential-provider-web-identity": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.398.0.tgz", + "integrity": "sha512-WrkBL1W7TXN508PA9wRXPFtzmGpVSW98gDaHEaa8GolAPHMPa5t2QcC/z/cFpglzrcVv8SA277zu9Z8tELdZhg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.398.0.tgz", + "integrity": "sha512-2Dl35587xbnzR/GGZqA2MnFs8+kS4wbHQO9BioU0okA+8NRueohNMdrdQmQDdSNK4BfIpFspiZmFkXFNyEAfgw==", + "dependencies": { + "@aws-sdk/client-sso": "3.398.0", + "@aws-sdk/token-providers": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.398.0.tgz", + "integrity": "sha512-iG3905Alv9pINbQ8/MIsshgqYMbWx+NDQWpxbIW3W0MkSH3iAqdVpSCteYidYX9G/jv2Um1nW3y360ib20bvNg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.398.0.tgz", + "integrity": "sha512-m+5laWdBaxIZK2ko0OwcCHJZJ5V1MgEIt8QVQ3k4/kOkN9ICjevOYmba751pHoTnbOYB7zQd6D2OT3EYEEsUcA==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/middleware-logger": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.398.0.tgz", + "integrity": "sha512-CiJjW+FL12elS6Pn7/UVjVK8HWHhXMfvHZvOwx/Qkpy340sIhkuzOO6fZEruECDTZhl2Wqn81XdJ1ZQ4pRKpCg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.398.0.tgz", + "integrity": "sha512-7QpOqPQAZNXDXv6vsRex4R8dLniL0E/80OPK4PPFsrCh9btEyhN9Begh4i1T+5lL28hmYkztLOkTQ2N5J3hgRQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.398.0.tgz", + "integrity": "sha512-+JH76XHEgfVihkY+GurohOQ5Z83zVN1nYcQzwCFnCDTh4dG4KwhnZKG+WPw6XJECocY0R+H0ivofeALHvVWJtQ==", + "dependencies": { + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/middleware-signing": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.398.0.tgz", + "integrity": "sha512-O0KqXAix1TcvZBFt1qoFkHMUNJOSgjJTYS7lFTRKSwgsD27bdW2TM2r9R8DAccWFt5Amjkdt+eOwQMIXPGTm8w==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.2.2", + "@smithy/util-middleware": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.398.0.tgz", + "integrity": "sha512-nF1jg0L+18b5HvTcYzwyFgfZQQMELJINFqI0mi4yRKaX7T5a3aGp5RVLGGju/6tAGTuFbfBoEhkhU3kkxexPYQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/token-providers": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.398.0.tgz", + "integrity": "sha512-nrYgjzavGCKJL/48Vt0EL+OlIc5UZLfNGpgyUW9cv3XZwl+kXV0QB+HH0rHZZLfpbBgZ2RBIJR9uD5ieu/6hpQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/types": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.398.0.tgz", + "integrity": "sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==", + "dependencies": { + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/util-endpoints": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.398.0.tgz", + "integrity": "sha512-Fy0gLYAei/Rd6BrXG4baspCnWTUSd0NdokU1pZh4KlfEAEN1i8SPPgfiO5hLk7+2inqtCmqxVJlfqbMVe9k4bw==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.398.0.tgz", + "integrity": "sha512-A3Tzx1tkDHlBT+IgxmsMCHbV8LM7SwwCozq2ZjJRx0nqw3MCrrcxQFXldHeX/gdUMO+0Oocb7HGSnVODTq+0EA==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.398.0.tgz", + "integrity": "sha512-RTVQofdj961ej4//fEkppFf4KXqKGMTCqJYghx3G0C/MYXbg7MGl7LjfNGtJcboRE8pfHHQ/TUWBDA7RIAPPlQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/abort-controller": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz", + "integrity": "sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/config-resolver": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.2.0.tgz", + "integrity": "sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-config-provider": "^2.3.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/credential-provider-imds": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz", + "integrity": "sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/eventstream-codec": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz", + "integrity": "sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/eventstream-serde-browser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.2.0.tgz", + "integrity": "sha512-UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.2.0.tgz", + "integrity": "sha512-RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/eventstream-serde-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.2.0.tgz", + "integrity": "sha512-zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/eventstream-serde-universal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.2.0.tgz", + "integrity": "sha512-pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA==", + "dependencies": { + "@smithy/eventstream-codec": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/fetch-http-handler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz", + "integrity": "sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==", + "dependencies": { + "@smithy/protocol-http": "^3.3.0", + "@smithy/querystring-builder": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-base64": "^2.3.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/fetch-http-handler/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/hash-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.2.0.tgz", + "integrity": "sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/invalid-dependency": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz", + "integrity": "sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/middleware-content-length": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz", + "integrity": "sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==", + "dependencies": { + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/middleware-content-length/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/middleware-endpoint": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz", + "integrity": "sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==", + "dependencies": { + "@smithy/middleware-serde": "^2.3.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/middleware-retry": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz", + "integrity": "sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/service-error-classification": "^2.1.5", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-retry": "^2.2.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/middleware-retry/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/middleware-serde": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz", + "integrity": "sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/middleware-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz", + "integrity": "sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/node-http-handler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz", + "integrity": "sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==", + "dependencies": { + "@smithy/abort-controller": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/querystring-builder": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/node-http-handler/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/property-provider": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz", + "integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/protocol-http": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-2.0.5.tgz", + "integrity": "sha512-d2hhHj34mA2V86doiDfrsy2fNTnUOowGaf9hKb0hIPHqvcnShU4/OSc4Uf1FwHkAdYF3cFXTrj5VGUYbEuvMdw==", + "dependencies": { + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/querystring-builder": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz", + "integrity": "sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-uri-escape": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/querystring-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz", + "integrity": "sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/service-error-classification": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz", + "integrity": "sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==", + "dependencies": { + "@smithy/types": "^2.12.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/signature-v4": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.3.0.tgz", + "integrity": "sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-uri-escape": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/smithy-client": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.1.tgz", + "integrity": "sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==", + "dependencies": { + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-stack": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-stream": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/smithy-client/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/url-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz", + "integrity": "sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==", + "dependencies": { + "@smithy/querystring-parser": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-base64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz", + "integrity": "sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-body-length-browser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz", + "integrity": "sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-body-length-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz", + "integrity": "sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-config-provider": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz", + "integrity": "sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz", + "integrity": "sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==", + "dependencies": { + "@smithy/property-provider": "^2.2.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz", + "integrity": "sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==", + "dependencies": { + "@smithy/config-resolver": "^2.2.0", + "@smithy/credential-provider-imds": "^2.3.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-hex-encoding": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz", + "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-middleware": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz", + "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-retry": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.2.0.tgz", + "integrity": "sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==", + "dependencies": { + "@smithy/service-error-classification": "^2.1.5", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz", + "integrity": "sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==", + "dependencies": { + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/types": "^2.12.0", + "@smithy/util-base64": "^2.3.0", + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-uri-escape": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz", + "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/util-waiter": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.2.0.tgz", + "integrity": "sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA==", + "dependencies": { + "@smithy/abort-controller": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-kinesis/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/client-lambda": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.338.0.tgz", + "integrity": "sha512-Xq/9c7d4y4wG9SQyAKzw8bSc2q7B2rYiZqFmOocrqU3J8poH/yYpAxps/lWurlF7LJ3d09SMw2rzZR9eMckGbw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.338.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/eventstream-serde-browser": "3.338.0", + "@aws-sdk/eventstream-serde-config-resolver": "3.338.0", + "@aws-sdk/eventstream-serde-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@aws-sdk/util-waiter": "3.338.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/client-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz", + "integrity": "sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz", + "integrity": "sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/client-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz", + "integrity": "sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-sts": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz", + "integrity": "sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz", + "integrity": "sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz", + "integrity": "sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-ini": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz", + "integrity": "sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz", + "integrity": "sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/token-providers": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz", + "integrity": "sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz", + "integrity": "sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/middleware-logger": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz", + "integrity": "sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz", + "integrity": "sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz", + "integrity": "sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/token-providers": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz", + "integrity": "sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/util-endpoints": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz", + "integrity": "sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz", + "integrity": "sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz", + "integrity": "sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-personalize-events/-/client-personalize-events-3.398.0.tgz", + "integrity": "sha512-dynXr8ZVMC2FxQS5QRr7cu90xAGfwgfZM5XDW2jm81UPK5Qqo2FbbEF4wvdXXbnkbvU5rsmxL1IjQiMGm+lWVg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.398.0", + "@aws-sdk/credential-provider-node": "3.398.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/client-sso": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.398.0.tgz", + "integrity": "sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/client-sts": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.398.0.tgz", + "integrity": "sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/credential-provider-node": "3.398.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-sdk-sts": "3.398.0", + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/protocol-http": "^2.0.5", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.398.0.tgz", + "integrity": "sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.398.0.tgz", + "integrity": "sha512-AsK1lStK3nB9Cn6S6ODb1ktGh7SRejsNVQVKX3t5d3tgOaX+aX1Iwy8FzM/ZEN8uCloeRifUGIY9uQFygg5mSw==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.398.0", + "@aws-sdk/credential-provider-process": "3.398.0", + "@aws-sdk/credential-provider-sso": "3.398.0", + "@aws-sdk/credential-provider-web-identity": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.398.0.tgz", + "integrity": "sha512-odmI/DSKfuWUYeDnGTCEHBbC8/MwnF6yEq874zl6+owoVv0ZsYP8qBHfiJkYqrwg7wQ7Pi40sSAPC1rhesGwzg==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.398.0", + "@aws-sdk/credential-provider-ini": "3.398.0", + "@aws-sdk/credential-provider-process": "3.398.0", + "@aws-sdk/credential-provider-sso": "3.398.0", + "@aws-sdk/credential-provider-web-identity": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.398.0.tgz", + "integrity": "sha512-WrkBL1W7TXN508PA9wRXPFtzmGpVSW98gDaHEaa8GolAPHMPa5t2QcC/z/cFpglzrcVv8SA277zu9Z8tELdZhg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.398.0.tgz", + "integrity": "sha512-2Dl35587xbnzR/GGZqA2MnFs8+kS4wbHQO9BioU0okA+8NRueohNMdrdQmQDdSNK4BfIpFspiZmFkXFNyEAfgw==", + "dependencies": { + "@aws-sdk/client-sso": "3.398.0", + "@aws-sdk/token-providers": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.398.0.tgz", + "integrity": "sha512-iG3905Alv9pINbQ8/MIsshgqYMbWx+NDQWpxbIW3W0MkSH3iAqdVpSCteYidYX9G/jv2Um1nW3y360ib20bvNg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.398.0.tgz", + "integrity": "sha512-m+5laWdBaxIZK2ko0OwcCHJZJ5V1MgEIt8QVQ3k4/kOkN9ICjevOYmba751pHoTnbOYB7zQd6D2OT3EYEEsUcA==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/middleware-logger": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.398.0.tgz", + "integrity": "sha512-CiJjW+FL12elS6Pn7/UVjVK8HWHhXMfvHZvOwx/Qkpy340sIhkuzOO6fZEruECDTZhl2Wqn81XdJ1ZQ4pRKpCg==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.398.0.tgz", + "integrity": "sha512-7QpOqPQAZNXDXv6vsRex4R8dLniL0E/80OPK4PPFsrCh9btEyhN9Begh4i1T+5lL28hmYkztLOkTQ2N5J3hgRQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.398.0.tgz", + "integrity": "sha512-+JH76XHEgfVihkY+GurohOQ5Z83zVN1nYcQzwCFnCDTh4dG4KwhnZKG+WPw6XJECocY0R+H0ivofeALHvVWJtQ==", + "dependencies": { + "@aws-sdk/middleware-signing": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/middleware-signing": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.398.0.tgz", + "integrity": "sha512-O0KqXAix1TcvZBFt1qoFkHMUNJOSgjJTYS7lFTRKSwgsD27bdW2TM2r9R8DAccWFt5Amjkdt+eOwQMIXPGTm8w==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.2.2", + "@smithy/util-middleware": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.398.0.tgz", + "integrity": "sha512-nF1jg0L+18b5HvTcYzwyFgfZQQMELJINFqI0mi4yRKaX7T5a3aGp5RVLGGju/6tAGTuFbfBoEhkhU3kkxexPYQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/token-providers": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.398.0.tgz", + "integrity": "sha512-nrYgjzavGCKJL/48Vt0EL+OlIc5UZLfNGpgyUW9cv3XZwl+kXV0QB+HH0rHZZLfpbBgZ2RBIJR9uD5ieu/6hpQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.398.0", + "@aws-sdk/middleware-logger": "3.398.0", + "@aws-sdk/middleware-recursion-detection": "3.398.0", + "@aws-sdk/middleware-user-agent": "3.398.0", + "@aws-sdk/types": "3.398.0", + "@aws-sdk/util-endpoints": "3.398.0", + "@aws-sdk/util-user-agent-browser": "3.398.0", + "@aws-sdk/util-user-agent-node": "3.398.0", + "@smithy/config-resolver": "^2.0.5", + "@smithy/fetch-http-handler": "^2.0.5", + "@smithy/hash-node": "^2.0.5", + "@smithy/invalid-dependency": "^2.0.5", + "@smithy/middleware-content-length": "^2.0.5", + "@smithy/middleware-endpoint": "^2.0.5", + "@smithy/middleware-retry": "^2.0.5", + "@smithy/middleware-serde": "^2.0.5", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/node-http-handler": "^2.0.5", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^2.0.5", + "@smithy/shared-ini-file-loader": "^2.0.0", + "@smithy/smithy-client": "^2.0.5", + "@smithy/types": "^2.2.2", + "@smithy/url-parser": "^2.0.5", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.5", + "@smithy/util-defaults-mode-node": "^2.0.5", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/types": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.398.0.tgz", + "integrity": "sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==", + "dependencies": { + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/util-endpoints": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.398.0.tgz", + "integrity": "sha512-Fy0gLYAei/Rd6BrXG4baspCnWTUSd0NdokU1pZh4KlfEAEN1i8SPPgfiO5hLk7+2inqtCmqxVJlfqbMVe9k4bw==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.398.0.tgz", + "integrity": "sha512-A3Tzx1tkDHlBT+IgxmsMCHbV8LM7SwwCozq2ZjJRx0nqw3MCrrcxQFXldHeX/gdUMO+0Oocb7HGSnVODTq+0EA==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/types": "^2.2.2", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.398.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.398.0.tgz", + "integrity": "sha512-RTVQofdj961ej4//fEkppFf4KXqKGMTCqJYghx3G0C/MYXbg7MGl7LjfNGtJcboRE8pfHHQ/TUWBDA7RIAPPlQ==", + "dependencies": { + "@aws-sdk/types": "3.398.0", + "@smithy/node-config-provider": "^2.0.5", + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/abort-controller": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz", + "integrity": "sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/config-resolver": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.2.0.tgz", + "integrity": "sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-config-provider": "^2.3.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/credential-provider-imds": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz", + "integrity": "sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/fetch-http-handler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz", + "integrity": "sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==", + "dependencies": { + "@smithy/protocol-http": "^3.3.0", + "@smithy/querystring-builder": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-base64": "^2.3.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/fetch-http-handler/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/hash-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.2.0.tgz", + "integrity": "sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/invalid-dependency": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz", + "integrity": "sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/middleware-content-length": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz", + "integrity": "sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==", + "dependencies": { + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/middleware-content-length/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/middleware-endpoint": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz", + "integrity": "sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==", + "dependencies": { + "@smithy/middleware-serde": "^2.3.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/middleware-retry": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz", + "integrity": "sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/service-error-classification": "^2.1.5", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-retry": "^2.2.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/middleware-retry/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/middleware-serde": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz", + "integrity": "sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/middleware-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz", + "integrity": "sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/node-http-handler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz", + "integrity": "sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==", + "dependencies": { + "@smithy/abort-controller": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/querystring-builder": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/node-http-handler/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/property-provider": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz", + "integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/protocol-http": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-2.0.5.tgz", + "integrity": "sha512-d2hhHj34mA2V86doiDfrsy2fNTnUOowGaf9hKb0hIPHqvcnShU4/OSc4Uf1FwHkAdYF3cFXTrj5VGUYbEuvMdw==", + "dependencies": { + "@smithy/types": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/querystring-builder": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz", + "integrity": "sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-uri-escape": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/querystring-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz", + "integrity": "sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/service-error-classification": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz", + "integrity": "sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==", + "dependencies": { + "@smithy/types": "^2.12.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/signature-v4": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.3.0.tgz", + "integrity": "sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-uri-escape": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/smithy-client": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.1.tgz", + "integrity": "sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==", + "dependencies": { + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-stack": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-stream": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/smithy-client/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/url-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz", + "integrity": "sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==", + "dependencies": { + "@smithy/querystring-parser": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-base64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz", + "integrity": "sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-body-length-browser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz", + "integrity": "sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-body-length-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz", + "integrity": "sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-config-provider": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz", + "integrity": "sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz", + "integrity": "sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==", + "dependencies": { + "@smithy/property-provider": "^2.2.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz", + "integrity": "sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==", + "dependencies": { + "@smithy/config-resolver": "^2.2.0", + "@smithy/credential-provider-imds": "^2.3.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-hex-encoding": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz", + "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-middleware": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz", + "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-retry": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.2.0.tgz", + "integrity": "sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==", + "dependencies": { + "@smithy/service-error-classification": "^2.1.5", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz", + "integrity": "sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==", + "dependencies": { + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/types": "^2.12.0", + "@smithy/util-base64": "^2.3.0", + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-uri-escape": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz", + "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize-events/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/client-rds": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-rds/-/client-rds-3.338.0.tgz", + "integrity": "sha512-PXiHzt3EHOrXuIwQ9Bfm7fAbQ4x1bFRBswCPv6TN0TurUvFh5TXP9zOEihXyrryMPcQJkNaXQ7q9d2U4Kl0aVg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.338.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-rds": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@aws-sdk/util-waiter": "3.338.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/client-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz", + "integrity": "sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz", + "integrity": "sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/client-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz", + "integrity": "sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-sts": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz", + "integrity": "sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz", + "integrity": "sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz", + "integrity": "sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-ini": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz", + "integrity": "sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz", + "integrity": "sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/token-providers": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz", + "integrity": "sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz", + "integrity": "sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/middleware-logger": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz", + "integrity": "sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz", + "integrity": "sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz", + "integrity": "sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/token-providers": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz", + "integrity": "sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/util-endpoints": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz", + "integrity": "sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz", + "integrity": "sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz", + "integrity": "sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.596.0.tgz", + "integrity": "sha512-W5C85cEUTYbmCpvvhLye+KirtLcBMX4t0l4Zj3EsGc5tTwkp7lxZDmJEoDfRy0+FE2H/O6OZQJdWMXCwt/Inqw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha1-browser": "3.0.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.596.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-bucket-endpoint": "3.587.0", + "@aws-sdk/middleware-expect-continue": "3.577.0", + "@aws-sdk/middleware-flexible-checksums": "3.587.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-location-constraint": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-sdk-s3": "3.587.0", + "@aws-sdk/middleware-signing": "3.587.0", + "@aws-sdk/middleware-ssec": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/signature-v4-multi-region": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@aws-sdk/xml-builder": "3.575.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/eventstream-serde-browser": "^3.0.0", + "@smithy/eventstream-serde-config-resolver": "^3.0.0", + "@smithy/eventstream-serde-node": "^3.0.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-blob-browser": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/hash-stream-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/md5-js": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.587.0.tgz", + "integrity": "sha512-tiZaTDj4RvhXGRAlncFn7CSEfL3iNPO67WSaxAq+Ls5j1VgczPhu5262cWONNoMgth3nXR1hhLC4ITSl/a6AzA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-ssm": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.596.0.tgz", + "integrity": "sha512-6gTCjQQ3ZMABSzKLnjEbiqDS4C+BpSAMyw9022/vAP7ybdF/fJENBy4XEwKgZ6U7VhLZePrO0ESyYYcpBnAc+g==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.596.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.0.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-ssm/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-ssm/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.592.0.tgz", + "integrity": "sha512-w+SuW47jQqvOC7fonyjFjsOh3yjqJ+VpWdVrmrl0E/KryBE7ho/Wn991Buf/EiHHeJikoWgHsAIPkBH29+ntdA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.596.0.tgz", + "integrity": "sha512-KnTWtKzO0N+rMdIrVwbewFp4FAvVWBV/ekCAh5w7EN+uAvBHxMoFElE2RwlcRF/gH1/F715OspPMvOxPom6bMA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.596.0.tgz", + "integrity": "sha512-37+WQDjgmqS/YXj3vPzIVIrbXaFcZ1WXk715AMGIPBZn9Y2/wr2bmSTpX7bsMyn0G8+LxmoIxFcG7n1Gu0nvLg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.596.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/config-resolver": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.338.0.tgz", + "integrity": "sha512-rB9WUaMfTB74Hd2mOiyPFR7Q1viT+w6SaDSR9SA1P8EeIg5H13FNdIKb736Z8/6QJhDj7whdyk1CTGV+DmXOOg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-config-provider": "3.310.0", + "@aws-sdk/util-middleware": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/config-resolver/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.592.0.tgz", + "integrity": "sha512-gLPMXR/HXDP+9gXAt58t7gaMTvRts9i6Q7NMISpkGF54wehskl5WGrbdtHJFylrlJ5BQo3XVY6i661o+EuR1wg==", + "dev": true, + "dependencies": { + "@smithy/core": "^2.2.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/core/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.596.0.tgz", + "integrity": "sha512-ps/1P+wwEbzOryIdnPGkfo83AH5+kFPe0UKTc6Lhsc4l4zhfvyU3WV/JzrCINEKqo3bEZdUt6tl/IpsyC+nggQ==", + "dev": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.596.0", + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.587.0.tgz", + "integrity": "sha512-Hyg/5KFECIk2k5o8wnVEiniV86yVkhn5kzITUydmNGCkXdBFHMHRx6hleQ1bqwJHbBskyu8nbYamzcwymmGwmw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.596.0.tgz", + "integrity": "sha512-nnmvEsz1KJgRmfSZJPWuzbxPRXu8Y+/78Ifa1jY3fQKSKdEJfXMDsjPljJvMDBl4dZ8pf5Hwx+S/ONnMEDwYEA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-imds": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.338.0.tgz", + "integrity": "sha512-qsqeywYfJevg5pgUUUBmm7pK1bckVrl091PZB2IliFdQVnDvI5GFLf4B0oZqjaLAzPG1gVtxRvqIve+tnP/+xA==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-imds/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.596.0.tgz", + "integrity": "sha512-c7PLtd7GbnOVAc5sk3sVlHxLvEsM8RF96rsBGlRo4AVpil/lXLKyNv9VarS4w/ZZZoRbJRyZ+m92PjNcLvpTDQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.596.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.596.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.596.0.tgz", + "integrity": "sha512-F4MLyXpQyie1AnJS9n7TIRL0aF7YH8tKMIJXDsM5OXpSZi2en+yR6SzsxvHf5dwS2Ga8LUdEJyiyS2NoebaJGA==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.596.0", + "@aws-sdk/credential-provider-ini": "3.596.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.587.0.tgz", + "integrity": "sha512-V4xT3iCqkF8uL6QC4gqBJg/2asd/damswP1h9HCfqTllmPWzImS+8WD3VjgTLw5b0KbTy+ZdUhKc0wDnyzkzxg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.592.0.tgz", + "integrity": "sha512-fYFzAdDHKHvhtufPPtrLdSv8lO6GuW3em6n3erM5uFdpGytNpjXvr3XGokIsuXcNkETAY/Xihg+G9ksNE8WJxQ==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.592.0", + "@aws-sdk/token-providers": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.587.0.tgz", + "integrity": "sha512-XqIx/I2PG7kyuw3WjAP9wKlxy8IvFJwB8asOFT1xPFoVfZYKIogjG9oLP5YiRtfvDkWIztHmg5MlVv3HdJDGRw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.587.0" + } + }, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.596.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.596.0.tgz", + "integrity": "sha512-EsbkylyO08P3alxXTpanKT1rPTh5/vXu7r/GoKbPl+7Laqheme41CYg0jtwAou/w7/6RFxqMn5ey5vg/qopNVA==", + "dev": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.596.0", + "@aws-sdk/client-sso": "3.592.0", + "@aws-sdk/client-sts": "3.596.0", + "@aws-sdk/credential-provider-cognito-identity": "3.596.0", + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.596.0", + "@aws-sdk/credential-provider-ini": "3.596.0", + "@aws-sdk/credential-provider-node": "3.596.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-codec": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.338.0.tgz", + "integrity": "sha512-D9nxnkuY6ArIr+b2Gfc0YExWgNbzgfLIljgcBawL9P4vkkE0uZgPM0fF0Paug2DpkuSluHS6PCLaM/nLbBiLAQ==", + "dev": true, + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-hex-encoding": "3.310.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/eventstream-codec/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.338.0.tgz", + "integrity": "sha512-SRaFPJpCPOghZ9vuStSBzwvVqEX0DSVQl4j1vq/9mHUj1a4Xn0qH29eLBxsyB5NOQNb46RMdd8UTNgNSnCI74w==", + "dev": true, + "dependencies": { + "@aws-sdk/eventstream-serde-universal": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-browser/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-config-resolver": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.338.0.tgz", + "integrity": "sha512-utid/nDd6IoPXWwz/mCnAwWWNgntK53feRLsztyWg7GHJabXli/kXo6U/3+Mn7Q2RS4eAASpqhYXXrVni5SgTA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-config-resolver/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.338.0.tgz", + "integrity": "sha512-Fwnrgaa6rs/0HMD3NVk1FcxZqgtG5xZz9qIlSLt5JFIG/rpBTrMREi+KIhLHvd3/4ZhkdLjX7y+ml8K6atSveA==", + "dev": true, + "dependencies": { + "@aws-sdk/eventstream-serde-universal": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-node/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-universal": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.338.0.tgz", + "integrity": "sha512-uuHu1nksdPPevuSUkq5aOo7j1Zb6IRSuQ0fV0zuolg2i1B2wAQjrkWH9EcvGzOe0/yWEQF3ohggczuovn4yCzQ==", + "dev": true, + "dependencies": { + "@aws-sdk/eventstream-codec": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-universal/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/fetch-http-handler": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.338.0.tgz", + "integrity": "sha512-NOIQmeSa51J2nFAzl99IjxwQkq27cdNJzF59jQWzpUCGbxXfMD4WWy2NHubabSFuJ4FJU2eyoQHUNUFc6/uxXA==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/querystring-builder": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/fetch-http-handler/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/hash-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.338.0.tgz", + "integrity": "sha512-udveX3ZRO1oUbyBTQH0LJ8Ika7uk0pHuXrqapdi66GGRJB50IhmOg372zUEwZjDB7DZYXfGTCuAj2OoEalgpBA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-buffer-from": "3.310.0", + "@aws-sdk/util-utf8": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/hash-node/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/invalid-dependency": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.338.0.tgz", + "integrity": "sha512-m6r1fTTGSl0V6l8Z+Ii4Ei8VFpDmu0AT6A59ZhJaMZgxf925ywuCPydyDW9ZqTLE0e7CgxhEHEsH1+HzpVuHTw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/invalid-dependency/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/is-array-buffer": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz", + "integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.587.0.tgz", + "integrity": "sha512-HkFXLPl8pr6BH/Q0JpOESqEKL0ZK3sk7aSZ1S6GE4RXET7H5R94THULXqQFZzD48gZcyFooO/yNKZTqrZFaWKg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-arn-parser": "3.568.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-content-length": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.338.0.tgz", + "integrity": "sha512-m2C+yJaNmbA3ocBp/7ImUUuimymV5JsFdV7yAibpbYMX22g3q83nieOF9x0I66J0+h+/bcriz/T1ZJAPANLz/g==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-content-length/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-endpoint": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.338.0.tgz", + "integrity": "sha512-bzL9Q8lFidg2NTjGVGDKI6yPG/XiPS+VIAMHJeihQmcv1alIy+N3IL4bEN15Fg+cwaGm+P3BevcLIHmcCOVb4w==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-middleware": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-endpoint/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.577.0.tgz", + "integrity": "sha512-6dPp8Tv4F0of4un5IAyG6q++GrRrNQQ4P2NAMB1W0VO4JoEu1C8GievbbDLi88TFIFmtKpnHB0ODCzwnoe8JsA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.587.0.tgz", + "integrity": "sha512-URMwp/budDvKhIvZ4a6zIBfFTun/iDlPWXqsGKYjEtHt8jz27OSjCZtDtIeqW4WTBdKL8KZgQcl+DdaE5M1qiQ==", + "dev": true, + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-crypto/crc32c": "3.0.0", + "@aws-sdk/types": "3.577.0", + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz", + "integrity": "sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.577.0.tgz", + "integrity": "sha512-DKPTD2D2s+t2QUo/IXYtVa/6Un8GZ+phSTBkyBNx2kfZz4Kwavhl/JJzSqTV3GfCXkVdFu7CrjoX7BZ6qWeTUA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz", + "integrity": "sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz", + "integrity": "sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.338.0.tgz", + "integrity": "sha512-nw1oPFkB7TdDG4Vlz2Td47ft/2Gmx1bA18QfE9K1mMWZ4nnoAL8xnHbowlTfHo62+BbFCAPu53PzDUCncBL0iw==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/service-error-classification": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-middleware": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/middleware-sdk-ec2": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-ec2/-/middleware-sdk-ec2-3.338.0.tgz", + "integrity": "sha512-BVYXaDHub4Y5dutr8Ly4HTp4aC7NTR0Jj8aKvB6chDr4B5D3zaqsSVqDrAtDCOFIvwCj59ETZMxfiTd7rvBhQA==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/signature-v4": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-format-url": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-ec2/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-rds": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-rds/-/middleware-sdk-rds-3.338.0.tgz", + "integrity": "sha512-VguJAlK3q5fobISRf0m1tbYEWkxGx7t2NR7Ci/L+YTpCRUa4uHUWrX6NjSm2dbHfmC9eitNEyAasZ3Itzv/gNQ==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/signature-v4": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-format-url": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-rds/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.587.0.tgz", + "integrity": "sha512-vtXTGEiw1E9Fax4LmcU2Z208gbrC8ShrdsSLmGcRPpu5NPOGBFBSDG5sy5EDNClrFxIl/Le8coQnD0EDBtx+uQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-arn-parser": "3.568.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.338.0.tgz", + "integrity": "sha512-aZ8eFVaot8oYQri1wOesrA3gLizeAHtlA/ELlqxoGDJtO011J4/hTHTn0iJGbktaCvc1L3TF6mgOsgXpudYqMg==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-serde": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.338.0.tgz", + "integrity": "sha512-AabRLrE6sk9tqQlQ7z3kn4gTHNN7Anjk/AM0ZEu96WcWjedcpgM1vVpKTBE7vjnxcTRNq0CEM3GLtQqaZ7/HjQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-serde/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.338.0.tgz", + "integrity": "sha512-AprhhShMF75mOx80SABujLwrU/w2uHQIvWd6aF3BsE5JRI3uQZRqspfjFCaK52HNLQPj3sCQUw1GeiZJ8GyWCw==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/signature-v4": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-middleware": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.577.0.tgz", + "integrity": "sha512-i2BPJR+rp8xmRVIGc0h1kDRFcM2J9GnClqqpc+NLSjmYadlcg4mPklisz9HzwFVcRPJ5XcGf3U4BYs5G8+iTyg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-stack": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.338.0.tgz", + "integrity": "sha512-9zXyiklX9AK9ZIXuIPzWzz2vevBEcnBs9UNIxiHl4NBZ8d8oyTvaES1PtFuwL6f7ANSZ9EGVQ2rdTTnMNxMI1A==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.587.0.tgz", + "integrity": "sha512-SyDomN+IOrygLucziG7/nOHkjUXES5oH5T7p8AboO8oakMQJdnudNXiYWTicQWO52R51U6CR27rcMPTGeMedYA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/node-config-provider": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.338.0.tgz", + "integrity": "sha512-YO7yWg3ipnUI5u6D+Zn2NUpjj5krwc8zNWeY79ULVIp9g7faqGX3xMSjeRSrpZ83s5jg1dOm/+bB0gw7mCrRCw==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-config-provider/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-http-handler": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.338.0.tgz", + "integrity": "sha512-V1BLzCruiv45tJ0vXjiamY8LncIsUFsXYJGDupomFYhWRN8L1MUB9f2vdKn5X3wXn/yKrluwTmNaryrIqd9akA==", + "dev": true, + "dependencies": { + "@aws-sdk/abort-controller": "3.338.0", + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/querystring-builder": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-http-handler/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/property-provider": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.338.0.tgz", + "integrity": "sha512-mC+ZJ738ipif6ZkH59gcipozYj1FOfpXr9pGVCA2hJGLDdaBwI2Jfpb2qCqbsTNtoCjBuIy+sQHGmUHyclgYHg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/property-provider/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/protocol-http": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.338.0.tgz", + "integrity": "sha512-JX03Q2gshdzOWtA/07kdpk0hqeOrOfwuF8TB97g66VCcIopYQkCeNH1zzkWu+RsGxfSlzQ7up+ZM6sclYXyB1A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/protocol-http/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-builder": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.338.0.tgz", + "integrity": "sha512-IB3YhO93Htwt2SxJx4VWsN57Rt1KEsvZ6PbneO4bcS96E04BlfBujYMZ+QxEM3EJxorhpkwbI2QnI12IjD8FhA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-uri-escape": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-builder/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-parser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.338.0.tgz", + "integrity": "sha512-vtI8Gqx4yj0BZlWonRMgLz68sHt5H48HN+ClnY+fDDB/8KLnCuwZ3TGKmYIbYbshL9wjJz0A9aLzuC6nPQ5JKw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-parser/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.587.0.tgz", + "integrity": "sha512-93I7IPZtulZQoRK+O20IJ4a1syWwYPzoO2gc3v+/GNZflZPV3QJXuVbIm0pxBsu0n/mzKGUKqSOLPIaN098HcQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/service-error-classification": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.338.0.tgz", + "integrity": "sha512-BJFr2mx/N3NbycGTlMMGRBc0tGcHXHEbMPy1H2RbejzL23zh27MchaL1WAK9SvwVMKS29hSDbhkuVR2ABRjerA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/shared-ini-file-loader": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.338.0.tgz", + "integrity": "sha512-MA1Sp97LFlOXcUaXgo47j86IsPRWYq1V/JqR+uu0zofZw4Xlt7Y6F+mmnDHvuuMy6R2ltzjXSwgrrW3k0bxFPA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/shared-ini-file-loader/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.338.0.tgz", + "integrity": "sha512-EwKTe/8Iwab/v0eo27w7DRYlqp9wEZEhuRfOMwTikUVH6iuTnW6AXjcIUfcRYBRbx2zqnRSiMAZkjN6ZFYm0bQ==", + "dev": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.310.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-hex-encoding": "3.310.0", + "@aws-sdk/util-middleware": "3.338.0", + "@aws-sdk/util-uri-escape": "3.310.0", + "@aws-sdk/util-utf8": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.587.0.tgz", + "integrity": "sha512-TR9+ZSjdXvXUz54ayHcCihhcvxI9W7102J1OK6MrLgBlPE7uRhAx42BR9L5lLJ86Xj3LuqPWf//o9d/zR9WVIg==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/smithy-client": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.338.0.tgz", + "integrity": "sha512-IpFLdLG8GwaiFdqVXf+WyU47Hfa2BMIupAU6iSkE2ZO0lBdg+efn/BBwis5WbBNTDCaaU0xH9y68SmnqqtD7pA==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/smithy-client/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.587.0.tgz", + "integrity": "sha512-ULqhbnLy1hmJNRcukANBWJmum3BbjXnurLPSFXoGdV0llXYlG55SzIla2VYqdveQEEjmsBuTZdFvXAtNpmS5Zg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.587.0" + } + }, + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.577.0.tgz", + "integrity": "sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==", + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/url-parser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.338.0.tgz", + "integrity": "sha512-x8a5swfZ6iWJZEA8rm99OKQ1A6xhWPP1taQUzoPavGCzPAOqyc8cd0FcXYMxvtXb3FeBhGaI8tiGKvelJro0+A==", + "dev": true, + "dependencies": { + "@aws-sdk/querystring-parser": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/url-parser/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz", + "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-base64": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz", + "integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==", + "dev": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-body-length-browser": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz", + "integrity": "sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/util-body-length-node": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz", + "integrity": "sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-buffer-from": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz", + "integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==", + "dev": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-config-provider": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz", + "integrity": "sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.338.0.tgz", + "integrity": "sha512-Zfr5c7JKMJTfb7z+hgd0ioU5iw+wId6Cppc5V1HpZuS2YY4Mn3aJIixzyzhIoCzbmk/yIkf96981epM9eo3/TA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-browser/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.338.0.tgz", + "integrity": "sha512-DFM3BSpSetshZTgTjueCkAYZWS0tn5zl7SjkSpFhWQZ8Tt/Df3/DEjcPvxzmC/5vgYSUXNsqcI7lLAJk9aGZAA==", + "dev": true, + "dependencies": { + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-node/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.587.0.tgz", + "integrity": "sha512-8I1HG6Em8wQWqKcRW6m358mqebRVNpL8XrrEoT4In7xqkKkmYtHRNVYP6lcmiQh5pZ/c/FXu8dSchuFIWyEtqQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "@smithy/util-endpoints": "^2.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-format-url": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.338.0.tgz", + "integrity": "sha512-25YnU5LyMVdyW+H4K/MtZ1vQhUK86Pn88eQt4jIp/D5v43+BGylKUQ3I+Zna7vUkv7kbPBCqlGcF62izls3V5w==", + "dev": true, + "dependencies": { + "@aws-sdk/querystring-builder": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-format-url/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-hex-encoding": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz", + "integrity": "sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz", + "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-middleware": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.338.0.tgz", + "integrity": "sha512-oQuAmhi16HWEqVa+Nq4VD4Ymet9vS+uiW92reaagQrW2QFjAgJW9A6pU0PcIHF9sWY1iDKeNdV5b9odQ45PDJA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-retry": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.338.0.tgz", + "integrity": "sha512-diR6M3gJgSgBg/87L2e8iF8urG+LOW9ZGWxhntYpYX4uhiIjwNgUPUa993553C8GIOZDHez5X9ExU4asYGQ71Q==", + "dev": true, + "dependencies": { + "@aws-sdk/service-error-classification": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/util-uri-escape": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz", + "integrity": "sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz", + "integrity": "sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.587.0.tgz", + "integrity": "sha512-Pnl+DUe/bvnbEEDHP3iVJrOtE3HbFJBPgsD6vJ+ml/+IYk1Eq49jEG+EHZdNTPz3SDG0kbp2+7u41MKYJHR/iQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-utf8": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz", + "integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==", + "dev": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-waiter": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.338.0.tgz", + "integrity": "sha512-15yWYJo/M4VDpZjlXgQDM4Du8UjX33eIVPJDrOmn/u+UrD6QUXoBuLXKns0uAMUTPFacBGZ0NwMywxieq0g11Q==", + "dev": true, + "dependencies": { + "@aws-sdk/abort-controller": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-waiter/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.575.0.tgz", + "integrity": "sha512-cWgAwmbFYNCFzPwxL705+lWps0F3ZvOckufd2KKoEZUmtpVw9/txUXNrPySUXSmRTSRhoatIMABNfStWR043bQ==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.4.tgz", + "integrity": "sha512-aLpZzf79oGT1bxnsadapfUWErDTcxVKrhvR5F8G27JFgH37+/ATrODMJ0/1D2CgQ/WStDX5B5znnWRv0NzW2JQ==", + "dev": true, + "dependencies": { + "@babel/types": "7.0.0-beta.4", + "jsesc": "^2.5.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz", + "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz", + "integrity": "sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-flow": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", + "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.4.tgz", + "integrity": "sha512-yLvBW5TTAgJwURAUAdZa1vrFTkwXXvk0Kw48LYvgxpyT/IaV8W4OIhxdVztAt5ruDQ/OFUwHpzWqk6TN3EfmWA==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@graphql-codegen/core": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-4.0.2.tgz", + "integrity": "sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.3", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.6.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-codegen/plugin-helpers": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.4.tgz", + "integrity": "sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.6.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.2.tgz", + "integrity": "sha512-ueoplzHIgFfxhFrF4Mf/niU/tYHuO6Uekm2nCYU72qpI+7Hn9dA2/o5XOBvFXDk27Lp5VSvQY5WfmRbqwVxaYQ==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/plugin-helpers": { + "version": "1.18.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz", + "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^7.9.1", + "common-tags": "1.8.0", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", + "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", + "dev": true, + "dependencies": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.2", + "tslib": "~2.2.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils/node_modules/tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", + "dev": true + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@graphql-codegen/schema-ast": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.6.1.tgz", + "integrity": "sha512-5TNW3b1IHJjCh07D2yQNGDQzUpUl2AD+GVe1Dzjqyx/d2Fn0TPMxLsHsKPS4Plg4saO8FK/QO70wLsP7fdbQ1w==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.2", + "@graphql-tools/utils": "^9.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.8.tgz", + "integrity": "sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.2", + "@graphql-codegen/schema-ast": "^2.6.1", + "@graphql-codegen/visitor-plugin-common": "2.13.8", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.13.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz", + "integrity": "sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.2", + "@graphql-tools/optimize": "^1.3.0", + "@graphql-tools/relay-operation-optimizer": "^6.5.0", + "@graphql-tools/utils": "^9.0.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-1.22.0.tgz", + "integrity": "sha512-2afJGb6d8iuZl9KizYsexPwraEKO1lAvt5eVHNM5Xew4vwz/AUHeqDR2uOeQgVV+27EzjjzSDd47IEdH0dLC2w==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^1.18.8", + "@graphql-tools/optimize": "^1.0.1", + "@graphql-tools/relay-operation-optimizer": "^6.3.0", + "array.prototype.flatmap": "^1.2.4", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.14", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@graphql-tools/apollo-engine-loader": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.1.tgz", + "integrity": "sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/utils": "^10.0.13", + "@whatwg-node/fetch": "^0.9.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@graphql-tools/utils": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.2.tgz", + "integrity": "sha512-ueoplzHIgFfxhFrF4Mf/niU/tYHuO6Uekm2nCYU72qpI+7Hn9dA2/o5XOBvFXDk27Lp5VSvQY5WfmRbqwVxaYQ==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/merge": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.4.tgz", + "integrity": "sha512-MivbDLUQ+4Q8G/Hp/9V72hbn810IJDEZQ57F01sHnlrrijyadibfVhaQfW/pNH+9T/l8ySZpaR/DpL5i+ruZ+g==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.2.tgz", + "integrity": "sha512-ueoplzHIgFfxhFrF4Mf/niU/tYHuO6Uekm2nCYU72qpI+7Hn9dA2/o5XOBvFXDk27Lp5VSvQY5WfmRbqwVxaYQ==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/optimize": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.4.0.tgz", + "integrity": "sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.5.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz", + "integrity": "sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==", + "dev": true, + "dependencies": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.4.tgz", + "integrity": "sha512-HuIwqbKxPaJujox25Ra4qwz0uQzlpsaBOzO6CVfzB/MemZdd+Gib8AIvfhQArK0YIN40aDran/yi+E5Xf0mQww==", + "dev": true, + "dependencies": { + "@graphql-tools/merge": "^9.0.3", + "@graphql-tools/utils": "^10.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.2.tgz", + "integrity": "sha512-ueoplzHIgFfxhFrF4Mf/niU/tYHuO6Uekm2nCYU72qpI+7Hn9dA2/o5XOBvFXDk27Lp5VSvQY5WfmRbqwVxaYQ==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.4.tgz", + "integrity": "sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==", + "dev": true, + "dependencies": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.1", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/utils/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "dev": true, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.5.2.tgz", + "integrity": "sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/checkbox/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/confirm": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-2.0.17.tgz", + "integrity": "sha512-EqzhGryzmGpy2aJf6LxJVhndxYmFs+m8cxXzf8nejb1DE3sabf6mUgBcp4J0jAUEiAcYzqmkqRr7LPFh/WdnXA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/confirm/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/core": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", + "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", + "dev": true, + "dependencies": { + "@inquirer/type": "^1.1.6", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.10.7", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/editor": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.2.15.tgz", + "integrity": "sha512-gQ77Ls09x5vKLVNMH9q/7xvYPT6sIs5f7URksw+a2iJZ0j48tVS6crLqm2ugG33tgXHIwiEqkytY60Zyh5GkJQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/editor/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/expand": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.1.16.tgz", + "integrity": "sha512-TGLU9egcuo+s7PxphKUCnJnpCIVY32/EwPCLLuu+gTvYiD8hZgx8Z2niNQD36sa6xcfpdLY6xXDBiL/+g1r2XQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/expand/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/input": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.2.16.tgz", + "integrity": "sha512-Ou0LaSWvj1ni+egnyQ+NBtfM1885UwhRCMtsRt2bBO47DoC1dwtCa+ZUNgrxlnCHHF0IXsbQHYtIIjFGAavI4g==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/input/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/password": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.1.16.tgz", + "integrity": "sha512-aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/password/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/prompts": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-3.3.2.tgz", + "integrity": "sha512-k52mOMRvTUejrqyF1h8Z07chC+sbaoaUYzzr1KrJXyj7yaX7Nrh0a9vktv8TuocRwIJOQMaj5oZEmkspEcJFYQ==", + "dev": true, + "dependencies": { + "@inquirer/checkbox": "^1.5.2", + "@inquirer/confirm": "^2.0.17", + "@inquirer/core": "^6.0.0", + "@inquirer/editor": "^1.2.15", + "@inquirer/expand": "^1.1.16", + "@inquirer/input": "^1.2.16", + "@inquirer/password": "^1.1.16", + "@inquirer/rawlist": "^1.2.16", + "@inquirer/select": "^1.3.3" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.2.16.tgz", + "integrity": "sha512-pZ6TRg2qMwZAOZAV6TvghCtkr53dGnK29GMNQ3vMZXSNguvGqtOVc4j/h1T8kqGJFagjyfBZhUPGwNS55O5qPQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/rawlist/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/select": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.3.3.tgz", + "integrity": "sha512-RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/select/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/type": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", + "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kamilkisiela/fast-url-parser": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz", + "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", + "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", + "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@smithy/abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.0.1.tgz", + "integrity": "sha512-Jb7jg4E+C+uvrUQi+h9kbILY6ts6fglKZzseMCHlH9ayq+1f5QdpYf8MV/xppuiN6DAMJAmwGz53GwP3213dmA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/chunked-blob-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz", + "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/chunked-blob-reader-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz", + "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==", + "dev": true, + "dependencies": { + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.2.tgz", + "integrity": "sha512-wUyG6ezpp2sWAvfqmSYTROwFUmJqKV78GLf55WODrosBcT0BAMd9bOLO4HRhynWBgAobPml2cF9ZOdgCe00r+g==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/config-resolver/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/config-resolver/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.1.tgz", + "integrity": "sha512-R8Pzrr2v2oGUoj4CTZtKPr87lVtBsz7IUBGhSwS1kc6Cj0yPwNdYbkzhFsxhoDE9+BPl09VN/6rFsW9GJzWnBA==", + "dev": true, + "dependencies": { + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/util-middleware": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.1.tgz", + "integrity": "sha512-htndP0LwHdE3R3Nam9ZyVWhwPYOmD4xCL79kqvNxy8u/bv0huuy574CSiRY4cvEICgimv8jlVfLeZ7zZqbnB2g==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-codec": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.0.1.tgz", + "integrity": "sha512-RNl3CuWZWPy+s8sx4PcOkRvlfodR33Dj3hzUuDG/CoF6XBvm5Xvr33wRoC1RWht0NN+Q6Z6KcoAkhlQA12MBBw==", + "dev": true, + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^3.1.0", + "@smithy/util-hex-encoding": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.1.tgz", + "integrity": "sha512-hpjzFlsDwtircebetScjEiwQwwPy0XASsV3dpUxEhPQUnF/mQ/IeiXaDrhsOmJiscMuCwxNPoZm3x4XmnGwN1g==", + "dev": true, + "dependencies": { + "@smithy/eventstream-serde-universal": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.1.tgz", + "integrity": "sha512-6+B8P+5Q1mll4u7IoI7mpmYOSW3/c2r3WQoYLdqOjbIKMixJFGmN79ZjJiNMy4X2GZ4We9kQ6LfnFuczSlhcyw==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-node": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.1.tgz", + "integrity": "sha512-8ylxIbZ0XiQD8kSKPmrrGS/2LmcDxg1mAAURa5tjcjYeBJPg7EaFRcH/aRe2RDPaoVUAbOfjHh2bTkWvy7P4Ig==", + "dev": true, + "dependencies": { + "@smithy/eventstream-serde-universal": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-universal": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.1.tgz", + "integrity": "sha512-E6aeN0MEO1p1KVN4Z3XQlvdUPp+hKJ21eiiioWtNLNNGAZUaJPlXgrqF+6Wj/aM86//9EQp6/iAwQB6eXaulzw==", + "dev": true, + "dependencies": { + "@smithy/eventstream-codec": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.2.tgz", + "integrity": "sha512-0nW6tLK0b7EqSsfKvnOmZCgJqnodBAnvqcrlC5dotKfklLedPTRGsQamSVbVDWyuU/QGg+YbZDJUQ0CUufJXZQ==", + "dev": true, + "dependencies": { + "@smithy/protocol-http": "^4.0.1", + "@smithy/querystring-builder": "^3.0.1", + "@smithy/types": "^3.1.0", + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-blob-browser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.0.1.tgz", + "integrity": "sha512-P8xxvMm0F6vi/7+GwGhZbE532b7TzGJUfUoUNGrb+dcR+MJUisV8sEQBZ5EB/ddf1/aGr8KO7QqbO/6WhfdW/Q==", + "dev": true, + "dependencies": { + "@smithy/chunked-blob-reader": "^3.0.0", + "@smithy/chunked-blob-reader-native": "^3.0.0", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-node": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.1.tgz", + "integrity": "sha512-w2ncjgk2EYO2+WhAsSQA8owzoOSY7IL1qVytlwpnL1pFGWTjIoIh5nROkEKXY51unB63bMGZqDiVoXaFbyKDlg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/hash-stream-node": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.0.1.tgz", + "integrity": "sha512-5Z5Oyqh9f5927HWyKK3klG09rMlVu8OcEQd4YDxYZbjdB9nHd8imTMN06tfcyrZCEzcOdeUCpJmjfVWUxUDigg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.1.tgz", + "integrity": "sha512-RSNF/32BKygXKKMyS7koyuAq1rcdW5p5c4EFa77QenBFze9As+JiRnV9OWBh2cB/ejGZalEZjvIrMLHwJl7aGA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz", + "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/md5-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.1.tgz", + "integrity": "sha512-wQa0YGsR4Zb1GQLGwOOgRAbkj22P6CFGaFzu5bKk8K4HVNIC2dBlIxqZ/baF0pLiSZySAPdDZT7CdZ7GkGXt5A==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.1.tgz", + "integrity": "sha512-6QdK/VbrCfXD5/QolE2W/ok6VqxD+SM28Ds8iSlEHXZwv4buLsvWyvoEEy0322K/g5uFgPzBmZjGqesTmPL+yQ==", + "dev": true, + "dependencies": { + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.2.tgz", + "integrity": "sha512-gWEaGYB3Bei17Oiy/F2IlUPpBazNXImytoOdJ1xbrUOaJKAOiUhx8/4FOnYLLJHdAwa9PlvJ2ULda2f/Dnwi9w==", + "dev": true, + "dependencies": { + "@smithy/middleware-serde": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-middleware": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.4.tgz", + "integrity": "sha512-Tu+FggbLNF5G9L6Wi8o32Mg4bhlBInWlhhaFKyytGRnkfxGopxFVXJQn7sjZdFYJyTz6RZZa06tnlvavUgtoVg==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^3.1.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/service-error-classification": "^3.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-retry/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-retry/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.1.tgz", + "integrity": "sha512-ak6H/ZRN05r5+SR0/IUc5zOSyh2qp3HReg1KkrnaSLXmncy9lwOjNqybX4L4x55/e5mtVDn1uf/gQ6bw5neJPw==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.1.tgz", + "integrity": "sha512-fS5uT//y1SlBdkzIvgmWQ9FufwMXrHSSbuR25ygMy1CRDIZkcBMoF4oTMYNfR9kBlVBcVzlv7joFdNrFuQirPA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz", + "integrity": "sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==", + "dependencies": { + "@smithy/property-provider": "^2.2.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz", + "integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-config-provider/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.0.1.tgz", + "integrity": "sha512-hlBI6MuREA4o1wBMEt+QNhUzoDtFFvwR6ecufimlx9D79jPybE/r8kNorphXOi91PgSO9S2fxRjcKCLk7Jw8zA==", + "dev": true, + "dependencies": { + "@smithy/abort-controller": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/querystring-builder": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.1.tgz", + "integrity": "sha512-YknOMZcQkB5on+MU0DvbToCmT2YPtTETMXW0D3+/Iln7ezT+Zm1GMHhCW1dOH/X/+LkkQD9aXEoCX/B10s4Xdw==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.0.1.tgz", + "integrity": "sha512-eBhm9zwcFPEazc654c0BEWtxYAzrw+OhoSf5pkwKzfftWKXRoqEhwOE2Pvn30v0iAdo7Mfsfb6pi1NnZlGCMpg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.1.tgz", + "integrity": "sha512-vKitpnG/2KOMVlx3x1S3FkBH075EROG3wcrcDaNerQNh8yuqnSL23btCD2UyX4i4lpPzNW6VFdxbn2Z25b/g5Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "@smithy/util-uri-escape": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.1.tgz", + "integrity": "sha512-Qt8DMC05lVS8NcQx94lfVbZSX+2Ym7032b/JR8AlboAa/D669kPzqb35dkjkvAG6+NWmUchef3ENtrD6F+5n8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.1.tgz", + "integrity": "sha512-ubFUvIePjDCyIzZ+pLETqNC6KXJ/fc6g+/baqel7Zf6kJI/kZKgjwkCI7zbUhoUuOZ/4eA/87YasVu40b/B4bA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz", + "integrity": "sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-3.0.1.tgz", + "integrity": "sha512-ARAmD+E7j6TIEhKLjSZxdzs7wceINTMJRN2BXPM09BiUmJhkXAF1ZZtDXH6fhlk7oehBZeh37wGiPOqtdKjLeg==", + "dev": true, + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/types": "^3.1.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-uri-escape": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.2.tgz", + "integrity": "sha512-f3eQpczBOFUtdT/ptw2WpUKu1qH1K7xrssrSiHYtd9TuLXkvFqb88l9mz9FHeUVNSUxSnkW1anJnw6rLwUKzQQ==", + "dev": true, + "dependencies": { + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "@smithy/util-stream": "^3.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.1.0.tgz", + "integrity": "sha512-qi4SeCVOUPjhSSZrxxB/mB8DrmuSFUcJnD9KXjuP+7C3LV/KFV4kpuUSH3OHDZgQB9TEH/1sO/Fq/5HyaK9MPw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/url-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.1.tgz", + "integrity": "sha512-G140IlNFlzYWVCedC4E2d6NycM1dCUbe5CnsGW1hmGt4hYKiGOw0v7lVru9WAn5T2w09QEjl4fOESWjGmCvVmg==", + "dev": true, + "dependencies": { + "@smithy/querystring-parser": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-base64": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz", + "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==", + "dev": true, + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz", + "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz", + "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz", + "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==", + "dev": true, + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz", + "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.4.tgz", + "integrity": "sha512-sXtin3Mue3A3xo4+XkozpgPptgmRwvNPOqTvb3ANGTCzzoQgAPBNjpE+aXCINaeSMXwHmv7E2oEn2vWdID+SAQ==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.4.tgz", + "integrity": "sha512-CUF6TyxLh3CgBRVYgZNOPDfzHQjeQr0vyALR6/DkQkOm7rNfGEzW1BRFi88C73pndmfvoiIT7ochuT76OPz9Dw==", + "dev": true, + "dependencies": { + "@smithy/config-resolver": "^3.0.2", + "@smithy/credential-provider-imds": "^3.1.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-endpoints": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.2.tgz", + "integrity": "sha512-4zFOcBFQvifd2LSD4a1dKvfIWWwh4sWNtS3oZ7mpob/qPPmJseqKB148iT+hWCDsG//TmI+8vjYPgZdvnkYlTg==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-endpoints/node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-endpoints/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz", + "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.1.tgz", + "integrity": "sha512-WRODCQtUsO7vIvfrdxS8RFPeLKcewYtaCglZsBsedIKSUGIIvMlZT5oh+pCe72I+1L+OjnZuqRNpN2LKhWA4KQ==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.1.tgz", + "integrity": "sha512-5lRtYm+8fNFEUTdqZXg5M4ppVp40rMIJfR1TpbHAhKQgPIDpWT+iYMaqgnwEbtpi9U1smyUOPv5Sg+M1neOBgw==", + "dev": true, + "dependencies": { + "@smithy/service-error-classification": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.2.tgz", + "integrity": "sha512-n5Obp5AnlI6qHo8sbupwrcpBe6vFp4qkl0SRNuExKPNrH3ABAMG2ZszRTIUIv2b4AsFrCO+qiy4uH1Q3z1dxTA==", + "dev": true, + "dependencies": { + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/types": "^3.1.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-uri-escape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz", + "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz", + "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==", + "dev": true, + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-waiter": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.0.1.tgz", + "integrity": "sha512-wwnrVQdjQxvWGOAiLmqlEhENGCcDIN+XJ/+usPOgSZObAslrCXgKlkX7rNVwIWW2RhPguTKthvF+4AoO0Z6KpA==", + "dev": true, + "dependencies": { + "@smithy/abort-controller": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@types/aws-lambda": { + "version": "8.10.138", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.138.tgz", + "integrity": "sha512-71EHMl70TPWIAsFuHd85NHq6S6T2OOjiisPTrH7RgcjzpJpPh4RQJv7PvVvIxc6PIp8CLV7F9B+TdjcAES5vcA==" + }, + "node_modules/@types/lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==", + "dev": true + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true + }, + "node_modules/@typescript/vfs": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.3.6.tgz", + "integrity": "sha512-VSLn7rs46Qhe4gYxbK1/IB4NPLvgKl0I6SgeVyJwW5efYAELvDVqf1gVOG7JaKtW8qlMtBaZP02/4TRN39AkEQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.18.tgz", + "integrity": "sha512-hqoz6StCW+AjV/3N+vg0s1ah82ptdVUb9nH2ttj3UbySOXUvytWw2yqy8c1cKzyRk6mDD00G47qS3fZI9/gMjg==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.5.7", + "urlpattern-polyfill": "^10.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.11.tgz", + "integrity": "sha512-LS8tSomZa3YHnntpWt3PP43iFEEl6YeIsvDakczHBKlay5LdkXFr8w7v8H6akpG5nRrzydyB0k1iE2eoL6aKIQ==", + "dev": true, + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/auth-main-integ": { + "resolved": "backends/auth/mainInteg", + "link": true + }, + "node_modules/auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-amplify": { + "version": "6.3.6", + "resolved": "https://registry.npmjs.org/aws-amplify/-/aws-amplify-6.3.6.tgz", + "integrity": "sha512-haG8Z2PErWS1KoSZ5z+vuQ6Au/cXn0eAMSruur+Ku+vFWXrKUEq0uI8SvAw5rJ6B2BDJEdMMzDnOb+hDuY5lew==", + "dependencies": { + "@aws-amplify/analytics": "7.0.35", + "@aws-amplify/api": "6.0.37", + "@aws-amplify/auth": "6.3.5", + "@aws-amplify/core": "6.3.2", + "@aws-amplify/datastore": "5.0.37", + "@aws-amplify/notifications": "2.0.35", + "@aws-amplify/storage": "6.4.6", + "tslib": "^2.5.0" + } + }, + "node_modules/aws-cdk": { + "version": "2.145.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.145.0.tgz", + "integrity": "sha512-Jdw7nbrXiihYM/jReXK0/i8a+W/o+fLcn1f8Yzvns1jP58KBGQygqyiv5Dm+uqzS3D8/ZZnfPu3ph6aOVLPNSA==", + "dev": true, + "bin": { + "cdk": "bin/cdk" + }, + "engines": { + "node": ">= 14.15.0" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/aws-cdk-lib": { + "version": "2.145.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.145.0.tgz", + "integrity": "sha512-0RCKdojCtF74rI2gGi9KUFVUKykTIMEs3ANjruIjxEz6d2cAsy9c2k+nCCSMdqhKZ9aPJgmBFewiw03Z8NtPig==", + "bundleDependencies": [ + "@balena/dockerignore", + "case", + "fs-extra", + "ignore", + "jsonschema", + "minimatch", + "punycode", + "semver", + "table", + "yaml", + "mime-types" + ], + "dev": true, + "dependencies": { + "@aws-cdk/asset-awscli-v1": "^2.2.202", + "@aws-cdk/asset-kubectl-v20": "^2.1.2", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.0.3", + "@balena/dockerignore": "^1.0.2", + "case": "1.6.3", + "fs-extra": "^11.2.0", + "ignore": "^5.3.1", + "jsonschema": "^1.4.1", + "mime-types": "^2.1.35", + "minimatch": "^3.1.2", + "punycode": "^2.3.1", + "semver": "^7.6.0", + "table": "^6.8.2", + "yaml": "1.10.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "constructs": "^10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/aws-cdk-lib/node_modules/ajv": { + "version": "8.13.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/aws-cdk-lib/node_modules/case": { + "version": "1.6.3", + "dev": true, + "inBundle": true, + "license": "(MIT OR GPL-3.0-or-later)", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fs-extra": { + "version": "11.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/aws-cdk-lib/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/ignore": { + "version": "5.3.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/aws-cdk-lib/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/jsonschema": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-db": { + "version": "1.52.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/aws-cdk-lib/node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/semver": { + "version": "7.6.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/table": { + "version": "6.8.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/yaml": { + "version": "1.10.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-generator/node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "dev": true + }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "dev": true, + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "node_modules/camel-case/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001633", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001633.tgz", + "integrity": "sha512-6sT0yf/z5jqf8tISAgpJDrmwOpLsrpnyCdD/lOZKvKkkJK4Dn0X5i7KF7THEZhOq+30bmhwBlNEaqPUiHiKtZg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/change-case/node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/constructs": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.3.0.tgz", + "integrity": "sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==", + "dev": true, + "engines": { + "node": ">= 16.14.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/cross-inspect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", + "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/csv-parse": { + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.6.tgz", + "integrity": "sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==", + "dev": true + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debounce-promise": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/debounce-promise/-/debounce-promise-3.1.2.tgz", + "integrity": "sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dset": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", + "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.802", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.802.tgz", + "integrity": "sha512-TnTMUATbgNdPXVSHsxvNVSG0uEd6cSZsANjm8c9HbvflZVVn1yTRcmVXYT1Ma95/ssB/Dcd30AHweH2TE+dNpA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dev": true, + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "node_modules/fast-xml-parser": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz", + "integrity": "sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==", + "dev": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", + "dev": true, + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^1.0.35" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "dev": true + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.0.tgz", + "integrity": "sha512-CrWQNaEl1/6WeZoarcM9LHupTo3RpZO2Pdk1vktwzPiQTsJnAKJmm3TACKeG5UZbWDfaH2AbvYxzP96y0MT7fA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==", + "dev": true + }, + "node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-mapping-template": { + "version": "4.20.16", + "resolved": "https://registry.npmjs.org/graphql-mapping-template/-/graphql-mapping-template-4.20.16.tgz", + "integrity": "sha512-J+shdngmnAxBM4mS4ga2RGusbPRMMO/TfRiNuHNKHxEU8O85us9zC6l7kSQ9hkWQDrKISJfDaesNKO3Jo5GerA==", + "dev": true + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/graphql-transformer-common": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/graphql-transformer-common/-/graphql-transformer-common-4.30.1.tgz", + "integrity": "sha512-SPitc4dEtWdyy+xe3FJSsvqw64ScMkl5mBpHK+P/iEMJEp9YE6H+s+9GAcewBhDSTDZibDHE+dT04a91FYN27w==", + "dev": true, + "dependencies": { + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "md5": "^2.2.1", + "pluralize": "8.0.0" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/hjson": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/hjson/-/hjson-3.2.2.tgz", + "integrity": "sha512-MkUeB0cTIlppeSsndgESkfFD21T2nXPRaBStLtf3cAYA2bVEFdXlodZB0TukwZiobPD1Ksax5DK4RTZeaXCI3Q==", + "dev": true, + "bin": { + "hjson": "bin/hjson" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idb": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/idb/-/idb-5.0.6.tgz", + "integrity": "sha512-/PFvOWPzRcEPmlDt5jEvzVZVs0wyd/EvGvkDIcbBpGuMMLQKrTPG0TxvE2UJtgZtCQCmOtM2QD7yQJBVEjKGOw==" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.6.tgz", + "integrity": "sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true, + "engines": { + "node": ">=12.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflected": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", + "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/knex": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/knex/-/knex-2.4.2.tgz", + "integrity": "sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==", + "dev": true, + "dependencies": { + "colorette": "2.0.19", + "commander": "^9.1.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.5.0", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/knex/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/maininteg": { + "resolved": "backends/api/mainInteg", + "link": true + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/mysql2": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.9.tgz", + "integrity": "sha512-Qtb2RUxwWMFkWXqF7Rd/7ySkupbQnNY7O0zQuQYgPcuJZ06M36JG3HIDEh/pEeq7LImcvA6O3lOVQ9XQK+HEZg==", + "dev": true, + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "dev": true, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dev": true, + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/nanoclone": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", + "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "dev": true, + "engines": { + "node": "^16 || ^18 || >= 20" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", + "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-gitignore": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-2.0.0.tgz", + "integrity": "sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pg": { + "version": "8.11.6", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.6.tgz", + "integrity": "sha512-6CyL4F0j3vPmakU9rWdeRY8qF5Cjc3OE86y6YpgDI6YtKHhNyCjGEIE8U5ZRfBjKTZikwolKIFWh3I22MeRnoA==", + "dev": true, + "dependencies": { + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "dev": true, + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==", + "dev": true + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "dev": true, + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==", + "dev": true + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dev": true, + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pg/node_modules/pg-connection-string": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", + "dev": true + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dev": true, + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dev": true, + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/relay-runtime": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", + "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==", + "dev": true + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sponge-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "dev": true + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-dedent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.2.0.tgz", + "integrity": "sha512-6zSJp23uQI+Txyz5LlXMXAHpUhY4Hi0oluXny0OgIR7g/Cromq4vDBnhtbBdyIV34g0pgwxUvnvg+jLJe4c1NA==", + "dev": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tsx": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.15.4.tgz", + "integrity": "sha512-d++FLCwJLrXaBFtRcqdPBzu6FiVOJ2j+UsvUZPtoTrnYtCGU5CEW7iHXtNZfA2fcRTvJFWPqA6SWBuB0GSva9w==", + "dev": true, + "dependencies": { + "esbuild": "~0.21.4", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz", + "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", + "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ulid": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", + "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==", + "bin": { + "ulid": "bin/cli.js" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true + }, + "node_modules/username": { + "resolved": "backends/auth/username", + "link": true + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yup": { + "version": "0.32.11", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", + "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/lodash": "^4.14.175", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/infra-gen2/package.json b/infra-gen2/package.json new file mode 100644 index 0000000000..719cee82fd --- /dev/null +++ b/infra-gen2/package.json @@ -0,0 +1,23 @@ +{ + "name": "root", + "private": true, + "workspaces": [ + "backends/analytics/*", + "backends/api/*", + "backends/auth/*", + "backends/storage/*" + ], + "dependencies": { + "aws-amplify": "^6.3.6" + }, + "devDependencies": { + "@aws-amplify/backend": "^1.0.3", + "@aws-amplify/backend-cli": "^1.0.4", + "aws-cdk": "^2.145.0", + "aws-cdk-lib": "^2.145.0", + "constructs": "^10.3.0", + "esbuild": "^0.21.5", + "tsx": "^4.15.4", + "typescript": "^5.4.5" + } +} diff --git a/infra-gen2/pubspec.yaml b/infra-gen2/pubspec.yaml new file mode 100644 index 0000000000..ec07ffb1ce --- /dev/null +++ b/infra-gen2/pubspec.yaml @@ -0,0 +1,13 @@ +name: infra_gen2 +publish_to: none + +environment: + sdk: ^3.3.0 + +dependencies: + amplify_core: any + args: ^2.5.0 + path: ">=1.8.0 <2.0.0" + +dev_dependencies: + amplify_lints: any diff --git a/infra-gen2/readme.md b/infra-gen2/readme.md new file mode 100644 index 0000000000..c6bfa53bc4 --- /dev/null +++ b/infra-gen2/readme.md @@ -0,0 +1,57 @@ +# Gen 2 Infra Stack + +This folder contains the Gen 2 backend definitions for our integration tests. + +To create and deploy backends run: `$ dart run tool/deploy_gen2.dart` + +This will: + +1. Run the amplify sandbox command in each folder under `/backends` +2. Combine multiple backend outputs for a given category into `amplifyEnvironments` +3. Copy and distribute the `amplify_outputs.dart` to example apps +4. Create and upload the config files to respective S3 buckets for CI use + +## Deploying the Infra Stack + +To deploy the infra stack to your personal account simply run: + +`$ npm i` + +`$ dart run tool/deploy_gen2.dart` + +If this is your first deployment, grab a snack, it will be a few minutes for each backend to deploy. + +### Debuggings + +The same command can be run with verbose logging + +`$ dart run tool/deploy_gen2.dart -v` + +## Creating a new backend + +1. Create a new directory for the backend. +2. Navigate via command line to the directory and run: `$ npm create amplify@latest -y` +3. Review [NPM Workspaces](#NPM-Workspaces) +4. Modify backend as desired. +5. Add an backend entry to `infraConfig` inside ` tool/deploy_gen2.dart` +6. Run and deploy backend with `dart run tool/deploy_gen2.dart` + +## Deploying to the CI team account + +Each backend requires AFS secrets to be added to secrets manager. Consult the Amplify Flutter Integration Tests Run Book. + +### NPM Workspaces + +This project uses [workspaces](https://docs.npmjs.com/cli/v10/using-npm/workspaces) to manage a shared workspace between all the backends. This is to avoid having multiple node_module folders, and provide a central location for all dependencies to be managed. + +As such, the only information required to be in a backend's package.json is: + +```json +{ + "name": "maininteg", + "version": "1.0.0", + "main": "index.js" +} +``` + +**Ensure if there are other backends from other categories with the same name, the package.json key `name` needs to be updated to be unique.** diff --git a/infra-gen2/tool/deploy_gen2.dart b/infra-gen2/tool/deploy_gen2.dart new file mode 100644 index 0000000000..f5f8daf2b5 --- /dev/null +++ b/infra-gen2/tool/deploy_gen2.dart @@ -0,0 +1,429 @@ +#!/usr/bin/env dart +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +// ignore_for_file: avoid_print + +import 'dart:convert'; +import 'dart:io'; + +import 'package:amplify_core/amplify_core.dart'; +import 'package:args/args.dart'; +import 'package:path/path.dart' as p; + +/// This is the source of truth for the infra-gen2 backends +/// +/// To add a backend: +/// 1. Create the backend in the infra-gen2/backends directory +/// 2. Run `npm create amplify@latest -y` in the backend directory to create the backend +/// 3. Add the backend to a category or create a new category +/// 4. Run `dart tool/deploy_gen2.dart` to deploy the backend +const List infraConfig = [ + AmplifyBackendGroup( + category: Category.analytics, + defaultOutput: '', + backends: [], + ), + AmplifyBackendGroup( + category: Category.api, + defaultOutput: 'packages/api/amplify_api/example/lib', + backends: [ + AmplifyBackend( + name: 'apiMultiAuth', + identifier: 'apiMultiAuth', + pathToSource: 'infra-gen2/backends/api/apiMultiAuth', + ), + ], + ), + AmplifyBackendGroup( + category: Category.auth, + defaultOutput: 'packages/auth/amplify_auth_cognito/example/lib', + sharedOutputs: [ + 'packages/auth/amplify_auth_cognito_dart/example/lib', + 'packages/authenticator/amplify_authenticator/example/lib', + ], + backends: [], + ), + AmplifyBackendGroup( + category: Category.storage, + defaultOutput: '', + backends: [], + ), +]; + +const pathToBackends = 'infra-gen2/backends'; + +void main(List arguments) async { + final args = _parseArgs(arguments); + final verbose = args.flag('verbose'); + + final bucketNames = []; + print('🚀 Deploying Gen 2 backends!'); + for (final backendGroup in infraConfig) { + // TODO(equartey): Could be removed when all backends are defined. + if (backendGroup.backends.isEmpty) { + continue; + } + var amplifyEnvironments = {}; + final categoryName = backendGroup.category.name; + final outputPath = p.join(repoRoot.path, backendGroup.defaultOutput); + final amplifyOutputs = File(p.join(outputPath, 'amplify_outputs.dart')); + + // create the output file if it does not exist + if (!amplifyOutputs.existsSync()) { + amplifyOutputs.createSync(recursive: true); + } + + print('🏃 Running sandbox deployment for $categoryName'); + for (final backend in backendGroup.backends) { + final backendName = backend.name; + await _deployBackend( + backendGroup.category, + backend, + amplifyOutputs.path.replaceFirst('amplify_outputs.dart', ''), + verbose, + ); + + // Skip if there is only one backend + if (backendGroup.backends.length <= 1) { + continue; + } + + // Cache the config contents to create environments map + amplifyEnvironments = { + ...amplifyEnvironments, + ..._cacheConfigContents( + backendName, + amplifyOutputs, + ), + }; + } + + // Only append environments if there are multiple backends + if (backendGroup.backends.length > 1) { + _appendEnvironments( + amplifyEnvironments, + backendGroup, + amplifyOutputs, + ); + } + + // Copy amplify_outputs.dart to shared paths + _copyAmplifyOutputs( + backendGroup.sharedOutputs, + amplifyOutputs, + ); + + var bucketName = _createBucketName(categoryName); + + // Check if the S3 bucket exists + final remoteBucketName = _getS3BucketName(bucketName); + if (remoteBucketName != null && remoteBucketName.isNotEmpty) { + bucketName = remoteBucketName; + print('🔍 Using existing S3 bucket $bucketName'); + } else { + _createS3Bucket(bucketName); + } + bucketNames.add(bucketName); + + // Upload amplify_outputs.dart to S3 bucket + _uploadAmplifyOutputs( + bucketName, + amplifyOutputs.path, + ); + + print('✅ Deployment for $categoryName Category complete'); + } + + print('🎉 All backends deployed successfully!'); + + print('🪣 S3 Bucket Names: $bucketNames'); +} + +ArgResults _parseArgs(List args) { + final parser = ArgParser() + ..addFlag( + 'verbose', + abbr: 'v', + help: 'Run command in verbose mode', + defaultsTo: false, + ); + + return parser.parse(args); +} + +/// Deploy Sandbox for a given backend backend +Future _deployBackend( + Category category, + AmplifyBackend backend, + String outputPath, + bool verbose, +) async { + print( + '🏖️ Deploying ${category.name} ${backend.name}, this may take a while...', + ); + + // Deploy the backend + final process = await Process.start( + 'npx', + [ + 'ampx', + 'sandbox', + '--outputs-format', + 'dart', + '--outputs-out-dir', + outputPath, + '--identifier', + backend.identifier, + '--profile=${Platform.environment['AWS_PROFILE'] ?? 'default'}', + '--once', + ], + workingDirectory: p.join(repoRoot.path, backend.pathToSource), + ); + + if (verbose) { + process.stdout.transform(const SystemEncoding().decoder).listen(print); + process.stderr.transform(const SystemEncoding().decoder).listen((data) { + print('❌ Error: $data'); + }); + } + + final exitCode = await process.exitCode; + + if (exitCode != 0) { + throw Exception( + '❌ Error deploying ${category.name} ${backend.identifier} sandbox', + ); + } else { + print( + '👍 ${category.name} ${backend.identifier} sandbox deployed', + ); + } +} + +/// Cache the config contents to create environments map +Map _cacheConfigContents( + String backendName, + File amplifyOutputs, +) { + // Ensure the amplify_outputs.dart file exists + if (!amplifyOutputs.existsSync()) { + throw Exception( + '❌ Error: ${amplifyOutputs.path} does not exist. ' + 'Please check the deployment logs for more information.', + ); + } + + // cache the config file contents to create environments map + final rawConfigContent = amplifyOutputs.readAsStringSync(); + final exp = RegExp(r"'''(.*?)'''", dotAll: true); + final configMap = exp.firstMatch(rawConfigContent)?.group(1) ?? ''; + + return { + backendName: '\'\'\'$configMap\'\'\'', + }; +} + +/// Append the environments to amplify_outputs.dart +void _appendEnvironments( + Map amplifyEnvironments, + AmplifyBackendGroup category, + File amplifyOutputs, +) { + // Skip if there are no amplifyEnvironments + if (amplifyEnvironments.isEmpty) { + return; + } + print('👷 Building amplifyEnvironments'); + var amplifyEnvironmentsOutput = + '\nconst amplifyEnvironments = {\n'; + amplifyEnvironments.forEach((key, value) { + amplifyEnvironmentsOutput += "'$key': $value,\n"; + }); + amplifyEnvironmentsOutput += '};'; + + // Append amplifyEnvironments to amplify_outputs.dart + amplifyOutputs.writeAsStringSync( + amplifyEnvironmentsOutput, + mode: FileMode.append, + ); +} + +/// Copy the amplify_outputs.dart file to other shared paths +void _copyAmplifyOutputs( + List outputPaths, + File amplifyOutputs, +) { + if (outputPaths.length <= 1) { + return; + } + + print('👯 Copying amplify_outputs.dart to other shared paths'); + for (final outputPath in outputPaths) { + final destination = p.join(repoRoot.path, outputPath); + final outputFile = File(p.join(destination, 'amplify_outputs.dart')); + + if (!outputFile.existsSync()) { + outputFile.createSync(recursive: true); + } + final amplifyOutputsContents = amplifyOutputs.readAsStringSync(); + + outputFile.writeAsStringSync(amplifyOutputsContents); + } +} + +/// Create a unique bucket name +String _createBucketName(String base) { + final uniqueShort = uuid().substring(0, 8); + return '${base.toLowerCase()}-gen2-integ-$uniqueShort'; +} + +String? _getS3BucketName(String bucketName) { + final checkBucket = Process.runSync( + 'aws', + [ + '--profile=${Platform.environment['AWS_PROFILE'] ?? 'default'}', + 's3api', + 'list-buckets', + '--query', + 'Buckets[].Name', + '--output', + 'text', + ], + stdoutEncoding: utf8, + stderrEncoding: utf8, + ); + + if (checkBucket.exitCode != 0) { + throw Exception( + '❌ Error checking if S3 bucket $bucketName exists: ' + '${checkBucket.stdout}\n${checkBucket.stderr}', + ); + } + final output = checkBucket.stdout as String; + + // Determine if bucket exists while ignoring the UUID + final bucketNameWithoutUUID = bucketName.substring(0, bucketName.length - 8); + const uuidMatcher = r'[a-f0-9]{8}$'; + final pattern = '($bucketNameWithoutUUID)$uuidMatcher'; + + final bucketNames = output.split('\t').map((e) => e.trim()).toList(); + final regex = RegExp(pattern); + final matchingBuckets = bucketNames.where(regex.hasMatch); + if (matchingBuckets.length > 1) { + throw Exception( + '❌ Error: Multiple buckets found with the same name: $matchingBuckets', + ); + } + if (matchingBuckets.isEmpty) { + return null; + } + return matchingBuckets.single; +} + +/// Create an S3 bucke +void _createS3Bucket(String bucketName) { + print('🪣 Creating S3 bucket: $bucketName'); + final createBucket = Process.runSync( + 'aws', + [ + '--profile=${Platform.environment['AWS_PROFILE'] ?? 'default'}', + 's3', + 'mb', + 's3://$bucketName', + ], + stdoutEncoding: utf8, + stderrEncoding: utf8, + ); + if (createBucket.exitCode != 0) { + throw Exception( + '❌ Error creating S3 bucket $bucketName: ' + '${createBucket.stdout}\n${createBucket.stderr}', + ); + } + print('👍 S3 bucket $bucketName successfully created'); +} + +/// Upload the amplify_outputs.dart file to the S3 bucket +void _uploadAmplifyOutputs( + String bucketName, + String pathToAmplifyOutputs, +) { + print('📲 Uploading amplify_outputs.dart to S3 bucket'); + final downloadRes = Process.runSync( + 'aws', + [ + '--profile=${Platform.environment['AWS_PROFILE'] ?? 'default'}', + 's3', + 'cp', + pathToAmplifyOutputs, + 's3://$bucketName/amplify_outputs.dart', + ], + stdoutEncoding: utf8, + stderrEncoding: utf8, + ); + if (downloadRes.exitCode != 0) { + throw Exception( + '❌ Error downloading $bucketName config from S3: ' + '${downloadRes.stdout}\n${downloadRes.stderr}', + ); + } + print('👍 Amplify Outputs successfully uploaded to S3 bucket'); +} + +class AmplifyBackendGroup { + const AmplifyBackendGroup({ + required this.category, + required this.backends, + required this.defaultOutput, + this.sharedOutputs = const [], + }); + + /// This is the category of the integration group + final Category category; + + /// This is the list of backends for the group + final List backends; + + /// This is the default output path for the group + final String defaultOutput; + + /// This is the list of shared output paths for the group + final List sharedOutputs; +} + +class AmplifyBackend { + const AmplifyBackend({ + required this.name, + required this.identifier, + required this.pathToSource, + }); + + /// This is the name of the backend + final String name; + + /// This is the identifier for the backend + /// It is the name in "PascalCase" + /// Must be less than 15 characters + final String identifier; + + /// This is the path to the source code for the backend + /// Root directory is `amplify-flutter/` + final String pathToSource; +} + +final Directory repoRoot = () { + var dir = Directory.current; + Directory? rootDir; + while (p.absolute(dir.parent.path) != p.absolute(dir.path)) { + final files = dir.listSync().whereType(); + if (files.any((f) => p.basename(f.path) == 'pubspec.yaml')) { + rootDir = dir; + } + dir = dir.parent; + } + if (rootDir == null) { + throw StateError('Could not locate repo root'); + } + return rootDir; +}(); diff --git a/packages/aft/lib/src/commands/bootstrap_command.dart b/packages/aft/lib/src/commands/bootstrap_command.dart index b051da9156..2e07fa5904 100644 --- a/packages/aft/lib/src/commands/bootstrap_command.dart +++ b/packages/aft/lib/src/commands/bootstrap_command.dart @@ -46,6 +46,11 @@ class BootstrapCommand extends AmplifyCommand with GlobOptions, FailFastOption { if (!package.isExample) { return; } + await _createEmptyGen1Config(package); + await _createEmptyGen2Config(package); + } + + Future _createEmptyGen1Config(PackageInfo package) async { final file = File( path.join(package.path, 'lib', 'amplifyconfiguration.dart'), ); @@ -54,6 +59,7 @@ class BootstrapCommand extends AmplifyCommand with GlobOptions, FailFastOption { return; } await file.create(); + // formatting is important to avoid lint errors await file.writeAsString( ''' const amplifyconfig = \'\'\'{ @@ -61,6 +67,28 @@ const amplifyconfig = \'\'\'{ "Version": "1.0" }\'\'\'; +const amplifyEnvironments = {}; +''', + ); + } + + Future _createEmptyGen2Config(PackageInfo package) async { + final file = File( + path.join(package.path, 'lib', 'amplify_outputs.dart'), + ); + + if (await file.exists() || + !await Directory(path.join(package.path, 'lib')).exists()) { + return; + } + await file.create(); +// formatting is important to avoid lint errors + await file.writeAsString( + ''' +const amplifyConfig = \'\'\'{ + "version": "1" +}\'\'\'; + const amplifyEnvironments = {}; ''', ); diff --git a/packages/aft/lib/src/commands/generate/generate_workflows_command.dart b/packages/aft/lib/src/commands/generate/generate_workflows_command.dart index 2e03d0ca31..fa5e2ace07 100644 --- a/packages/aft/lib/src/commands/generate/generate_workflows_command.dart +++ b/packages/aft/lib/src/commands/generate/generate_workflows_command.dart @@ -65,6 +65,27 @@ updates: - dependency-name: "*" update-types: - "version-update:semver-patch" + - package-ecosystem: "npm" + directory: "infra-gen2" + schedule: + interval: "weekly" + groups: + cdk: + patterns: + - "aws-amplify" + - "@aws-amplify/*" + - "aws-cdk" + - "aws-cdk-lib" + - "constructs" + aws-sdk-js: + patterns: + - "@aws-sdk/*" + - "@aws-crypto/*" + ignore: + # Ignore patch version bumps + - dependency-name: "*" + update-types: + - "version-update:semver-patch" - package-ecosystem: "pub" directory: "/" schedule: @@ -308,6 +329,7 @@ ${workflowPaths.map((path) => " - '$path'").join('\n')} ${workflowPaths.map((path) => " - '$path'").join('\n')} schedule: - cron: "0 13 * * *" # Everyday at 06:00 PST + workflow_dispatch: defaults: run: shell: bash @@ -381,6 +403,9 @@ jobs: final needsAwsConfig = File( p.join(package.path, 'tool', 'pull_test_backend.sh'), ).existsSync(); + final needsGen2Config = File( + p.join(package.path, 'tool', 'pull_test_gen2_backend.sh'), + ).existsSync(); for (final MapEntry(key: platform, value: e2eWorkflow) in e2eWorkflows.entries) { workflowContents.write( @@ -393,6 +418,7 @@ jobs: package-name: ${package.name} working-directory: $repoRelativePath needs-aws-config: $needsAwsConfig + needs-gen2-config: $needsGen2Config ''', ); } @@ -498,7 +524,6 @@ on: branches: - main - stable - - next pull_request: paths: - '$repoRelativePath/**/*.yaml' @@ -507,6 +532,7 @@ on: ${androidWorkflowPaths.map((path) => " - '$path'").join('\n')} schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash @@ -569,7 +595,6 @@ on: branches: - main - stable - - next pull_request: paths: - '$repoRelativePath/**/*.yaml' @@ -578,6 +603,7 @@ on: ${iosWorkflowPaths.map((path) => " - '$path'").join('\n')} schedule: - cron: "0 0 * * 0" # Every Sunday at 00:00 + workflow_dispatch: defaults: run: shell: bash diff --git a/packages/amplify/amplify_flutter/CHANGELOG.md b/packages/amplify/amplify_flutter/CHANGELOG.md index 1f23987b90..075456aa55 100644 --- a/packages/amplify/amplify_flutter/CHANGELOG.md +++ b/packages/amplify/amplify_flutter/CHANGELOG.md @@ -1,3 +1,14 @@ +## 2.2.0 + +### Fixes +- fix(api): GraphQLResponse.toString() include data & errors ([#5079](https://github.com/aws-amplify/amplify-flutter/pull/5079)) +- fix(core): improve amplify configure api error message ([#5021](https://github.com/aws-amplify/amplify-flutter/pull/5021)) +- fix(notifications): allow offline configuration +- fix: wait for in progress multi part uploads to cancel for `pause` and `cancel` + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 ### Features diff --git a/packages/amplify/amplify_flutter/example/.gitignore b/packages/amplify/amplify_flutter/example/.gitignore index a8e938c083..5cee744cbb 100644 --- a/packages/amplify/amplify_flutter/example/.gitignore +++ b/packages/amplify/amplify_flutter/example/.gitignore @@ -45,3 +45,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +amplify_outputs.dart diff --git a/packages/amplify/amplify_flutter/pubspec.yaml b/packages/amplify/amplify_flutter/pubspec.yaml index 8ba150026b..441e4abaa8 100644 --- a/packages/amplify/amplify_flutter/pubspec.yaml +++ b/packages/amplify/amplify_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_flutter description: The top level Flutter package for the AWS Amplify libraries. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify/amplify_flutter issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -19,8 +19,8 @@ platforms: web: dependencies: - amplify_core: ">=2.1.0 <2.2.0" - amplify_secure_storage: ">=0.5.2 <0.6.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_secure_storage: ">=0.5.3 <0.6.0" aws_common: ">=0.7.0 <0.8.0" collection: ^1.15.0 flutter: diff --git a/packages/amplify_core/CHANGELOG.md b/packages/amplify_core/CHANGELOG.md index 8336e9a8d1..b4ae6d342a 100644 --- a/packages/amplify_core/CHANGELOG.md +++ b/packages/amplify_core/CHANGELOG.md @@ -1,3 +1,14 @@ +## 2.2.0 + +### Fixes +- fix(api): GraphQLResponse.toString() include data & errors ([#5079](https://github.com/aws-amplify/amplify-flutter/pull/5079)) +- fix(core): improve amplify configure api error message ([#5021](https://github.com/aws-amplify/amplify-flutter/pull/5021)) +- fix(notifications): allow offline configuration +- fix: wait for in progress multi part uploads to cancel for `pause` and `cancel` + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 ### Features diff --git a/packages/amplify_core/doc/.gitignore b/packages/amplify_core/doc/.gitignore index 65c34dc86e..5bd93daf47 100644 --- a/packages/amplify_core/doc/.gitignore +++ b/packages/amplify_core/doc/.gitignore @@ -8,3 +8,5 @@ build/ # Omit committing pubspec.lock for library packages; see # https://dart.dev/guides/libraries/private-files#pubspeclock. pubspec.lock + +amplify_outputs.dart diff --git a/packages/amplify_core/lib/amplify_core.dart b/packages/amplify_core/lib/amplify_core.dart index 4add5a25ab..745f3aedf0 100644 --- a/packages/amplify_core/lib/amplify_core.dart +++ b/packages/amplify_core/lib/amplify_core.dart @@ -18,6 +18,7 @@ export 'src/category/amplify_categories.dart'; /// Config export 'src/config/amplify_config.dart'; +export 'src/config/amplify_outputs/amplify_outputs.dart'; export 'src/config/amplify_plugin_config.dart' hide UnknownPluginConfigFactory; export 'src/config/amplify_plugin_registry.dart'; export 'src/config/analytics/analytics_config.dart'; diff --git a/packages/amplify_core/lib/src/amplify_class.dart b/packages/amplify_core/lib/src/amplify_class.dart index 126639dd3a..83b5d30c93 100644 --- a/packages/amplify_core/lib/src/amplify_class.dart +++ b/packages/amplify_core/lib/src/amplify_class.dart @@ -62,7 +62,7 @@ abstract class AmplifyClass { final AmplifyAuthProviderRepository authProviderRepo = AmplifyAuthProviderRepository(); - var _configCompleter = Completer(); + var _configCompleter = Completer(); final _addPluginFutures = >[]; /// Adds one plugin at a time. Note: this method can only @@ -93,7 +93,7 @@ abstract class AmplifyClass { /// A future when completes when Amplify has been successfully configured. @internal - Future get asyncConfig => _configCompleter.future; + Future get asyncConfig => _configCompleter.future; /// Configures Amplify with the provided configuration string. /// **This method can only be called once**, after all the plugins @@ -111,23 +111,12 @@ abstract class AmplifyClass { 'Check if Amplify is already configured using Amplify.isConfigured.', ); } - - late AmplifyConfig amplifyConfig; + late final AmplifyOutputs amplifyOutputs; try { - try { - final json = jsonDecode(configuration) as Map; - amplifyConfig = AmplifyConfig.fromJson(json.cast()); - } on Object { - throw ConfigurationError( - 'The provided configuration is not a valid json. ' - 'Check underlyingException.', - recoverySuggestion: - 'Inspect your amplifyconfiguration.dart and ensure that ' - 'the string is proper json', - ); - } - await _configurePlugins(amplifyConfig); - _configCompleter.complete(amplifyConfig); + final json = _decodeJson(configuration); + amplifyOutputs = _parseJsonConfig(json); + await _configurePlugins(amplifyOutputs); + _configCompleter.complete(amplifyOutputs); } on ConfigurationError catch (e, st) { // Complete with the configuration error and reset the completer so // that 1) `configure` can be called again and 2) listeners registered @@ -145,14 +134,52 @@ abstract class AmplifyClass { // handled by the developer, but since they are unrelated to // configuration, listeners to `Amplify.asyncConfig` should be allowed to // proceed with the validated configuration. - _configCompleter.complete(amplifyConfig); + _configCompleter.complete(amplifyOutputs); _configCompleter = Completer(); rethrow; } } + AmplifyOutputs _parseJsonConfig(Map json) { + try { + return AmplifyOutputs.fromJson(json); + } on Object { + try { + final amplifyConfig = AmplifyConfig.fromJson(json); + return amplifyConfig.toAmplifyOutputs(); + } on Object catch (e) { + throw ConfigurationError( + 'The provided configuration can not be decoded to AmplifyOutputs ' + 'or AmplifyConfig. ' + 'Check underlyingException.', + recoverySuggestion: + 'If using Amplify Gen 2 ensure that the json string ' + 'can be decoded to AmplifyOutputs type. ' + 'If using Amplify Gen 1 ensure that the json ' + 'string can be decoded to AmplifyConfig type.', + underlyingException: e, + ); + } + } + } + + Map _decodeJson(String configuration) { + try { + return jsonDecode(configuration) as Map; + } on Object catch (e) { + throw ConfigurationError( + 'The provided configuration is not a valid json. ' + 'Check underlyingException.', + recoverySuggestion: + 'Inspect your amplify_outputs.dart or amplifyconfiguration.dart ' + 'and ensure that the string is proper json', + underlyingException: e, + ); + } + } + /// Configures all plugins in topologically-sorted order. - Future _configurePlugins(AmplifyConfig config) async { + Future _configurePlugins(AmplifyOutputs config) async { await Future.wait(_addPluginFutures); _addPluginFutures.clear(); final categories = { diff --git a/packages/amplify_core/lib/src/config/amplify_config.dart b/packages/amplify_core/lib/src/config/amplify_config.dart index 29ddb0dea1..df0ab58bd2 100644 --- a/packages/amplify_core/lib/src/config/amplify_config.dart +++ b/packages/amplify_core/lib/src/config/amplify_config.dart @@ -3,6 +3,7 @@ import 'package:amplify_core/amplify_core.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:meta/meta.dart'; part 'amplify_config.g.dart'; @@ -74,6 +75,20 @@ class AmplifyConfig with AWSEquatable, AWSSerializable { ); } + @internal + AmplifyOutputs toAmplifyOutputs() { + final appSync = auth?.awsPlugin?.appSync; + return AmplifyOutputs( + version: '1', + auth: auth?.toAuthOutputs(), + data: api?.toDataOutputs(appSync: appSync), + restApi: api?.toRestApiOutputs(), + analytics: analytics?.toAnalyticsOutputs(), + notifications: notifications?.toNotificationsOutputs(), + storage: storage?.toStorageOutputs(), + ); + } + @override Map toJson() => _$AmplifyConfigToJson(this); } diff --git a/packages/amplify_core/lib/src/config/amplify_config.g.dart b/packages/amplify_core/lib/src/config/amplify_config.g.dart index c94be213cc..73b0b05295 100644 --- a/packages/amplify_core/lib/src/config/amplify_config.g.dart +++ b/packages/amplify_core/lib/src/config/amplify_config.g.dart @@ -9,25 +9,43 @@ part of 'amplify_config.dart'; // ************************************************************************** AmplifyConfig _$AmplifyConfigFromJson(Map json) => - AmplifyConfig( - userAgent: json['UserAgent'] as String? ?? 'aws-amplify-cli/2.0', - version: json['Version'] as String? ?? '1.0', - api: json['api'] == null - ? null - : ApiConfig.fromJson(json['api'] as Map), - analytics: json['analytics'] == null - ? null - : AnalyticsConfig.fromJson(json['analytics'] as Map), - auth: json['auth'] == null - ? null - : AuthConfig.fromJson(json['auth'] as Map), - notifications: json['notifications'] == null - ? null - : NotificationsConfig.fromJson( - json['notifications'] as Map), - storage: json['storage'] == null - ? null - : StorageConfig.fromJson(json['storage'] as Map), + $checkedCreate( + 'AmplifyConfig', + json, + ($checkedConvert) { + final val = AmplifyConfig( + userAgent: $checkedConvert( + 'UserAgent', (v) => v as String? ?? 'aws-amplify-cli/2.0'), + version: $checkedConvert('Version', (v) => v as String? ?? '1.0'), + api: $checkedConvert( + 'api', + (v) => v == null + ? null + : ApiConfig.fromJson(v as Map)), + analytics: $checkedConvert( + 'analytics', + (v) => v == null + ? null + : AnalyticsConfig.fromJson(v as Map)), + auth: $checkedConvert( + 'auth', + (v) => v == null + ? null + : AuthConfig.fromJson(v as Map)), + notifications: $checkedConvert( + 'notifications', + (v) => v == null + ? null + : NotificationsConfig.fromJson(v as Map)), + storage: $checkedConvert( + 'storage', + (v) => v == null + ? null + : StorageConfig.fromJson(v as Map)), + ); + return val; + }, + fieldKeyMap: const {'userAgent': 'UserAgent', 'version': 'Version'}, ); Map _$AmplifyConfigToJson(AmplifyConfig instance) { diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/amplify_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/amplify_outputs.dart new file mode 100644 index 0000000000..28105b039b --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/amplify_outputs.dart @@ -0,0 +1,125 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/analytics/analytics_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/auth_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/data/data_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/notifications/notifications_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/rest_api/rest_api_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:meta/meta.dart'; + +part 'amplify_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs} +/// The amplify outputs generated by Amplify Gen 2 for +/// Amplify libraries to communicate with backend services. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class AmplifyOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs} + @internal + const AmplifyOutputs({ + this.schema, + required this.version, + this.analytics, + this.auth, + this.data, + this.restApi, + this.notifications, + this.storage, + this.custom, + }); + + factory AmplifyOutputs.fromJson(Map json) => + _$AmplifyOutputsFromJson(json); + + /// The json schema for amplify output json object. + final String? schema; + + /// The schema version. + final String version; + + /// {@macro amplify_core.amplify_outputs.analytics_outputs} + final AnalyticsOutputs? analytics; + + /// {@macro amplify_core.amplify_outputs.auth_outputs} + final AuthOutputs? auth; + + /// {@macro amplify_core.amplify_outputs.data_outputs} + @JsonKey(fromJson: _dataFromJson, toJson: _dataToJson) + final Map? data; + + /// {@macro amplify_core.amplify_outputs.rest_api_outputs} + @internal + @JsonKey(includeToJson: false) + final Map? restApi; + + /// {@macro amplify_core.amplify_outputs.notifications_outputs} + final NotificationsOutputs? notifications; + + /// {@macro amplify_core.amplify_outputs.storage_outputs} + final StorageOutputs? storage; + + /// The custom outputs generated by Amplify Gen 2. + /// + /// Amplify Categories do not use custom outputs. + final Map? custom; + + @override + List get props => [ + schema, + version, + analytics, + auth, + data, + restApi, + notifications, + storage, + custom, + ]; + + @override + String get runtimeTypeName => 'AmplifyOutputs'; + + @override + Map toJson() { + return _$AmplifyOutputsToJson(this); + } +} + +/// The name of the API plugin when a Gen 2 config is used. +/// +/// "data" is consistent with the name Gen 2 uses when generating a Gen 1 config. +/// reference: https://github.com/aws-amplify/amplify-backend/blob/4dd9d5a35c378895d1360c15a3b7ad1f09cc7653/packages/client-config/src/client-config-writer/client_config_to_mobile_legacy_converter.ts#L93 +const _dataPluginName = 'data'; + +/// Converts a single data json object to a map of [DataOutputs]. +/// +/// This manual mapping is required since the Amplify Outputs schema only supports +/// a single data object, but Amplify Flutter supports more than 1. +Map? _dataFromJson(Map? object) { + if (object == null) return null; + return { + _dataPluginName: DataOutputs.fromJson(object), + }; +} + +/// Converts a map of [DataOutputs] to a single data json object. +/// +/// This manual mapping is required since the Amplify Outputs schema only supports +/// a single data object, but Amplify Flutter supports more than 1. +Object? _dataToJson(Map? outputs) { + if (outputs == null) return null; + if (outputs.length > 1) { + throw ConfigurationError( + 'Found ${outputs.length} endpoints.' + ' Amplify Outputs does not support multiple GraphQL endpoints.', + ); + } + final data = outputs.values.firstOrNull; + return data?.toJson(); +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/amplify_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/amplify_outputs.g.dart new file mode 100644 index 0000000000..3ac604d93d --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/amplify_outputs.g.dart @@ -0,0 +1,72 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'amplify_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +AmplifyOutputs _$AmplifyOutputsFromJson(Map json) => + $checkedCreate( + 'AmplifyOutputs', + json, + ($checkedConvert) { + final val = AmplifyOutputs( + schema: $checkedConvert('schema', (v) => v as String?), + version: $checkedConvert('version', (v) => v as String), + analytics: $checkedConvert( + 'analytics', + (v) => v == null + ? null + : AnalyticsOutputs.fromJson(v as Map)), + auth: $checkedConvert( + 'auth', + (v) => v == null + ? null + : AuthOutputs.fromJson(v as Map)), + data: $checkedConvert( + 'data', (v) => _dataFromJson(v as Map?)), + restApi: $checkedConvert( + 'rest_api', + (v) => (v as Map?)?.map( + (k, e) => MapEntry( + k, RestApiOutputs.fromJson(e as Map)), + )), + notifications: $checkedConvert( + 'notifications', + (v) => v == null + ? null + : NotificationsOutputs.fromJson(v as Map)), + storage: $checkedConvert( + 'storage', + (v) => v == null + ? null + : StorageOutputs.fromJson(v as Map)), + custom: $checkedConvert('custom', (v) => v as Map?), + ); + return val; + }, + fieldKeyMap: const {'restApi': 'rest_api'}, + ); + +Map _$AmplifyOutputsToJson(AmplifyOutputs instance) { + final val = {}; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('schema', instance.schema); + val['version'] = instance.version; + writeNotNull('analytics', instance.analytics?.toJson()); + writeNotNull('auth', instance.auth?.toJson()); + writeNotNull('data', _dataToJson(instance.data)); + writeNotNull('notifications', instance.notifications?.toJson()); + writeNotNull('storage', instance.storage?.toJson()); + writeNotNull('custom', instance.custom); + return val; +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.dart new file mode 100644 index 0000000000..41d00f5f8e --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.dart @@ -0,0 +1,36 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; + +part 'amazon_pinpoint_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs.amazon_pinpoint} +/// The Amplify Gen 2 output for Amazon Pinpoint. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class AmazonPinpointOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.amazon_pinpoint} + const AmazonPinpointOutputs({required this.awsRegion, required this.appId}); + + factory AmazonPinpointOutputs.fromJson(Map json) => + _$AmazonPinpointOutputsFromJson(json); + + /// The AWS region of Amazon Pinpoint resources. + final String awsRegion; + + /// The Amazon Pinpoint App ID. + final String appId; + + @override + List get props => [awsRegion, appId]; + + @override + String get runtimeTypeName => 'AmazonPinpointOutputs'; + + @override + Object? toJson() { + return _$AmazonPinpointOutputsToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.g.dart new file mode 100644 index 0000000000..e995e1c3a2 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.g.dart @@ -0,0 +1,31 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'amazon_pinpoint_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +AmazonPinpointOutputs _$AmazonPinpointOutputsFromJson( + Map json) => + $checkedCreate( + 'AmazonPinpointOutputs', + json, + ($checkedConvert) { + final val = AmazonPinpointOutputs( + awsRegion: $checkedConvert('aws_region', (v) => v as String), + appId: $checkedConvert('app_id', (v) => v as String), + ); + return val; + }, + fieldKeyMap: const {'awsRegion': 'aws_region', 'appId': 'app_id'}, + ); + +Map _$AmazonPinpointOutputsToJson( + AmazonPinpointOutputs instance) => + { + 'aws_region': instance.awsRegion, + 'app_id': instance.appId, + }; diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/analytics/analytics_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/analytics/analytics_outputs.dart new file mode 100644 index 0000000000..2a6d1b5796 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/analytics/analytics_outputs.dart @@ -0,0 +1,34 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.dart'; + +part 'analytics_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs.analytics_outputs} +/// The Amplify Gen 2 output for Analytics category. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class AnalyticsOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.analytics_outputs} + const AnalyticsOutputs({this.amazonPinpoint}); + + factory AnalyticsOutputs.fromJson(Map json) => + _$AnalyticsOutputsFromJson(json); + + /// {@macro amplify_core.amplify_outputs.amazon_pinpoint} + final AmazonPinpointOutputs? amazonPinpoint; + + @override + List get props => [amazonPinpoint]; + + @override + String get runtimeTypeName => 'AnalyticsOutputs'; + + @override + Map toJson() { + return _$AnalyticsOutputsToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/analytics/analytics_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/analytics/analytics_outputs.g.dart new file mode 100644 index 0000000000..ee4a580cf4 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/analytics/analytics_outputs.g.dart @@ -0,0 +1,39 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'analytics_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +AnalyticsOutputs _$AnalyticsOutputsFromJson(Map json) => + $checkedCreate( + 'AnalyticsOutputs', + json, + ($checkedConvert) { + final val = AnalyticsOutputs( + amazonPinpoint: $checkedConvert( + 'amazon_pinpoint', + (v) => v == null + ? null + : AmazonPinpointOutputs.fromJson(v as Map)), + ); + return val; + }, + fieldKeyMap: const {'amazonPinpoint': 'amazon_pinpoint'}, + ); + +Map _$AnalyticsOutputsToJson(AnalyticsOutputs instance) { + final val = {}; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('amazon_pinpoint', instance.amazonPinpoint?.toJson()); + return val; +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/auth_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/auth_outputs.dart new file mode 100644 index 0000000000..e4dbe9c566 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/auth_outputs.dart @@ -0,0 +1,104 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/mfa.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/oauth_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/password_policy.dart'; +import 'package:meta/meta.dart'; + +part 'auth_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs.auth_outputs} +/// The Amplify Gen 2 outputs for Auth category. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class AuthOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.auth_outputs} + const AuthOutputs({ + required this.awsRegion, + this.userPoolId, + this.userPoolClientId, + this.appClientSecret, + this.identityPoolId, + this.passwordPolicy, + this.oauth, + this.standardRequiredAttributes, + this.usernameAttributes, + this.userVerificationTypes, + this.unauthenticatedIdentitiesEnabled = true, + this.mfaConfiguration, + this.mfaMethods, + }); + + factory AuthOutputs.fromJson(Map json) => + _$AuthOutputsFromJson(json); + + /// The AWS region of Amazon Cognito resources. + final String awsRegion; + + /// The Cognito User Pool ID. + final String? userPoolId; + + /// The Cognito User Pool Client ID. + final String? userPoolClientId; + + /// A fixed string that must be used in all API requests to the app client + /// if the the app client has one configured. + /// + /// Note: This attribute is not part of the Amplify Outputs schema. + /// This exists for backwards compatibility with the Gen 1 config. + @internal + final String? appClientSecret; + + /// The Cognito Identity Pool ID. + final String? identityPoolId; + + /// {@macro amplifyCore.amplify_outputs.password_policy} + final PasswordPolicy? passwordPolicy; + + /// {@macro amplify_core.amplify_outputs.oauth_outputs} + final OAuthOutputs? oauth; + + /// The Cognito User Pool standard attributes required for sign up. + final List? standardRequiredAttributes; + + /// The Cognito User Pool username attributes. + final List? usernameAttributes; + + /// The Cognito User Pool verification type. + final List? userVerificationTypes; + + /// Enables unauthenticated identities. + final bool unauthenticatedIdentitiesEnabled; + + /// {@macro amplify_core.amplify_outputs.maf_enforcement} + final MfaEnforcement? mfaConfiguration; + + /// {@macro amplify_core.amplify_outputs.maf_method} + final List? mfaMethods; + + @override + List get props => [ + awsRegion, + userPoolId, + userPoolClientId, + identityPoolId, + oauth, + standardRequiredAttributes, + usernameAttributes, + userVerificationTypes, + unauthenticatedIdentitiesEnabled, + mfaConfiguration, + mfaMethods, + ]; + + @override + String get runtimeTypeName => 'AuthOutputs'; + + @override + Object? toJson() { + return _$AuthOutputsToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/auth_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/auth_outputs.g.dart new file mode 100644 index 0000000000..f278972143 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/auth_outputs.g.dart @@ -0,0 +1,131 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'auth_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +AuthOutputs _$AuthOutputsFromJson(Map json) => $checkedCreate( + 'AuthOutputs', + json, + ($checkedConvert) { + final val = AuthOutputs( + awsRegion: $checkedConvert('aws_region', (v) => v as String), + userPoolId: $checkedConvert('user_pool_id', (v) => v as String?), + userPoolClientId: + $checkedConvert('user_pool_client_id', (v) => v as String?), + appClientSecret: + $checkedConvert('app_client_secret', (v) => v as String?), + identityPoolId: + $checkedConvert('identity_pool_id', (v) => v as String?), + passwordPolicy: $checkedConvert( + 'password_policy', + (v) => v == null + ? null + : PasswordPolicy.fromJson(v as Map)), + oauth: $checkedConvert( + 'oauth', + (v) => v == null + ? null + : OAuthOutputs.fromJson(v as Map)), + standardRequiredAttributes: $checkedConvert( + 'standard_required_attributes', + (v) => (v as List?) + ?.map((e) => const CognitoUserAttributeKeyConverter() + .fromJson(e as String)) + .toList()), + usernameAttributes: $checkedConvert( + 'username_attributes', + (v) => (v as List?) + ?.map((e) => const CognitoUserAttributeKeyConverter() + .fromJson(e as String)) + .toList()), + userVerificationTypes: $checkedConvert( + 'user_verification_types', + (v) => (v as List?) + ?.map((e) => const CognitoUserAttributeKeyConverter() + .fromJson(e as String)) + .toList()), + unauthenticatedIdentitiesEnabled: $checkedConvert( + 'unauthenticated_identities_enabled', (v) => v as bool? ?? true), + mfaConfiguration: $checkedConvert('mfa_configuration', + (v) => $enumDecodeNullable(_$MfaEnforcementEnumMap, v)), + mfaMethods: $checkedConvert( + 'mfa_methods', + (v) => (v as List?) + ?.map((e) => $enumDecode(_$MfaMethodEnumMap, e)) + .toList()), + ); + return val; + }, + fieldKeyMap: const { + 'awsRegion': 'aws_region', + 'userPoolId': 'user_pool_id', + 'userPoolClientId': 'user_pool_client_id', + 'appClientSecret': 'app_client_secret', + 'identityPoolId': 'identity_pool_id', + 'passwordPolicy': 'password_policy', + 'standardRequiredAttributes': 'standard_required_attributes', + 'usernameAttributes': 'username_attributes', + 'userVerificationTypes': 'user_verification_types', + 'unauthenticatedIdentitiesEnabled': + 'unauthenticated_identities_enabled', + 'mfaConfiguration': 'mfa_configuration', + 'mfaMethods': 'mfa_methods' + }, + ); + +Map _$AuthOutputsToJson(AuthOutputs instance) { + final val = { + 'aws_region': instance.awsRegion, + }; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('user_pool_id', instance.userPoolId); + writeNotNull('user_pool_client_id', instance.userPoolClientId); + writeNotNull('app_client_secret', instance.appClientSecret); + writeNotNull('identity_pool_id', instance.identityPoolId); + writeNotNull('password_policy', instance.passwordPolicy?.toJson()); + writeNotNull('oauth', instance.oauth?.toJson()); + writeNotNull( + 'standard_required_attributes', + instance.standardRequiredAttributes + ?.map(const CognitoUserAttributeKeyConverter().toJson) + .toList()); + writeNotNull( + 'username_attributes', + instance.usernameAttributes + ?.map(const CognitoUserAttributeKeyConverter().toJson) + .toList()); + writeNotNull( + 'user_verification_types', + instance.userVerificationTypes + ?.map(const CognitoUserAttributeKeyConverter().toJson) + .toList()); + val['unauthenticated_identities_enabled'] = + instance.unauthenticatedIdentitiesEnabled; + writeNotNull( + 'mfa_configuration', _$MfaEnforcementEnumMap[instance.mfaConfiguration]); + writeNotNull('mfa_methods', + instance.mfaMethods?.map((e) => _$MfaMethodEnumMap[e]!).toList()); + return val; +} + +const _$MfaEnforcementEnumMap = { + MfaEnforcement.optional: 'OPTIONAL', + MfaEnforcement.on: 'REQUIRED', + MfaEnforcement.off: 'NONE', +}; + +const _$MfaMethodEnumMap = { + MfaMethod.sms: 'SMS', + MfaMethod.totp: 'TOTP', +}; diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/identity_provider.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/identity_provider.dart new file mode 100644 index 0000000000..95eb7f8b97 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/identity_provider.dart @@ -0,0 +1,21 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:json_annotation/json_annotation.dart'; + +/// {@template amplify_core.amplify_outputs.identity_providers} +/// Identity providers set on Cognito User Pool. +/// {@endtemplate} +enum IdentityProvider { + @JsonValue('FACEBOOK') + facebook, + + @JsonValue('GOOGLE') + google, + + @JsonValue('LOGIN_WITH_AMAZON') + amazon, + + @JsonValue('SIGN_IN_WITH_APPLE') + apple, +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/mfa.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/mfa.dart new file mode 100644 index 0000000000..e82d3327d7 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/mfa.dart @@ -0,0 +1,33 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:json_annotation/json_annotation.dart'; + +/// {@template amplify_core.amplify_outputs.maf_method} +/// The MFA method of Amazon Cognito User Pool. +/// {@endtemplate} +enum MfaMethod { + @JsonValue('SMS') + sms, + + @JsonValue('TOTP') + totp; + + /// The value to pass to `Amplify.Auth.confirmSignIn` when + /// selecting an MFA type. + String get confirmationValue => name; +} + +/// {@template amplify_core.amplify_outputs.maf_enforcement} +/// The MFA enforcement for Amazon Cognito User Pool. +/// {@endtemplate} +enum MfaEnforcement { + @JsonValue('OPTIONAL') + optional, + + @JsonValue('REQUIRED') + on, + + @JsonValue('NONE') + off, +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_outputs.dart new file mode 100644 index 0000000000..230c39ce7f --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_outputs.dart @@ -0,0 +1,121 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/identity_provider.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/oauth_response_type.dart'; +import 'package:meta/meta.dart'; + +part 'oauth_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs.oauth_outputs} +/// The Amplify Gen 2 outputs for oauth. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class OAuthOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.oauth_outputs} + const OAuthOutputs({ + required this.identityProviders, + required this.domain, + required this.scopes, + required this.redirectSignInUri, + this.signInUri, + this.signInUriQueryParameters, + required this.redirectSignOutUri, + this.signOutUri, + this.signOutUriQueryParameters, + this.tokenUri, + this.tokenUriQueryParameters, + required this.responseType, + }); + + factory OAuthOutputs.fromJson(Map json) => + _$OAuthOutputsFromJson(json); + + /// {@macro amplify_core.amplify_outputs.identity_providers} + final List identityProviders; + + /// The domain used for identity providers. + final String domain; + + /// The authorized scopes used for the identity providers. + final List scopes; + + /// URIs used to redirect after signing in using an identity provider. + final List redirectSignInUri; + + /// An optional URI to use when signing in. + /// + /// Note: This attribute is not part of the Amplify Outputs schema. + /// This exists for backwards compatibility with the Gen 1 config. + @internal + final String? signInUri; + + /// Optional query params in the sign in URI. + /// + /// Note: This attribute is not part of the Amplify Outputs schema. + /// This exists for backwards compatibility with the Gen 1 config. + @internal + final Map? signInUriQueryParameters; + + /// URIs used to redirect after signing out. + final List redirectSignOutUri; + + /// An optional URI to use when signing out. + /// + /// Note: This attribute is not part of the Amplify Outputs schema. + /// This exists for backwards compatibility with the Gen 1 config. + @internal + final String? signOutUri; + + /// Optional query params in the sign out URI. + /// + /// Note: This attribute is not part of the Amplify Outputs schema. + /// This exists for backwards compatibility with the Gen 1 config. + @internal + final Map? signOutUriQueryParameters; + + /// The OAuth token URI. + /// + /// Defaults to '/oauth2/token'. + /// + /// Note: This attribute is not part of the Amplify Outputs schema. + /// This exists for backwards compatibility with the Gen 1 config. + @internal + final String? tokenUri; + + /// Optional query params in the OAuth token URI. + /// + /// Note: This attribute is not part of the Amplify Outputs schema. + /// This exists for backwards compatibility with the Gen 1 config. + @internal + final Map? tokenUriQueryParameters; + + /// {@macro amplify_core.amplify_outputs.oauth_response_type} + final OAuthResponseType responseType; + + @override + List get props => [ + identityProviders, + domain, + scopes, + redirectSignInUri, + signInUri, + signInUriQueryParameters, + redirectSignOutUri, + signOutUri, + signOutUriQueryParameters, + tokenUri, + tokenUriQueryParameters, + responseType, + ]; + + @override + String get runtimeTypeName => 'OAuthOutputs'; + + @override + Object? toJson() { + return _$OAuthOutputsToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_outputs.g.dart new file mode 100644 index 0000000000..f59d2d6d3b --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_outputs.g.dart @@ -0,0 +1,105 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'oauth_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +OAuthOutputs _$OAuthOutputsFromJson(Map json) => + $checkedCreate( + 'OAuthOutputs', + json, + ($checkedConvert) { + final val = OAuthOutputs( + identityProviders: $checkedConvert( + 'identity_providers', + (v) => (v as List) + .map((e) => $enumDecode(_$IdentityProviderEnumMap, e)) + .toList()), + domain: $checkedConvert('domain', (v) => v as String), + scopes: $checkedConvert('scopes', + (v) => (v as List).map((e) => e as String).toList()), + redirectSignInUri: $checkedConvert('redirect_sign_in_uri', + (v) => (v as List).map((e) => e as String).toList()), + signInUri: $checkedConvert('sign_in_uri', (v) => v as String?), + signInUriQueryParameters: $checkedConvert( + 'sign_in_uri_query_parameters', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + redirectSignOutUri: $checkedConvert('redirect_sign_out_uri', + (v) => (v as List).map((e) => e as String).toList()), + signOutUri: $checkedConvert('sign_out_uri', (v) => v as String?), + signOutUriQueryParameters: $checkedConvert( + 'sign_out_uri_query_parameters', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + tokenUri: $checkedConvert('token_uri', (v) => v as String?), + tokenUriQueryParameters: $checkedConvert( + 'token_uri_query_parameters', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + responseType: $checkedConvert('response_type', + (v) => $enumDecode(_$OAuthResponseTypeEnumMap, v)), + ); + return val; + }, + fieldKeyMap: const { + 'identityProviders': 'identity_providers', + 'redirectSignInUri': 'redirect_sign_in_uri', + 'signInUri': 'sign_in_uri', + 'signInUriQueryParameters': 'sign_in_uri_query_parameters', + 'redirectSignOutUri': 'redirect_sign_out_uri', + 'signOutUri': 'sign_out_uri', + 'signOutUriQueryParameters': 'sign_out_uri_query_parameters', + 'tokenUri': 'token_uri', + 'tokenUriQueryParameters': 'token_uri_query_parameters', + 'responseType': 'response_type' + }, + ); + +Map _$OAuthOutputsToJson(OAuthOutputs instance) { + final val = { + 'identity_providers': instance.identityProviders + .map((e) => _$IdentityProviderEnumMap[e]!) + .toList(), + 'domain': instance.domain, + 'scopes': instance.scopes, + 'redirect_sign_in_uri': instance.redirectSignInUri, + }; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('sign_in_uri', instance.signInUri); + writeNotNull( + 'sign_in_uri_query_parameters', instance.signInUriQueryParameters); + val['redirect_sign_out_uri'] = instance.redirectSignOutUri; + writeNotNull('sign_out_uri', instance.signOutUri); + writeNotNull( + 'sign_out_uri_query_parameters', instance.signOutUriQueryParameters); + writeNotNull('token_uri', instance.tokenUri); + writeNotNull('token_uri_query_parameters', instance.tokenUriQueryParameters); + val['response_type'] = _$OAuthResponseTypeEnumMap[instance.responseType]!; + return val; +} + +const _$IdentityProviderEnumMap = { + IdentityProvider.facebook: 'FACEBOOK', + IdentityProvider.google: 'GOOGLE', + IdentityProvider.amazon: 'LOGIN_WITH_AMAZON', + IdentityProvider.apple: 'SIGN_IN_WITH_APPLE', +}; + +const _$OAuthResponseTypeEnumMap = { + OAuthResponseType.code: 'code', + OAuthResponseType.token: 'token', +}; diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_response_type.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_response_type.dart new file mode 100644 index 0000000000..a7ef44ff31 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/oauth_response_type.dart @@ -0,0 +1,15 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:json_annotation/json_annotation.dart'; + +/// {@template amplify_core.amplify_outputs.oauth_response_type} +/// The response type for identity providers set on Amazon Cognito. +/// {@endtemplate} +enum OAuthResponseType { + @JsonValue('code') + code, + + @JsonValue('token') + token, +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/password_policy.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/password_policy.dart new file mode 100644 index 0000000000..600e63ace1 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/password_policy.dart @@ -0,0 +1,57 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; + +part 'password_policy.g.dart'; + +/// {@template amplify_core.amplify_outputs.password_policy} +/// The Cognito User Pool password policy. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class PasswordPolicy + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.password_policy} + const PasswordPolicy({ + this.minLength, + this.requireNumbers = false, + this.requireLowercase = false, + this.requireUppercase = false, + this.requireSymbols = false, + }); + + factory PasswordPolicy.fromJson(Map json) => + _$PasswordPolicyFromJson(json); + + /// The min length. + final int? minLength; + + /// Requires numbers. + final bool requireNumbers; + + /// Requires lower case. + final bool requireLowercase; + + /// Requires upper case. + final bool requireUppercase; + + /// Requires symbols. + final bool requireSymbols; + + @override + List get props => [ + minLength, + requireNumbers, + requireLowercase, + requireUppercase, + requireSymbols, + ]; + + @override + String get runtimeTypeName => 'PasswordPolicy'; + + @override + Object? toJson() { + return _$PasswordPolicyToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/auth/password_policy.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/auth/password_policy.g.dart new file mode 100644 index 0000000000..97b4b536ea --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/auth/password_policy.g.dart @@ -0,0 +1,53 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'password_policy.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +PasswordPolicy _$PasswordPolicyFromJson(Map json) => + $checkedCreate( + 'PasswordPolicy', + json, + ($checkedConvert) { + final val = PasswordPolicy( + minLength: $checkedConvert('min_length', (v) => v as int?), + requireNumbers: + $checkedConvert('require_numbers', (v) => v as bool? ?? false), + requireLowercase: + $checkedConvert('require_lowercase', (v) => v as bool? ?? false), + requireUppercase: + $checkedConvert('require_uppercase', (v) => v as bool? ?? false), + requireSymbols: + $checkedConvert('require_symbols', (v) => v as bool? ?? false), + ); + return val; + }, + fieldKeyMap: const { + 'minLength': 'min_length', + 'requireNumbers': 'require_numbers', + 'requireLowercase': 'require_lowercase', + 'requireUppercase': 'require_uppercase', + 'requireSymbols': 'require_symbols' + }, + ); + +Map _$PasswordPolicyToJson(PasswordPolicy instance) { + final val = {}; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('min_length', instance.minLength); + val['require_numbers'] = instance.requireNumbers; + val['require_lowercase'] = instance.requireLowercase; + val['require_uppercase'] = instance.requireUppercase; + val['require_symbols'] = instance.requireSymbols; + return val; +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/data/data_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/data/data_outputs.dart new file mode 100644 index 0000000000..1ae78248c5 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/data/data_outputs.dart @@ -0,0 +1,57 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; + +part 'data_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs.data_outputs} +/// The Amplify Gen 2 outputs for API GraphQL category. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class DataOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.data_outputs} + const DataOutputs({ + required this.awsRegion, + required this.url, + this.apiKey, + required this.defaultAuthorizationType, + required this.authorizationTypes, + }); + + factory DataOutputs.fromJson(Map json) => + _$DataOutputsFromJson(json); + + /// The AWS region of Amazon AppSync resources. + final String awsRegion; + + /// The AppSync endpoint URL. + final String url; + + /// The AppSync API Key. + final String? apiKey; + + /// The default authorization type for AWS AppSync. + final APIAuthorizationType defaultAuthorizationType; + + /// List of supported authorization types for AWS AppSync. + final List authorizationTypes; + + @override + List get props => [ + awsRegion, + url, + apiKey, + defaultAuthorizationType, + authorizationTypes, + ]; + + @override + String get runtimeTypeName => 'DataOutputs'; + + @override + Object? toJson() { + return _$DataOutputsToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/data/data_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/data/data_outputs.g.dart new file mode 100644 index 0000000000..1850349707 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/data/data_outputs.g.dart @@ -0,0 +1,66 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'data_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +DataOutputs _$DataOutputsFromJson(Map json) => $checkedCreate( + 'DataOutputs', + json, + ($checkedConvert) { + final val = DataOutputs( + awsRegion: $checkedConvert('aws_region', (v) => v as String), + url: $checkedConvert('url', (v) => v as String), + apiKey: $checkedConvert('api_key', (v) => v as String?), + defaultAuthorizationType: $checkedConvert( + 'default_authorization_type', + (v) => $enumDecode(_$APIAuthorizationTypeEnumMap, v)), + authorizationTypes: $checkedConvert( + 'authorization_types', + (v) => (v as List) + .map((e) => $enumDecode(_$APIAuthorizationTypeEnumMap, e)) + .toList()), + ); + return val; + }, + fieldKeyMap: const { + 'awsRegion': 'aws_region', + 'apiKey': 'api_key', + 'defaultAuthorizationType': 'default_authorization_type', + 'authorizationTypes': 'authorization_types' + }, + ); + +Map _$DataOutputsToJson(DataOutputs instance) { + final val = { + 'aws_region': instance.awsRegion, + 'url': instance.url, + }; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('api_key', instance.apiKey); + val['default_authorization_type'] = + _$APIAuthorizationTypeEnumMap[instance.defaultAuthorizationType]!; + val['authorization_types'] = instance.authorizationTypes + .map((e) => _$APIAuthorizationTypeEnumMap[e]!) + .toList(); + return val; +} + +const _$APIAuthorizationTypeEnumMap = { + APIAuthorizationType.none: 'NONE', + APIAuthorizationType.apiKey: 'API_KEY', + APIAuthorizationType.iam: 'AWS_IAM', + APIAuthorizationType.oidc: 'OPENID_CONNECT', + APIAuthorizationType.userPools: 'AMAZON_COGNITO_USER_POOLS', + APIAuthorizationType.function: 'AWS_LAMBDA', +}; diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/notifications/amazon_pinpoint_channel.dart b/packages/amplify_core/lib/src/config/amplify_outputs/notifications/amazon_pinpoint_channel.dart new file mode 100644 index 0000000000..1aff83b6ba --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/notifications/amazon_pinpoint_channel.dart @@ -0,0 +1,24 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:json_annotation/json_annotation.dart'; + +/// {@template amplify_core.amplify_outputs.amazon_pinpoint_channel} +/// Supported channels for Amazon Pinpoint. +/// {@endtemplate} +enum AmazonPinpointChannel { + @JsonValue('APNS') + apns, + + @JsonValue('EMAIL') + email, + + @JsonValue('FCM') + fcm, + + @JsonValue('IN_APP_MESSAGING') + inAppMessaging, + + @JsonValue('SMS') + sms, +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/notifications/notifications_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/notifications/notifications_outputs.dart new file mode 100644 index 0000000000..dc9b9d37cb --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/notifications/notifications_outputs.dart @@ -0,0 +1,44 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/notifications/amazon_pinpoint_channel.dart'; + +part 'notifications_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs.notifications_outputs} +/// The Amplify Gen 2 outputs for Notifications category. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class NotificationsOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.notifications_outputs} + const NotificationsOutputs({ + required this.awsRegion, + required this.amazonPinpointAppId, + required this.channels, + }); + + factory NotificationsOutputs.fromJson(Map json) => + _$NotificationsOutputsFromJson(json); + + /// The AWS region of Amazon Pinpoint resources. + final String awsRegion; + + /// Amazon Pinpoint App ID. + final String amazonPinpointAppId; + + /// {@macro amplify_core.amplify_outputs.amazon_pinpoint_channel} + final List channels; + + @override + List get props => [awsRegion, amazonPinpointAppId, channels]; + + @override + String get runtimeTypeName => 'NotificationsOutputs'; + + @override + Object? toJson() { + return _$NotificationsOutputsToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/notifications/notifications_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/notifications/notifications_outputs.g.dart new file mode 100644 index 0000000000..a1a0b37012 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/notifications/notifications_outputs.g.dart @@ -0,0 +1,51 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'notifications_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +NotificationsOutputs _$NotificationsOutputsFromJson( + Map json) => + $checkedCreate( + 'NotificationsOutputs', + json, + ($checkedConvert) { + final val = NotificationsOutputs( + awsRegion: $checkedConvert('aws_region', (v) => v as String), + amazonPinpointAppId: + $checkedConvert('amazon_pinpoint_app_id', (v) => v as String), + channels: $checkedConvert( + 'channels', + (v) => (v as List) + .map((e) => $enumDecode(_$AmazonPinpointChannelEnumMap, e)) + .toList()), + ); + return val; + }, + fieldKeyMap: const { + 'awsRegion': 'aws_region', + 'amazonPinpointAppId': 'amazon_pinpoint_app_id' + }, + ); + +Map _$NotificationsOutputsToJson( + NotificationsOutputs instance) => + { + 'aws_region': instance.awsRegion, + 'amazon_pinpoint_app_id': instance.amazonPinpointAppId, + 'channels': instance.channels + .map((e) => _$AmazonPinpointChannelEnumMap[e]!) + .toList(), + }; + +const _$AmazonPinpointChannelEnumMap = { + AmazonPinpointChannel.apns: 'APNS', + AmazonPinpointChannel.email: 'EMAIL', + AmazonPinpointChannel.fcm: 'FCM', + AmazonPinpointChannel.inAppMessaging: 'IN_APP_MESSAGING', + AmazonPinpointChannel.sms: 'SMS', +}; diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/rest_api/rest_api_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/rest_api/rest_api_outputs.dart new file mode 100644 index 0000000000..85028f5be1 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/rest_api/rest_api_outputs.dart @@ -0,0 +1,55 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; + +part 'rest_api_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs.rest_api_outputs} +/// An internal representation of Rest API. +/// +/// This class should not be exposed publicly since the Gen 2 schema does not +/// support Rest API. This class exists to support Gen 1 configs that use Rest API. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class RestApiOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.rest_api_outputs} + const RestApiOutputs({ + required this.awsRegion, + required this.url, + this.apiKey, + required this.authorizationType, + }); + + factory RestApiOutputs.fromJson(Map json) => + _$RestApiOutputsFromJson(json); + + /// The AWS region of Amazon AWS Gateway resources. + final String awsRegion; + + /// The AWS Gateway endpoint URL. + final String url; + + /// The AppSync API Key. + final String? apiKey; + + /// The authorization type. + final APIAuthorizationType authorizationType; + + @override + List get props => [ + awsRegion, + url, + apiKey, + authorizationType, + ]; + + @override + String get runtimeTypeName => 'RestApiOutputs'; + + @override + Object? toJson() { + return _$RestApiOutputsToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/rest_api/rest_api_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/rest_api/rest_api_outputs.g.dart new file mode 100644 index 0000000000..2834993493 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/rest_api/rest_api_outputs.g.dart @@ -0,0 +1,57 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'rest_api_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +RestApiOutputs _$RestApiOutputsFromJson(Map json) => + $checkedCreate( + 'RestApiOutputs', + json, + ($checkedConvert) { + final val = RestApiOutputs( + awsRegion: $checkedConvert('aws_region', (v) => v as String), + url: $checkedConvert('url', (v) => v as String), + apiKey: $checkedConvert('api_key', (v) => v as String?), + authorizationType: $checkedConvert('authorization_type', + (v) => $enumDecode(_$APIAuthorizationTypeEnumMap, v)), + ); + return val; + }, + fieldKeyMap: const { + 'awsRegion': 'aws_region', + 'apiKey': 'api_key', + 'authorizationType': 'authorization_type' + }, + ); + +Map _$RestApiOutputsToJson(RestApiOutputs instance) { + final val = { + 'aws_region': instance.awsRegion, + 'url': instance.url, + }; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('api_key', instance.apiKey); + val['authorization_type'] = + _$APIAuthorizationTypeEnumMap[instance.authorizationType]!; + return val; +} + +const _$APIAuthorizationTypeEnumMap = { + APIAuthorizationType.none: 'NONE', + APIAuthorizationType.apiKey: 'API_KEY', + APIAuthorizationType.iam: 'AWS_IAM', + APIAuthorizationType.oidc: 'OPENID_CONNECT', + APIAuthorizationType.userPools: 'AMAZON_COGNITO_USER_POOLS', + APIAuthorizationType.function: 'AWS_LAMBDA', +}; diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/storage/storage_outputs.dart b/packages/amplify_core/lib/src/config/amplify_outputs/storage/storage_outputs.dart new file mode 100644 index 0000000000..9db9356aa6 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/storage/storage_outputs.dart @@ -0,0 +1,36 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'package:amplify_core/amplify_core.dart'; + +part 'storage_outputs.g.dart'; + +/// {@template amplify_core.amplify_outputs.storage_outputs} +/// The Amplify Gen 2 outputs for Storage category. +/// {@endtemplate} +@zAmplifyOutputsSerializable +class StorageOutputs + with AWSEquatable, AWSSerializable, AWSDebuggable { + /// {@macro amplify_core.amplify_outputs.storage_outputs} + const StorageOutputs({required this.awsRegion, required this.bucketName}); + + factory StorageOutputs.fromJson(Map json) => + _$StorageOutputsFromJson(json); + + /// The AWS region of Amazon S3 resources. + final String awsRegion; + + /// The Amazon S3 bucket name. + final String bucketName; + + @override + List get props => [awsRegion, bucketName]; + + @override + String get runtimeTypeName => 'StorageOutputs'; + + @override + Object? toJson() { + return _$StorageOutputsToJson(this); + } +} diff --git a/packages/amplify_core/lib/src/config/amplify_outputs/storage/storage_outputs.g.dart b/packages/amplify_core/lib/src/config/amplify_outputs/storage/storage_outputs.g.dart new file mode 100644 index 0000000000..7b90421189 --- /dev/null +++ b/packages/amplify_core/lib/src/config/amplify_outputs/storage/storage_outputs.g.dart @@ -0,0 +1,32 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: deprecated_member_use_from_same_package + +part of 'storage_outputs.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +StorageOutputs _$StorageOutputsFromJson(Map json) => + $checkedCreate( + 'StorageOutputs', + json, + ($checkedConvert) { + final val = StorageOutputs( + awsRegion: $checkedConvert('aws_region', (v) => v as String), + bucketName: $checkedConvert('bucket_name', (v) => v as String), + ); + return val; + }, + fieldKeyMap: const { + 'awsRegion': 'aws_region', + 'bucketName': 'bucket_name' + }, + ); + +Map _$StorageOutputsToJson(StorageOutputs instance) => + { + 'aws_region': instance.awsRegion, + 'bucket_name': instance.bucketName, + }; diff --git a/packages/amplify_core/lib/src/config/analytics/analytics_config.dart b/packages/amplify_core/lib/src/config/analytics/analytics_config.dart index d323f6f3aa..f8a2e8988c 100644 --- a/packages/amplify_core/lib/src/config/analytics/analytics_config.dart +++ b/packages/amplify_core/lib/src/config/analytics/analytics_config.dart @@ -2,6 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/analytics/analytics_outputs.dart'; +import 'package:meta/meta.dart'; export 'pinpoint_config.dart' hide PinpointPluginConfigFactory; @@ -30,4 +33,20 @@ class AnalyticsConfig extends AmplifyPluginConfigMap { @override Map toJson() => _$AnalyticsConfigToJson(this); + + @internal + AnalyticsOutputs? toAnalyticsOutputs() { + final plugin = awsPlugin?.pinpointAnalytics; + if (plugin == null) { + return null; + } + final awsRegion = plugin.region; + final appId = plugin.appId; + return AnalyticsOutputs( + amazonPinpoint: AmazonPinpointOutputs( + awsRegion: awsRegion, + appId: appId, + ), + ); + } } diff --git a/packages/amplify_core/lib/src/config/analytics/analytics_config.g.dart b/packages/amplify_core/lib/src/config/analytics/analytics_config.g.dart index c74d9f3bd0..b6064f19cc 100644 --- a/packages/amplify_core/lib/src/config/analytics/analytics_config.g.dart +++ b/packages/amplify_core/lib/src/config/analytics/analytics_config.g.dart @@ -9,8 +9,16 @@ part of 'analytics_config.dart'; // ************************************************************************** AnalyticsConfig _$AnalyticsConfigFromJson(Map json) => - AnalyticsConfig( - plugins: AmplifyPluginRegistry.pluginConfigsFromJson(json['plugins']), + $checkedCreate( + 'AnalyticsConfig', + json, + ($checkedConvert) { + final val = AnalyticsConfig( + plugins: $checkedConvert( + 'plugins', (v) => AmplifyPluginRegistry.pluginConfigsFromJson(v)), + ); + return val; + }, ); Map _$AnalyticsConfigToJson(AnalyticsConfig instance) => diff --git a/packages/amplify_core/lib/src/config/analytics/pinpoint_config.g.dart b/packages/amplify_core/lib/src/config/analytics/pinpoint_config.g.dart index e72a3e0dd8..e0f6f980bc 100644 --- a/packages/amplify_core/lib/src/config/analytics/pinpoint_config.g.dart +++ b/packages/amplify_core/lib/src/config/analytics/pinpoint_config.g.dart @@ -10,11 +10,18 @@ part of 'pinpoint_config.dart'; PinpointPluginConfig _$PinpointPluginConfigFromJson( Map json) => - PinpointPluginConfig( - pinpointAnalytics: PinpointAnalytics.fromJson( - json['pinpointAnalytics'] as Map), - pinpointTargeting: PinpointTargeting.fromJson( - json['pinpointTargeting'] as Map), + $checkedCreate( + 'PinpointPluginConfig', + json, + ($checkedConvert) { + final val = PinpointPluginConfig( + pinpointAnalytics: $checkedConvert('pinpointAnalytics', + (v) => PinpointAnalytics.fromJson(v as Map)), + pinpointTargeting: $checkedConvert('pinpointTargeting', + (v) => PinpointTargeting.fromJson(v as Map)), + ); + return val; + }, ); Map _$PinpointPluginConfigToJson( @@ -25,9 +32,16 @@ Map _$PinpointPluginConfigToJson( }; PinpointAnalytics _$PinpointAnalyticsFromJson(Map json) => - PinpointAnalytics( - appId: json['appId'] as String, - region: json['region'] as String, + $checkedCreate( + 'PinpointAnalytics', + json, + ($checkedConvert) { + final val = PinpointAnalytics( + appId: $checkedConvert('appId', (v) => v as String), + region: $checkedConvert('region', (v) => v as String), + ); + return val; + }, ); Map _$PinpointAnalyticsToJson(PinpointAnalytics instance) => @@ -37,8 +51,15 @@ Map _$PinpointAnalyticsToJson(PinpointAnalytics instance) => }; PinpointTargeting _$PinpointTargetingFromJson(Map json) => - PinpointTargeting( - region: json['region'] as String, + $checkedCreate( + 'PinpointTargeting', + json, + ($checkedConvert) { + final val = PinpointTargeting( + region: $checkedConvert('region', (v) => v as String), + ); + return val; + }, ); Map _$PinpointTargetingToJson(PinpointTargeting instance) => diff --git a/packages/amplify_core/lib/src/config/api/api_config.dart b/packages/amplify_core/lib/src/config/api/api_config.dart index 8c3d6e9c93..85d6f070bb 100644 --- a/packages/amplify_core/lib/src/config/api/api_config.dart +++ b/packages/amplify_core/lib/src/config/api/api_config.dart @@ -2,6 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/data/data_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/rest_api/rest_api_outputs.dart'; +import 'package:meta/meta.dart'; export 'aws_api_config.dart' hide AWSApiPluginConfigFactory; @@ -30,4 +33,60 @@ class ApiConfig extends AmplifyPluginConfigMap { @override Map toJson() => _$ApiConfigToJson(this); + + @internal + Map? toDataOutputs({ + AWSConfigMap? appSync, + }) { + final plugins = _getPlugins(EndpointType.graphQL); + if (plugins == null) { + return null; + } + return plugins.map((key, plugin) { + final defaultAuthorizationType = plugin.authorizationType; + final awsRegion = plugin.region; + final url = plugin.endpoint; + final allModes = (appSync?.all.values ?? []); + final authorizationTypes = allModes + .where((plugin) => plugin.apiUrl == url && plugin.region == awsRegion) + .map((config) => config.authMode) + .where((mode) => mode != defaultAuthorizationType) + .toList(); + final data = DataOutputs( + awsRegion: awsRegion, + url: url, + defaultAuthorizationType: defaultAuthorizationType, + apiKey: plugin.apiKey, + authorizationTypes: authorizationTypes, + ); + return MapEntry(key, data); + }); + } + + @internal + Map? toRestApiOutputs() { + final plugins = _getPlugins(EndpointType.rest); + if (plugins == null) { + return null; + } + return plugins.map((key, plugin) { + final rest = RestApiOutputs( + awsRegion: plugin.region, + url: plugin.endpoint, + authorizationType: plugin.authorizationType, + apiKey: plugin.apiKey, + ); + return MapEntry(key, rest); + }); + } + + Map? _getPlugins(EndpointType endpointType) { + final plugin = awsPlugin; + if (plugin == null) { + return null; + } + final entries = + plugin.all.entries.where((p) => p.value.endpointType == endpointType); + return Map.fromEntries(entries); + } } diff --git a/packages/amplify_core/lib/src/config/api/api_config.g.dart b/packages/amplify_core/lib/src/config/api/api_config.g.dart index 0c9a03cca9..f1812ea409 100644 --- a/packages/amplify_core/lib/src/config/api/api_config.g.dart +++ b/packages/amplify_core/lib/src/config/api/api_config.g.dart @@ -8,8 +8,16 @@ part of 'api_config.dart'; // JsonSerializableGenerator // ************************************************************************** -ApiConfig _$ApiConfigFromJson(Map json) => ApiConfig( - plugins: AmplifyPluginRegistry.pluginConfigsFromJson(json['plugins']), +ApiConfig _$ApiConfigFromJson(Map json) => $checkedCreate( + 'ApiConfig', + json, + ($checkedConvert) { + final val = ApiConfig( + plugins: $checkedConvert( + 'plugins', (v) => AmplifyPluginRegistry.pluginConfigsFromJson(v)), + ); + return val; + }, ); Map _$ApiConfigToJson(ApiConfig instance) => { diff --git a/packages/amplify_core/lib/src/config/api/appsync/api_config.g.dart b/packages/amplify_core/lib/src/config/api/appsync/api_config.g.dart index dce627abd2..216b39a2fb 100644 --- a/packages/amplify_core/lib/src/config/api/appsync/api_config.g.dart +++ b/packages/amplify_core/lib/src/config/api/appsync/api_config.g.dart @@ -8,13 +8,22 @@ part of 'api_config.dart'; // JsonSerializableGenerator // ************************************************************************** -AWSApiConfig _$AWSApiConfigFromJson(Map json) => AWSApiConfig( - endpointType: $enumDecode(_$EndpointTypeEnumMap, json['endpointType']), - endpoint: json['endpoint'] as String, - region: json['region'] as String, - authorizationType: - $enumDecode(_$APIAuthorizationTypeEnumMap, json['authorizationType']), - apiKey: json['apiKey'] as String?, +AWSApiConfig _$AWSApiConfigFromJson(Map json) => + $checkedCreate( + 'AWSApiConfig', + json, + ($checkedConvert) { + final val = AWSApiConfig( + endpointType: $checkedConvert( + 'endpointType', (v) => $enumDecode(_$EndpointTypeEnumMap, v)), + endpoint: $checkedConvert('endpoint', (v) => v as String), + region: $checkedConvert('region', (v) => v as String), + authorizationType: $checkedConvert('authorizationType', + (v) => $enumDecode(_$APIAuthorizationTypeEnumMap, v)), + apiKey: $checkedConvert('apiKey', (v) => v as String?), + ); + return val; + }, ); Map _$AWSApiConfigToJson(AWSApiConfig instance) { diff --git a/packages/amplify_core/lib/src/config/auth/auth_config.dart b/packages/amplify_core/lib/src/config/auth/auth_config.dart index e3a4f45355..f5270482e4 100644 --- a/packages/amplify_core/lib/src/config/auth/auth_config.dart +++ b/packages/amplify_core/lib/src/config/auth/auth_config.dart @@ -2,6 +2,11 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/auth_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/oauth_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/oauth_response_type.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/password_policy.dart'; +import 'package:meta/meta.dart'; export 'cognito_config.dart' hide CognitoPluginConfigFactory; @@ -75,6 +80,75 @@ class AuthConfig extends AmplifyPluginConfigMap { @override AuthConfig copy() => AuthConfig(plugins: Map.of(plugins)); + @internal + AuthOutputs? toAuthOutputs() { + final plugin = awsPlugin?.auth?.default$; + final userPool = awsPlugin?.cognitoUserPool?.default$; + final identityPool = awsPlugin?.credentialsProvider?.default$; + final region = userPool?.region ?? identityPool?.region; + if (region == null) { + return null; + } + + final passwordSettings = plugin?.passwordProtectionSettings; + final passwordPolicy = switch (passwordSettings) { + null => null, + final PasswordProtectionSettings settings => PasswordPolicy( + minLength: settings.passwordPolicyMinLength, + requireNumbers: settings.passwordPolicyCharacters.contains( + PasswordPolicyCharacters.requiresNumbers, + ), + requireLowercase: settings.passwordPolicyCharacters.contains( + PasswordPolicyCharacters.requiresLowercase, + ), + requireUppercase: settings.passwordPolicyCharacters.contains( + PasswordPolicyCharacters.requiresUppercase, + ), + requireSymbols: settings.passwordPolicyCharacters.contains( + PasswordPolicyCharacters.requiresSymbols, + ), + ) + }; + + final oAuthConfig = plugin?.oAuth; + final identityProviders = + plugin?.socialProviders?.map((p) => p.toIdentityProvider()).toList(); + final oauth = oAuthConfig != null + ? OAuthOutputs( + identityProviders: identityProviders ?? [], + domain: oAuthConfig.webDomain, + scopes: oAuthConfig.scopes, + redirectSignInUri: oAuthConfig.signInRedirectUri.split(','), + signInUri: oAuthConfig.signInUri, + signInUriQueryParameters: oAuthConfig.signInUriQueryParameters, + redirectSignOutUri: oAuthConfig.signOutRedirectUri.split(','), + signOutUri: oAuthConfig.signOutUri, + signOutUriQueryParameters: oAuthConfig.signOutUriQueryParameters, + tokenUri: oAuthConfig.tokenUri, + tokenUriQueryParameters: oAuthConfig.tokenUriQueryParameters, + // Amplify Flutter only supports responseType:code + // "response_type" is set to "code" by `getAuthorizationUrl` from + // pkg:oauth2 + responseType: OAuthResponseType.code, + ) + : null; + + return AuthOutputs( + awsRegion: region, + userPoolId: userPool?.poolId, + userPoolClientId: userPool?.appClientId, + appClientSecret: userPool?.appClientSecret, + identityPoolId: identityPool?.poolId, + passwordPolicy: passwordPolicy, + oauth: oauth, + usernameAttributes: plugin?.usernameAttributes, + standardRequiredAttributes: plugin?.signupAttributes, + userVerificationTypes: plugin?.verificationMechanisms, + mfaConfiguration: plugin?.mfaConfiguration?.toMfaEnforcement(), + mfaMethods: plugin?.mfaTypes?.map((t) => t.toMfaMethod()).toList(), + ); + } + @override Map toJson() => _$AuthConfigToJson(this); } diff --git a/packages/amplify_core/lib/src/config/auth/auth_config.g.dart b/packages/amplify_core/lib/src/config/auth/auth_config.g.dart index ffe0ba3229..2f10ae171e 100644 --- a/packages/amplify_core/lib/src/config/auth/auth_config.g.dart +++ b/packages/amplify_core/lib/src/config/auth/auth_config.g.dart @@ -8,8 +8,16 @@ part of 'auth_config.dart'; // JsonSerializableGenerator // ************************************************************************** -AuthConfig _$AuthConfigFromJson(Map json) => AuthConfig( - plugins: AmplifyPluginRegistry.pluginConfigsFromJson(json['plugins']), +AuthConfig _$AuthConfigFromJson(Map json) => $checkedCreate( + 'AuthConfig', + json, + ($checkedConvert) { + final val = AuthConfig( + plugins: $checkedConvert( + 'plugins', (v) => AmplifyPluginRegistry.pluginConfigsFromJson(v)), + ); + return val; + }, ); Map _$AuthConfigToJson(AuthConfig instance) => diff --git a/packages/amplify_core/lib/src/config/auth/cognito/appsync.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/appsync.g.dart index f9be7f456e..13ce05784c 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/appsync.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/appsync.g.dart @@ -10,12 +10,28 @@ part of 'appsync.dart'; CognitoAppSyncConfig _$CognitoAppSyncConfigFromJson( Map json) => - CognitoAppSyncConfig( - apiUrl: json['ApiUrl'] as String, - region: json['Region'] as String, - authMode: $enumDecode(_$APIAuthorizationTypeEnumMap, json['AuthMode']), - apiKey: json['ApiKey'] as String?, - clientDatabasePrefix: json['ClientDatabasePrefix'] as String, + $checkedCreate( + 'CognitoAppSyncConfig', + json, + ($checkedConvert) { + final val = CognitoAppSyncConfig( + apiUrl: $checkedConvert('ApiUrl', (v) => v as String), + region: $checkedConvert('Region', (v) => v as String), + authMode: $checkedConvert( + 'AuthMode', (v) => $enumDecode(_$APIAuthorizationTypeEnumMap, v)), + apiKey: $checkedConvert('ApiKey', (v) => v as String?), + clientDatabasePrefix: + $checkedConvert('ClientDatabasePrefix', (v) => v as String), + ); + return val; + }, + fieldKeyMap: const { + 'apiUrl': 'ApiUrl', + 'region': 'Region', + 'authMode': 'AuthMode', + 'apiKey': 'ApiKey', + 'clientDatabasePrefix': 'ClientDatabasePrefix' + }, ); Map _$CognitoAppSyncConfigToJson( diff --git a/packages/amplify_core/lib/src/config/auth/cognito/auth.dart b/packages/amplify_core/lib/src/config/auth/cognito/auth.dart index 4883afd459..5f0e702a5b 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/auth.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/auth.dart @@ -9,7 +9,7 @@ import 'package:json_annotation/json_annotation.dart'; part 'auth.g.dart'; @zAmplifySerializable -@CognitoUserAttributeKeyConverter() +@CognitoUserAttributeKeyToUpperCaseConverter() class CognitoAuthConfig with AWSEquatable, AWSSerializable { const CognitoAuthConfig({ this.oAuth, diff --git a/packages/amplify_core/lib/src/config/auth/cognito/auth.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/auth.g.dart index 36e2c120cc..51926ead53 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/auth.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/auth.g.dart @@ -9,34 +9,59 @@ part of 'auth.dart'; // ************************************************************************** CognitoAuthConfig _$CognitoAuthConfigFromJson(Map json) => - CognitoAuthConfig( - oAuth: json['OAuth'] == null - ? null - : CognitoOAuthConfig.fromJson(json['OAuth'] as Map), - socialProviders: (json['socialProviders'] as List?) - ?.map((e) => $enumDecode(_$SocialProviderEnumMap, e)) - .toList(), - usernameAttributes: (json['usernameAttributes'] as List?) - ?.map((e) => - const CognitoUserAttributeKeyConverter().fromJson(e as String)) - .toList(), - signupAttributes: (json['signupAttributes'] as List?) - ?.map((e) => - const CognitoUserAttributeKeyConverter().fromJson(e as String)) - .toList(), - passwordProtectionSettings: json['passwordProtectionSettings'] == null - ? null - : PasswordProtectionSettings.fromJson( - json['passwordProtectionSettings'] as Map), - mfaConfiguration: $enumDecodeNullable( - _$MfaConfigurationEnumMap, json['mfaConfiguration']), - mfaTypes: (json['mfaTypes'] as List?) - ?.map((e) => $enumDecode(_$MfaTypeEnumMap, e)) - .toList(), - verificationMechanisms: (json['verificationMechanisms'] as List?) - ?.map((e) => - const CognitoUserAttributeKeyConverter().fromJson(e as String)) - .toList(), + $checkedCreate( + 'CognitoAuthConfig', + json, + ($checkedConvert) { + final val = CognitoAuthConfig( + oAuth: $checkedConvert( + 'OAuth', + (v) => v == null + ? null + : CognitoOAuthConfig.fromJson(v as Map)), + socialProviders: $checkedConvert( + 'socialProviders', + (v) => (v as List?) + ?.map((e) => $enumDecode(_$SocialProviderEnumMap, e)) + .toList()), + usernameAttributes: $checkedConvert( + 'usernameAttributes', + (v) => (v as List?) + ?.map((e) => + const CognitoUserAttributeKeyToUpperCaseConverter() + .fromJson(e as String)) + .toList()), + signupAttributes: $checkedConvert( + 'signupAttributes', + (v) => (v as List?) + ?.map((e) => + const CognitoUserAttributeKeyToUpperCaseConverter() + .fromJson(e as String)) + .toList()), + passwordProtectionSettings: $checkedConvert( + 'passwordProtectionSettings', + (v) => v == null + ? null + : PasswordProtectionSettings.fromJson( + v as Map)), + mfaConfiguration: $checkedConvert('mfaConfiguration', + (v) => $enumDecodeNullable(_$MfaConfigurationEnumMap, v)), + mfaTypes: $checkedConvert( + 'mfaTypes', + (v) => (v as List?) + ?.map((e) => $enumDecode(_$MfaTypeEnumMap, e)) + .toList()), + verificationMechanisms: $checkedConvert( + 'verificationMechanisms', + (v) => (v as List?) + ?.map((e) => + const CognitoUserAttributeKeyToUpperCaseConverter() + .fromJson(e as String)) + .toList()), + ); + return val; + }, + fieldKeyMap: const {'oAuth': 'OAuth'}, ); Map _$CognitoAuthConfigToJson(CognitoAuthConfig instance) { @@ -57,12 +82,12 @@ Map _$CognitoAuthConfigToJson(CognitoAuthConfig instance) { writeNotNull( 'usernameAttributes', instance.usernameAttributes - ?.map(const CognitoUserAttributeKeyConverter().toJson) + ?.map(const CognitoUserAttributeKeyToUpperCaseConverter().toJson) .toList()); writeNotNull( 'signupAttributes', instance.signupAttributes - ?.map(const CognitoUserAttributeKeyConverter().toJson) + ?.map(const CognitoUserAttributeKeyToUpperCaseConverter().toJson) .toList()); writeNotNull('passwordProtectionSettings', instance.passwordProtectionSettings?.toJson()); @@ -73,7 +98,7 @@ Map _$CognitoAuthConfigToJson(CognitoAuthConfig instance) { writeNotNull( 'verificationMechanisms', instance.verificationMechanisms - ?.map(const CognitoUserAttributeKeyConverter().toJson) + ?.map(const CognitoUserAttributeKeyToUpperCaseConverter().toJson) .toList()); return val; } diff --git a/packages/amplify_core/lib/src/config/auth/cognito/cognito_user_attribute_key_converter.dart b/packages/amplify_core/lib/src/config/auth/cognito/cognito_user_attribute_key_converter.dart index ab59d84cf0..daf058c620 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/cognito_user_attribute_key_converter.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/cognito_user_attribute_key_converter.dart @@ -4,6 +4,21 @@ import 'package:amplify_core/amplify_core.dart'; import 'package:json_annotation/json_annotation.dart'; +class CognitoUserAttributeKeyToUpperCaseConverter + extends JsonConverter { + const CognitoUserAttributeKeyToUpperCaseConverter(); + + @override + CognitoUserAttributeKey fromJson(String json) { + return CognitoUserAttributeKey.parse(json); + } + + @override + String toJson(CognitoUserAttributeKey object) { + return object.key.toUpperCase(); + } +} + class CognitoUserAttributeKeyConverter extends JsonConverter { const CognitoUserAttributeKeyConverter(); @@ -15,7 +30,7 @@ class CognitoUserAttributeKeyConverter @override String toJson(CognitoUserAttributeKey object) { - return object.key.toUpperCase(); + return object.key; } } diff --git a/packages/amplify_core/lib/src/config/auth/cognito/credentials_provider.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/credentials_provider.g.dart index eb4d8febda..7e1aaf69d9 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/credentials_provider.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/credentials_provider.g.dart @@ -10,9 +10,17 @@ part of 'credentials_provider.dart'; CognitoIdentityCredentialsProvider _$CognitoIdentityCredentialsProviderFromJson( Map json) => - CognitoIdentityCredentialsProvider( - poolId: json['PoolId'] as String, - region: json['Region'] as String, + $checkedCreate( + 'CognitoIdentityCredentialsProvider', + json, + ($checkedConvert) { + final val = CognitoIdentityCredentialsProvider( + poolId: $checkedConvert('PoolId', (v) => v as String), + region: $checkedConvert('Region', (v) => v as String), + ); + return val; + }, + fieldKeyMap: const {'poolId': 'PoolId', 'region': 'Region'}, ); Map _$CognitoIdentityCredentialsProviderToJson( diff --git a/packages/amplify_core/lib/src/config/auth/cognito/identity_manager.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/identity_manager.g.dart index 935810b118..e9b3c7f5af 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/identity_manager.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/identity_manager.g.dart @@ -10,7 +10,14 @@ part of 'identity_manager.dart'; CognitoIdentityManager _$CognitoIdentityManagerFromJson( Map json) => - CognitoIdentityManager(); + $checkedCreate( + 'CognitoIdentityManager', + json, + ($checkedConvert) { + final val = CognitoIdentityManager(); + return val; + }, + ); Map _$CognitoIdentityManagerToJson( CognitoIdentityManager instance) => diff --git a/packages/amplify_core/lib/src/config/auth/cognito/mfa.dart b/packages/amplify_core/lib/src/config/auth/cognito/mfa.dart index 9fb2717804..6d33bd00b3 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/mfa.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/mfa.dart @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import 'package:amplify_core/src/config/amplify_outputs/auth/mfa.dart'; import 'package:json_annotation/json_annotation.dart'; enum MfaType { @@ -15,6 +16,15 @@ enum MfaType { String get confirmationValue => name; } +extension ToMfaMethod on MfaType { + MfaMethod toMfaMethod() { + return switch (this) { + MfaType.sms => MfaMethod.sms, + MfaType.totp => MfaMethod.totp, + }; + } +} + enum MfaConfiguration { @JsonValue('OPTIONAL') optional, @@ -25,3 +35,13 @@ enum MfaConfiguration { @JsonValue('OFF') off, } + +extension ToMfaEnforcement on MfaConfiguration { + MfaEnforcement toMfaEnforcement() { + return switch (this) { + MfaConfiguration.on => MfaEnforcement.on, + MfaConfiguration.off => MfaEnforcement.off, + MfaConfiguration.optional => MfaEnforcement.optional, + }; + } +} diff --git a/packages/amplify_core/lib/src/config/auth/cognito/oauth.dart b/packages/amplify_core/lib/src/config/auth/cognito/oauth.dart index 6dc3799846..6f9863b507 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/oauth.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/oauth.dart @@ -2,7 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/auth_outputs.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:meta/meta.dart'; part 'oauth.g.dart'; @@ -27,6 +29,46 @@ class CognitoOAuthConfig this.tokenUriQueryParameters, }); + @internal + factory CognitoOAuthConfig.fromAuthOutputs(AuthOutputs authOutputs) { + if (authOutputs.userPoolClientId == null) { + throw ConfigurationError('Invalid config: no User Pool Client Id found.'); + } + if (authOutputs.oauth == null) { + throw ConfigurationError('Invalid config: no oAuth configuration found.'); + } + + final appClientId = authOutputs.userPoolClientId!; + final appClientSecret = authOutputs.appClientSecret; + final scopes = authOutputs.oauth!.scopes; + final signInUri = authOutputs.oauth!.signInUri; + final signOutUri = authOutputs.oauth!.signOutUri; + final signInUriQueryParameters = + authOutputs.oauth!.signInUriQueryParameters; + final signOutUriQueryParameters = + authOutputs.oauth!.signOutUriQueryParameters; + final signInRedirectUri = authOutputs.oauth!.redirectSignInUri.join(','); + final signOutRedirectUri = authOutputs.oauth!.redirectSignOutUri.join(','); + final webDomain = authOutputs.oauth!.domain; + final tokenUri = authOutputs.oauth!.tokenUri; + final tokenUriQueryParameters = authOutputs.oauth!.tokenUriQueryParameters; + + return CognitoOAuthConfig( + appClientId: appClientId, + appClientSecret: appClientSecret, + scopes: scopes, + signInUri: signInUri, + signOutUri: signOutUri, + signInRedirectUri: signInRedirectUri, + signOutRedirectUri: signOutRedirectUri, + webDomain: webDomain, + signInUriQueryParameters: signInUriQueryParameters, + signOutUriQueryParameters: signOutUriQueryParameters, + tokenUri: tokenUri, + tokenUriQueryParameters: tokenUriQueryParameters, + ); + } + factory CognitoOAuthConfig.fromJson(Map json) => _$CognitoOAuthConfigFromJson(json); diff --git a/packages/amplify_core/lib/src/config/auth/cognito/oauth.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/oauth.g.dart index 7d3f636e1c..3c240bf1b5 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/oauth.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/oauth.g.dart @@ -9,29 +9,56 @@ part of 'oauth.dart'; // ************************************************************************** CognitoOAuthConfig _$CognitoOAuthConfigFromJson(Map json) => - CognitoOAuthConfig( - appClientId: json['AppClientId'] as String, - appClientSecret: json['AppClientSecret'] as String?, - scopes: - (json['Scopes'] as List).map((e) => e as String).toList(), - signInRedirectUri: json['SignInRedirectURI'] as String, - signOutRedirectUri: json['SignOutRedirectURI'] as String, - webDomain: json['WebDomain'] as String, - signInUri: json['SignInURI'] as String?, - signOutUri: json['SignOutURI'] as String?, - tokenUri: json['TokenURI'] as String?, - signInUriQueryParameters: - (json['SignInURIQueryParameters'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), - signOutUriQueryParameters: - (json['SignOutURIQueryParameters'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), - tokenUriQueryParameters: - (json['TokenURIQueryParameters'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), + $checkedCreate( + 'CognitoOAuthConfig', + json, + ($checkedConvert) { + final val = CognitoOAuthConfig( + appClientId: $checkedConvert('AppClientId', (v) => v as String), + appClientSecret: + $checkedConvert('AppClientSecret', (v) => v as String?), + scopes: $checkedConvert('Scopes', + (v) => (v as List).map((e) => e as String).toList()), + signInRedirectUri: + $checkedConvert('SignInRedirectURI', (v) => v as String), + signOutRedirectUri: + $checkedConvert('SignOutRedirectURI', (v) => v as String), + webDomain: $checkedConvert('WebDomain', (v) => v as String), + signInUri: $checkedConvert('SignInURI', (v) => v as String?), + signOutUri: $checkedConvert('SignOutURI', (v) => v as String?), + tokenUri: $checkedConvert('TokenURI', (v) => v as String?), + signInUriQueryParameters: $checkedConvert( + 'SignInURIQueryParameters', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + signOutUriQueryParameters: $checkedConvert( + 'SignOutURIQueryParameters', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + tokenUriQueryParameters: $checkedConvert( + 'TokenURIQueryParameters', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + ); + return val; + }, + fieldKeyMap: const { + 'appClientId': 'AppClientId', + 'appClientSecret': 'AppClientSecret', + 'scopes': 'Scopes', + 'signInRedirectUri': 'SignInRedirectURI', + 'signOutRedirectUri': 'SignOutRedirectURI', + 'webDomain': 'WebDomain', + 'signInUri': 'SignInURI', + 'signOutUri': 'SignOutURI', + 'tokenUri': 'TokenURI', + 'signInUriQueryParameters': 'SignInURIQueryParameters', + 'signOutUriQueryParameters': 'SignOutURIQueryParameters', + 'tokenUriQueryParameters': 'TokenURIQueryParameters' + }, ); Map _$CognitoOAuthConfigToJson(CognitoOAuthConfig instance) { diff --git a/packages/amplify_core/lib/src/config/auth/cognito/password_protection_settings.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/password_protection_settings.g.dart index dda3b3e909..0a1110df95 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/password_protection_settings.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/password_protection_settings.g.dart @@ -10,14 +10,24 @@ part of 'password_protection_settings.dart'; PasswordProtectionSettings _$PasswordProtectionSettingsFromJson( Map json) => - PasswordProtectionSettings( - passwordPolicyMinLength: const _PasswordPolicyMinLengthConverter() - .fromJson(json['passwordPolicyMinLength']), - passwordPolicyCharacters: (json['passwordPolicyCharacters'] - as List?) - ?.map((e) => $enumDecode(_$PasswordPolicyCharactersEnumMap, e)) - .toList() ?? - const [], + $checkedCreate( + 'PasswordProtectionSettings', + json, + ($checkedConvert) { + final val = PasswordProtectionSettings( + passwordPolicyMinLength: $checkedConvert('passwordPolicyMinLength', + (v) => const _PasswordPolicyMinLengthConverter().fromJson(v)), + passwordPolicyCharacters: $checkedConvert( + 'passwordPolicyCharacters', + (v) => + (v as List?) + ?.map((e) => + $enumDecode(_$PasswordPolicyCharactersEnumMap, e)) + .toList() ?? + const []), + ); + return val; + }, ); Map _$PasswordProtectionSettingsToJson( diff --git a/packages/amplify_core/lib/src/config/auth/cognito/pinpoint_analytics.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/pinpoint_analytics.g.dart index edbe3f727a..1976806067 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/pinpoint_analytics.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/pinpoint_analytics.g.dart @@ -10,9 +10,17 @@ part of 'pinpoint_analytics.dart'; CognitoPinpointAnalyticsConfig _$CognitoPinpointAnalyticsConfigFromJson( Map json) => - CognitoPinpointAnalyticsConfig( - appId: json['AppId'] as String, - region: json['Region'] as String, + $checkedCreate( + 'CognitoPinpointAnalyticsConfig', + json, + ($checkedConvert) { + final val = CognitoPinpointAnalyticsConfig( + appId: $checkedConvert('AppId', (v) => v as String), + region: $checkedConvert('Region', (v) => v as String), + ); + return val; + }, + fieldKeyMap: const {'appId': 'AppId', 'region': 'Region'}, ); Map _$CognitoPinpointAnalyticsConfigToJson( diff --git a/packages/amplify_core/lib/src/config/auth/cognito/pinpoint_targeting.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/pinpoint_targeting.g.dart index b5895fb845..a9130a51a2 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/pinpoint_targeting.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/pinpoint_targeting.g.dart @@ -10,8 +10,16 @@ part of 'pinpoint_targeting.dart'; CognitoPinpointTargetingConfig _$CognitoPinpointTargetingConfigFromJson( Map json) => - CognitoPinpointTargetingConfig( - region: json['Region'] as String, + $checkedCreate( + 'CognitoPinpointTargetingConfig', + json, + ($checkedConvert) { + final val = CognitoPinpointTargetingConfig( + region: $checkedConvert('Region', (v) => v as String), + ); + return val; + }, + fieldKeyMap: const {'region': 'Region'}, ); Map _$CognitoPinpointTargetingConfigToJson( diff --git a/packages/amplify_core/lib/src/config/auth/cognito/s3_transfer_utility.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/s3_transfer_utility.g.dart index d4cb4dfc3e..5032deac88 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/s3_transfer_utility.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/s3_transfer_utility.g.dart @@ -9,9 +9,17 @@ part of 's3_transfer_utility.dart'; // ************************************************************************** S3TransferUtility _$S3TransferUtilityFromJson(Map json) => - S3TransferUtility( - bucket: json['Bucket'] as String, - region: json['Region'] as String, + $checkedCreate( + 'S3TransferUtility', + json, + ($checkedConvert) { + final val = S3TransferUtility( + bucket: $checkedConvert('Bucket', (v) => v as String), + region: $checkedConvert('Region', (v) => v as String), + ); + return val; + }, + fieldKeyMap: const {'bucket': 'Bucket', 'region': 'Region'}, ); Map _$S3TransferUtilityToJson(S3TransferUtility instance) => diff --git a/packages/amplify_core/lib/src/config/auth/cognito/social_provider.dart b/packages/amplify_core/lib/src/config/auth/cognito/social_provider.dart index d946355f25..394fdb45f9 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/social_provider.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/social_provider.dart @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import 'package:amplify_core/src/config/amplify_outputs/auth/identity_provider.dart'; import 'package:json_annotation/json_annotation.dart'; enum SocialProvider { @@ -16,3 +17,14 @@ enum SocialProvider { @JsonValue('APPLE') apple, } + +extension ToIdentityProvider on SocialProvider { + IdentityProvider toIdentityProvider() { + return switch (this) { + SocialProvider.facebook => IdentityProvider.facebook, + SocialProvider.google => IdentityProvider.google, + SocialProvider.amazon => IdentityProvider.amazon, + SocialProvider.apple => IdentityProvider.apple, + }; + } +} diff --git a/packages/amplify_core/lib/src/config/auth/cognito/user_pool.dart b/packages/amplify_core/lib/src/config/auth/cognito/user_pool.dart index a5b58bb587..9a6e8a8d02 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/user_pool.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/user_pool.dart @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/auth_outputs.dart'; +import 'package:meta/meta.dart'; part 'user_pool.g.dart'; @@ -17,6 +19,29 @@ class CognitoUserPoolConfig this.endpoint, }); + @internal + factory CognitoUserPoolConfig.fromAuthOutputs(AuthOutputs authOutputs) { + if (authOutputs.userPoolId == null) { + throw ConfigurationError( + 'Invalid Cognito User Pool config: No User Pool Id found', + ); + } + if (authOutputs.userPoolClientId == null) { + throw ConfigurationError( + 'Invalid Cognito User Pool config: No User Pool Client Id found', + ); + } + return CognitoUserPoolConfig( + poolId: authOutputs.userPoolId!, + appClientId: authOutputs.userPoolClientId!, + appClientSecret: authOutputs.appClientSecret, + region: authOutputs.awsRegion, + hostedUI: authOutputs.oauth == null + ? null + : CognitoOAuthConfig.fromAuthOutputs(authOutputs), + ); + } + factory CognitoUserPoolConfig.fromJson(Map json) => _$CognitoUserPoolConfigFromJson(json); final String poolId; diff --git a/packages/amplify_core/lib/src/config/auth/cognito/user_pool.g.dart b/packages/amplify_core/lib/src/config/auth/cognito/user_pool.g.dart index 6492953bd8..7d9b5a3384 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito/user_pool.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito/user_pool.g.dart @@ -10,16 +10,33 @@ part of 'user_pool.dart'; CognitoUserPoolConfig _$CognitoUserPoolConfigFromJson( Map json) => - CognitoUserPoolConfig( - poolId: json['PoolId'] as String, - appClientId: json['AppClientId'] as String, - appClientSecret: json['AppClientSecret'] as String?, - region: json['Region'] as String, - hostedUI: json['HostedUI'] == null - ? null - : CognitoOAuthConfig.fromJson( - json['HostedUI'] as Map), - endpoint: json['Endpoint'] as String?, + $checkedCreate( + 'CognitoUserPoolConfig', + json, + ($checkedConvert) { + final val = CognitoUserPoolConfig( + poolId: $checkedConvert('PoolId', (v) => v as String), + appClientId: $checkedConvert('AppClientId', (v) => v as String), + appClientSecret: + $checkedConvert('AppClientSecret', (v) => v as String?), + region: $checkedConvert('Region', (v) => v as String), + hostedUI: $checkedConvert( + 'HostedUI', + (v) => v == null + ? null + : CognitoOAuthConfig.fromJson(v as Map)), + endpoint: $checkedConvert('Endpoint', (v) => v as String?), + ); + return val; + }, + fieldKeyMap: const { + 'poolId': 'PoolId', + 'appClientId': 'AppClientId', + 'appClientSecret': 'AppClientSecret', + 'region': 'Region', + 'hostedUI': 'HostedUI', + 'endpoint': 'Endpoint' + }, ); Map _$CognitoUserPoolConfigToJson( diff --git a/packages/amplify_core/lib/src/config/auth/cognito_config.g.dart b/packages/amplify_core/lib/src/config/auth/cognito_config.g.dart index 9378b7433f..c02214cc4c 100644 --- a/packages/amplify_core/lib/src/config/auth/cognito_config.g.dart +++ b/packages/amplify_core/lib/src/config/auth/cognito_config.g.dart @@ -9,55 +9,90 @@ part of 'cognito_config.dart'; // ************************************************************************** CognitoPluginConfig _$CognitoPluginConfigFromJson(Map json) => - CognitoPluginConfig( - userAgent: json['UserAgent'] as String? ?? 'aws-amplify-cli/0.1.0', - version: json['Version'] as String? ?? '0.1.0', - identityManager: json['IdentityManager'] == null - ? null - : AWSConfigMap.fromJson( - json['IdentityManager'] as Map, - (value) => CognitoIdentityManager.fromJson( - value as Map)), - credentialsProvider: json['CredentialsProvider'] == null - ? null - : CredentialsProviders.fromJson( - json['CredentialsProvider'] as Map), - cognitoUserPool: json['CognitoUserPool'] == null - ? null - : AWSConfigMap.fromJson( - json['CognitoUserPool'] as Map, - (value) => CognitoUserPoolConfig.fromJson( - value as Map)), - auth: json['Auth'] == null - ? null - : AWSConfigMap.fromJson( - json['Auth'] as Map, - (value) => - CognitoAuthConfig.fromJson(value as Map)), - appSync: json['AppSync'] == null - ? null - : AWSConfigMap.fromJson( - json['AppSync'] as Map, - (value) => - CognitoAppSyncConfig.fromJson(value as Map)), - pinpointAnalytics: json['PinpointAnalytics'] == null - ? null - : AWSConfigMap.fromJson( - json['PinpointAnalytics'] as Map, - (value) => CognitoPinpointAnalyticsConfig.fromJson( - value as Map)), - pinpointTargeting: json['PinpointTargeting'] == null - ? null - : AWSConfigMap.fromJson( - json['PinpointTargeting'] as Map, - (value) => CognitoPinpointTargetingConfig.fromJson( - value as Map)), - s3TransferUtility: json['S3TransferUtility'] == null - ? null - : AWSConfigMap.fromJson( - json['S3TransferUtility'] as Map, - (value) => - S3TransferUtility.fromJson(value as Map)), + $checkedCreate( + 'CognitoPluginConfig', + json, + ($checkedConvert) { + final val = CognitoPluginConfig( + userAgent: $checkedConvert( + 'UserAgent', (v) => v as String? ?? 'aws-amplify-cli/0.1.0'), + version: $checkedConvert('Version', (v) => v as String? ?? '0.1.0'), + identityManager: $checkedConvert( + 'IdentityManager', + (v) => v == null + ? null + : AWSConfigMap.fromJson( + v as Map, + (value) => CognitoIdentityManager.fromJson( + value as Map))), + credentialsProvider: $checkedConvert( + 'CredentialsProvider', + (v) => v == null + ? null + : CredentialsProviders.fromJson(v as Map)), + cognitoUserPool: $checkedConvert( + 'CognitoUserPool', + (v) => v == null + ? null + : AWSConfigMap.fromJson( + v as Map, + (value) => CognitoUserPoolConfig.fromJson( + value as Map))), + auth: $checkedConvert( + 'Auth', + (v) => v == null + ? null + : AWSConfigMap.fromJson( + v as Map, + (value) => CognitoAuthConfig.fromJson( + value as Map))), + appSync: $checkedConvert( + 'AppSync', + (v) => v == null + ? null + : AWSConfigMap.fromJson( + v as Map, + (value) => CognitoAppSyncConfig.fromJson( + value as Map))), + pinpointAnalytics: $checkedConvert( + 'PinpointAnalytics', + (v) => v == null + ? null + : AWSConfigMap.fromJson( + v as Map, + (value) => CognitoPinpointAnalyticsConfig.fromJson( + value as Map))), + pinpointTargeting: $checkedConvert( + 'PinpointTargeting', + (v) => v == null + ? null + : AWSConfigMap.fromJson( + v as Map, + (value) => CognitoPinpointTargetingConfig.fromJson( + value as Map))), + s3TransferUtility: $checkedConvert( + 'S3TransferUtility', + (v) => v == null + ? null + : AWSConfigMap.fromJson( + v as Map, + (value) => S3TransferUtility.fromJson( + value as Map))), + ); + return val; + }, + fieldKeyMap: const { + 'userAgent': 'UserAgent', + 'version': 'Version', + 'identityManager': 'IdentityManager', + 'credentialsProvider': 'CredentialsProvider', + 'cognitoUserPool': 'CognitoUserPool', + 'auth': 'Auth', + 'appSync': 'AppSync', + 'pinpointAnalytics': 'PinpointAnalytics', + 'pinpointTargeting': 'PinpointTargeting', + 's3TransferUtility': 'S3TransferUtility' + }, ); Map _$CognitoPluginConfigToJson(CognitoPluginConfig instance) { diff --git a/packages/amplify_core/lib/src/config/config_map.g.dart b/packages/amplify_core/lib/src/config/config_map.g.dart index 2178e1b59f..97dec4f7f3 100644 --- a/packages/amplify_core/lib/src/config/config_map.g.dart +++ b/packages/amplify_core/lib/src/config/config_map.g.dart @@ -12,8 +12,17 @@ AWSConfigMap _$AWSConfigMapFromJson>( Map json, T Function(Object? json) fromJsonT, ) => - AWSConfigMap( - (json['configs'] as Map).map( - (k, e) => MapEntry(k, fromJsonT(e)), - ), + $checkedCreate( + 'AWSConfigMap', + json, + ($checkedConvert) { + final val = AWSConfigMap( + $checkedConvert( + 'configs', + (v) => (v as Map).map( + (k, e) => MapEntry(k, fromJsonT(e)), + )), + ); + return val; + }, ); diff --git a/packages/amplify_core/lib/src/config/notifications/notifications_config.dart b/packages/amplify_core/lib/src/config/notifications/notifications_config.dart index 3ef4faadb6..4a250b5420 100644 --- a/packages/amplify_core/lib/src/config/notifications/notifications_config.dart +++ b/packages/amplify_core/lib/src/config/notifications/notifications_config.dart @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/notifications/notifications_outputs.dart'; export 'notifications_pinpoint_config.dart' hide NotificationsPinpointPluginConfigFactory; @@ -32,4 +33,18 @@ class NotificationsConfig extends AmplifyPluginConfigMap { @override Map toJson() => _$NotificationsConfigToJson(this); + + NotificationsOutputs? toNotificationsOutputs() { + final plugin = awsPlugin; + if (plugin == null) { + return null; + } + final awsRegion = plugin.region; + final amazonPinpointAppId = plugin.appId; + return NotificationsOutputs( + awsRegion: awsRegion, + amazonPinpointAppId: amazonPinpointAppId, + channels: [], + ); + } } diff --git a/packages/amplify_core/lib/src/config/notifications/notifications_config.g.dart b/packages/amplify_core/lib/src/config/notifications/notifications_config.g.dart index 2a3a326c9f..1500a4a93a 100644 --- a/packages/amplify_core/lib/src/config/notifications/notifications_config.g.dart +++ b/packages/amplify_core/lib/src/config/notifications/notifications_config.g.dart @@ -9,8 +9,16 @@ part of 'notifications_config.dart'; // ************************************************************************** NotificationsConfig _$NotificationsConfigFromJson(Map json) => - NotificationsConfig( - plugins: AmplifyPluginRegistry.pluginConfigsFromJson(json['plugins']), + $checkedCreate( + 'NotificationsConfig', + json, + ($checkedConvert) { + final val = NotificationsConfig( + plugins: $checkedConvert( + 'plugins', (v) => AmplifyPluginRegistry.pluginConfigsFromJson(v)), + ); + return val; + }, ); Map _$NotificationsConfigToJson( diff --git a/packages/amplify_core/lib/src/config/notifications/notifications_pinpoint_config.g.dart b/packages/amplify_core/lib/src/config/notifications/notifications_pinpoint_config.g.dart index a39c3b53c3..15c4e13d62 100644 --- a/packages/amplify_core/lib/src/config/notifications/notifications_pinpoint_config.g.dart +++ b/packages/amplify_core/lib/src/config/notifications/notifications_pinpoint_config.g.dart @@ -10,9 +10,16 @@ part of 'notifications_pinpoint_config.dart'; NotificationsPinpointPluginConfig _$NotificationsPinpointPluginConfigFromJson( Map json) => - NotificationsPinpointPluginConfig( - appId: json['appId'] as String, - region: json['region'] as String, + $checkedCreate( + 'NotificationsPinpointPluginConfig', + json, + ($checkedConvert) { + final val = NotificationsPinpointPluginConfig( + appId: $checkedConvert('appId', (v) => v as String), + region: $checkedConvert('region', (v) => v as String), + ); + return val; + }, ); Map _$NotificationsPinpointPluginConfigToJson( diff --git a/packages/amplify_core/lib/src/config/storage/s3_config.g.dart b/packages/amplify_core/lib/src/config/storage/s3_config.g.dart index 889cd5f862..78080b469c 100644 --- a/packages/amplify_core/lib/src/config/storage/s3_config.g.dart +++ b/packages/amplify_core/lib/src/config/storage/s3_config.g.dart @@ -9,9 +9,16 @@ part of 's3_config.dart'; // ************************************************************************** S3PluginConfig _$S3PluginConfigFromJson(Map json) => - S3PluginConfig( - bucket: json['bucket'] as String, - region: json['region'] as String, + $checkedCreate( + 'S3PluginConfig', + json, + ($checkedConvert) { + final val = S3PluginConfig( + bucket: $checkedConvert('bucket', (v) => v as String), + region: $checkedConvert('region', (v) => v as String), + ); + return val; + }, ); Map _$S3PluginConfigToJson(S3PluginConfig instance) => diff --git a/packages/amplify_core/lib/src/config/storage/storage_config.dart b/packages/amplify_core/lib/src/config/storage/storage_config.dart index e1eecbcd37..b86cda3399 100644 --- a/packages/amplify_core/lib/src/config/storage/storage_config.dart +++ b/packages/amplify_core/lib/src/config/storage/storage_config.dart @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; +import 'package:meta/meta.dart'; export 's3_config.dart' hide S3PluginConfigFactory; @@ -30,4 +32,18 @@ class StorageConfig extends AmplifyPluginConfigMap { @override Map toJson() => _$StorageConfigToJson(this); + + @internal + StorageOutputs? toStorageOutputs() { + final plugin = awsPlugin; + if (plugin == null) { + return null; + } + final awsRegion = plugin.region; + final bucketName = plugin.bucket; + return StorageOutputs( + awsRegion: awsRegion, + bucketName: bucketName, + ); + } } diff --git a/packages/amplify_core/lib/src/config/storage/storage_config.g.dart b/packages/amplify_core/lib/src/config/storage/storage_config.g.dart index e25d12c404..87ee3b41bf 100644 --- a/packages/amplify_core/lib/src/config/storage/storage_config.g.dart +++ b/packages/amplify_core/lib/src/config/storage/storage_config.g.dart @@ -9,8 +9,16 @@ part of 'storage_config.dart'; // ************************************************************************** StorageConfig _$StorageConfigFromJson(Map json) => - StorageConfig( - plugins: AmplifyPluginRegistry.pluginConfigsFromJson(json['plugins']), + $checkedCreate( + 'StorageConfig', + json, + ($checkedConvert) { + final val = StorageConfig( + plugins: $checkedConvert( + 'plugins', (v) => AmplifyPluginRegistry.pluginConfigsFromJson(v)), + ); + return val; + }, ); Map _$StorageConfigToJson(StorageConfig instance) => diff --git a/packages/amplify_core/lib/src/plugin/amplify_plugin_interface.dart b/packages/amplify_core/lib/src/plugin/amplify_plugin_interface.dart index 4898c1ff2e..587d1e2a1b 100644 --- a/packages/amplify_core/lib/src/plugin/amplify_plugin_interface.dart +++ b/packages/amplify_core/lib/src/plugin/amplify_plugin_interface.dart @@ -27,7 +27,7 @@ abstract /* base */ class AmplifyPluginInterface { /// Configures the plugin using the registered [config]. Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async {} diff --git a/packages/amplify_core/lib/src/types/api/graphql/graphql_response.dart b/packages/amplify_core/lib/src/types/api/graphql/graphql_response.dart index 58d582d8d0..a20de67fac 100644 --- a/packages/amplify_core/lib/src/types/api/graphql/graphql_response.dart +++ b/packages/amplify_core/lib/src/types/api/graphql/graphql_response.dart @@ -33,10 +33,10 @@ class GraphQLResponse { @override String toString() { - if (hasErrors) { - final errors = this.errors.map((error) => error.toJson()).toList(); - return 'GraphQLResponse<$T> error: ${prettyPrintJson(errors)}'; - } - return 'GraphQLResponse<$T> success: ${prettyPrintJson(data)}'; + final obj = { + 'data': data, + 'errors': errors, + }; + return 'GraphQLResponse<$T>: ${prettyPrintJson(obj)}'; } } diff --git a/packages/amplify_core/lib/src/types/auth/attribute/auth_next_update_attribute_step.g.dart b/packages/amplify_core/lib/src/types/auth/attribute/auth_next_update_attribute_step.g.dart index 6413ebdb35..b030a58495 100644 --- a/packages/amplify_core/lib/src/types/auth/attribute/auth_next_update_attribute_step.g.dart +++ b/packages/amplify_core/lib/src/types/auth/attribute/auth_next_update_attribute_step.g.dart @@ -10,16 +10,27 @@ part of 'auth_next_update_attribute_step.dart'; AuthNextUpdateAttributeStep _$AuthNextUpdateAttributeStepFromJson( Map json) => - AuthNextUpdateAttributeStep( - additionalInfo: (json['additionalInfo'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), - codeDeliveryDetails: json['codeDeliveryDetails'] == null - ? null - : AuthCodeDeliveryDetails.fromJson( - json['codeDeliveryDetails'] as Map), - updateAttributeStep: $enumDecode( - _$AuthUpdateAttributeStepEnumMap, json['updateAttributeStep']), + $checkedCreate( + 'AuthNextUpdateAttributeStep', + json, + ($checkedConvert) { + final val = AuthNextUpdateAttributeStep( + additionalInfo: $checkedConvert( + 'additionalInfo', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + codeDeliveryDetails: $checkedConvert( + 'codeDeliveryDetails', + (v) => v == null + ? null + : AuthCodeDeliveryDetails.fromJson( + v as Map)), + updateAttributeStep: $checkedConvert('updateAttributeStep', + (v) => $enumDecode(_$AuthUpdateAttributeStepEnumMap, v)), + ); + return val; + }, ); Map _$AuthNextUpdateAttributeStepToJson( diff --git a/packages/amplify_core/lib/src/types/auth/attribute/auth_user_attribute.g.dart b/packages/amplify_core/lib/src/types/auth/attribute/auth_user_attribute.g.dart index 0752b69df0..510328babd 100644 --- a/packages/amplify_core/lib/src/types/auth/attribute/auth_user_attribute.g.dart +++ b/packages/amplify_core/lib/src/types/auth/attribute/auth_user_attribute.g.dart @@ -9,10 +9,19 @@ part of 'auth_user_attribute.dart'; // ************************************************************************** AuthUserAttribute _$AuthUserAttributeFromJson(Map json) => - AuthUserAttribute( - userAttributeKey: const AuthUserAttributeKeyConverter() - .fromJson(json['userAttributeKey'] as String), - value: json['value'] as String, + $checkedCreate( + 'AuthUserAttribute', + json, + ($checkedConvert) { + final val = AuthUserAttribute( + userAttributeKey: $checkedConvert( + 'userAttributeKey', + (v) => + const AuthUserAttributeKeyConverter().fromJson(v as String)), + value: $checkedConvert('value', (v) => v as String), + ); + return val; + }, ); Map _$AuthUserAttributeToJson(AuthUserAttribute instance) => diff --git a/packages/amplify_core/lib/src/types/auth/attribute/send_user_attribute_verification_code_result.g.dart b/packages/amplify_core/lib/src/types/auth/attribute/send_user_attribute_verification_code_result.g.dart index 5e8a9f3d8b..ea469118b1 100644 --- a/packages/amplify_core/lib/src/types/auth/attribute/send_user_attribute_verification_code_result.g.dart +++ b/packages/amplify_core/lib/src/types/auth/attribute/send_user_attribute_verification_code_result.g.dart @@ -11,9 +11,18 @@ part of 'send_user_attribute_verification_code_result.dart'; SendUserAttributeVerificationCodeResult _$SendUserAttributeVerificationCodeResultFromJson( Map json) => - SendUserAttributeVerificationCodeResult( - codeDeliveryDetails: AuthCodeDeliveryDetails.fromJson( - json['codeDeliveryDetails'] as Map), + $checkedCreate( + 'SendUserAttributeVerificationCodeResult', + json, + ($checkedConvert) { + final val = SendUserAttributeVerificationCodeResult( + codeDeliveryDetails: $checkedConvert( + 'codeDeliveryDetails', + (v) => AuthCodeDeliveryDetails.fromJson( + v as Map)), + ); + return val; + }, ); Map _$SendUserAttributeVerificationCodeResultToJson( diff --git a/packages/amplify_core/lib/src/types/auth/attribute/update_user_attribute_result.g.dart b/packages/amplify_core/lib/src/types/auth/attribute/update_user_attribute_result.g.dart index 8f6719cf8e..d81230781b 100644 --- a/packages/amplify_core/lib/src/types/auth/attribute/update_user_attribute_result.g.dart +++ b/packages/amplify_core/lib/src/types/auth/attribute/update_user_attribute_result.g.dart @@ -10,10 +10,19 @@ part of 'update_user_attribute_result.dart'; UpdateUserAttributeResult _$UpdateUserAttributeResultFromJson( Map json) => - UpdateUserAttributeResult( - isUpdated: json['isUpdated'] as bool, - nextStep: AuthNextUpdateAttributeStep.fromJson( - json['nextStep'] as Map), + $checkedCreate( + 'UpdateUserAttributeResult', + json, + ($checkedConvert) { + final val = UpdateUserAttributeResult( + isUpdated: $checkedConvert('isUpdated', (v) => v as bool), + nextStep: $checkedConvert( + 'nextStep', + (v) => AuthNextUpdateAttributeStep.fromJson( + v as Map)), + ); + return val; + }, ); Map _$UpdateUserAttributeResultToJson( diff --git a/packages/amplify_core/lib/src/types/auth/auth_code_delivery_details.g.dart b/packages/amplify_core/lib/src/types/auth/auth_code_delivery_details.g.dart index 6eb921e2e4..b1860d8e94 100644 --- a/packages/amplify_core/lib/src/types/auth/auth_code_delivery_details.g.dart +++ b/packages/amplify_core/lib/src/types/auth/auth_code_delivery_details.g.dart @@ -10,12 +10,21 @@ part of 'auth_code_delivery_details.dart'; AuthCodeDeliveryDetails _$AuthCodeDeliveryDetailsFromJson( Map json) => - AuthCodeDeliveryDetails( - deliveryMedium: - $enumDecode(_$DeliveryMediumEnumMap, json['deliveryMedium']), - destination: json['destination'] as String?, - attributeKey: _$JsonConverterFromJson( - json['attributeKey'], const AuthUserAttributeKeyConverter().fromJson), + $checkedCreate( + 'AuthCodeDeliveryDetails', + json, + ($checkedConvert) { + final val = AuthCodeDeliveryDetails( + deliveryMedium: $checkedConvert( + 'deliveryMedium', (v) => $enumDecode(_$DeliveryMediumEnumMap, v)), + destination: $checkedConvert('destination', (v) => v as String?), + attributeKey: $checkedConvert( + 'attributeKey', + (v) => _$JsonConverterFromJson( + v, const AuthUserAttributeKeyConverter().fromJson)), + ); + return val; + }, ); Map _$AuthCodeDeliveryDetailsToJson( diff --git a/packages/amplify_core/lib/src/types/auth/password/reset_password_step.g.dart b/packages/amplify_core/lib/src/types/auth/password/reset_password_step.g.dart index f5a3020e19..14d53d888a 100644 --- a/packages/amplify_core/lib/src/types/auth/password/reset_password_step.g.dart +++ b/packages/amplify_core/lib/src/types/auth/password/reset_password_step.g.dart @@ -9,16 +9,27 @@ part of 'reset_password_step.dart'; // ************************************************************************** ResetPasswordStep _$ResetPasswordStepFromJson(Map json) => - ResetPasswordStep( - additionalInfo: (json['additionalInfo'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), - codeDeliveryDetails: json['codeDeliveryDetails'] == null - ? null - : AuthCodeDeliveryDetails.fromJson( - json['codeDeliveryDetails'] as Map), - updateStep: - $enumDecode(_$AuthResetPasswordStepEnumMap, json['updateStep']), + $checkedCreate( + 'ResetPasswordStep', + json, + ($checkedConvert) { + final val = ResetPasswordStep( + additionalInfo: $checkedConvert( + 'additionalInfo', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + codeDeliveryDetails: $checkedConvert( + 'codeDeliveryDetails', + (v) => v == null + ? null + : AuthCodeDeliveryDetails.fromJson( + v as Map)), + updateStep: $checkedConvert('updateStep', + (v) => $enumDecode(_$AuthResetPasswordStepEnumMap, v)), + ); + return val; + }, ); Map _$ResetPasswordStepToJson(ResetPasswordStep instance) { diff --git a/packages/amplify_core/lib/src/types/auth/sign_in/auth_next_sign_in_step.g.dart b/packages/amplify_core/lib/src/types/auth/sign_in/auth_next_sign_in_step.g.dart index 75b2ccd2b0..46d7e2de61 100644 --- a/packages/amplify_core/lib/src/types/auth/sign_in/auth_next_sign_in_step.g.dart +++ b/packages/amplify_core/lib/src/types/auth/sign_in/auth_next_sign_in_step.g.dart @@ -9,27 +9,45 @@ part of 'auth_next_sign_in_step.dart'; // ************************************************************************** AuthNextSignInStep _$AuthNextSignInStepFromJson(Map json) => - AuthNextSignInStep( - additionalInfo: (json['additionalInfo'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), - codeDeliveryDetails: json['codeDeliveryDetails'] == null - ? null - : AuthCodeDeliveryDetails.fromJson( - json['codeDeliveryDetails'] as Map), - signInStep: $enumDecode(_$AuthSignInStepEnumMap, json['signInStep']), - missingAttributes: (json['missingAttributes'] as List?) - ?.map((e) => - const AuthUserAttributeKeyConverter().fromJson(e as String)) - .toList() ?? - const [], - allowedMfaTypes: (json['allowedMfaTypes'] as List?) - ?.map((e) => $enumDecode(_$MfaTypeEnumMap, e)) - .toSet(), - totpSetupDetails: json['totpSetupDetails'] == null - ? null - : TotpSetupDetails.fromJson( - json['totpSetupDetails'] as Map), + $checkedCreate( + 'AuthNextSignInStep', + json, + ($checkedConvert) { + final val = AuthNextSignInStep( + additionalInfo: $checkedConvert( + 'additionalInfo', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + codeDeliveryDetails: $checkedConvert( + 'codeDeliveryDetails', + (v) => v == null + ? null + : AuthCodeDeliveryDetails.fromJson( + v as Map)), + signInStep: $checkedConvert( + 'signInStep', (v) => $enumDecode(_$AuthSignInStepEnumMap, v)), + missingAttributes: $checkedConvert( + 'missingAttributes', + (v) => + (v as List?) + ?.map((e) => const AuthUserAttributeKeyConverter() + .fromJson(e as String)) + .toList() ?? + const []), + allowedMfaTypes: $checkedConvert( + 'allowedMfaTypes', + (v) => (v as List?) + ?.map((e) => $enumDecode(_$MfaTypeEnumMap, e)) + .toSet()), + totpSetupDetails: $checkedConvert( + 'totpSetupDetails', + (v) => v == null + ? null + : TotpSetupDetails.fromJson(v as Map)), + ); + return val; + }, ); Map _$AuthNextSignInStepToJson(AuthNextSignInStep instance) { diff --git a/packages/amplify_core/lib/src/types/auth/sign_in/sign_in_result.g.dart b/packages/amplify_core/lib/src/types/auth/sign_in/sign_in_result.g.dart index 4130d8a317..fc2fc439a1 100644 --- a/packages/amplify_core/lib/src/types/auth/sign_in/sign_in_result.g.dart +++ b/packages/amplify_core/lib/src/types/auth/sign_in/sign_in_result.g.dart @@ -8,10 +8,18 @@ part of 'sign_in_result.dart'; // JsonSerializableGenerator // ************************************************************************** -SignInResult _$SignInResultFromJson(Map json) => SignInResult( - isSignedIn: json['isSignedIn'] as bool, - nextStep: - AuthNextSignInStep.fromJson(json['nextStep'] as Map), +SignInResult _$SignInResultFromJson(Map json) => + $checkedCreate( + 'SignInResult', + json, + ($checkedConvert) { + final val = SignInResult( + isSignedIn: $checkedConvert('isSignedIn', (v) => v as bool), + nextStep: $checkedConvert('nextStep', + (v) => AuthNextSignInStep.fromJson(v as Map)), + ); + return val; + }, ); Map _$SignInResultToJson(SignInResult instance) => diff --git a/packages/amplify_core/lib/src/types/auth/sign_up/auth_next_sign_up_step.g.dart b/packages/amplify_core/lib/src/types/auth/sign_up/auth_next_sign_up_step.g.dart index ae567e329f..301300a002 100644 --- a/packages/amplify_core/lib/src/types/auth/sign_up/auth_next_sign_up_step.g.dart +++ b/packages/amplify_core/lib/src/types/auth/sign_up/auth_next_sign_up_step.g.dart @@ -9,15 +9,27 @@ part of 'auth_next_sign_up_step.dart'; // ************************************************************************** AuthNextSignUpStep _$AuthNextSignUpStepFromJson(Map json) => - AuthNextSignUpStep( - additionalInfo: (json['additionalInfo'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), - codeDeliveryDetails: json['codeDeliveryDetails'] == null - ? null - : AuthCodeDeliveryDetails.fromJson( - json['codeDeliveryDetails'] as Map), - signUpStep: $enumDecode(_$AuthSignUpStepEnumMap, json['signUpStep']), + $checkedCreate( + 'AuthNextSignUpStep', + json, + ($checkedConvert) { + final val = AuthNextSignUpStep( + additionalInfo: $checkedConvert( + 'additionalInfo', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + codeDeliveryDetails: $checkedConvert( + 'codeDeliveryDetails', + (v) => v == null + ? null + : AuthCodeDeliveryDetails.fromJson( + v as Map)), + signUpStep: $checkedConvert( + 'signUpStep', (v) => $enumDecode(_$AuthSignUpStepEnumMap, v)), + ); + return val; + }, ); Map _$AuthNextSignUpStepToJson(AuthNextSignUpStep instance) { diff --git a/packages/amplify_core/lib/src/types/auth/sign_up/resend_sign_up_code_result.g.dart b/packages/amplify_core/lib/src/types/auth/sign_up/resend_sign_up_code_result.g.dart index ac701504f5..d5a19a81e7 100644 --- a/packages/amplify_core/lib/src/types/auth/sign_up/resend_sign_up_code_result.g.dart +++ b/packages/amplify_core/lib/src/types/auth/sign_up/resend_sign_up_code_result.g.dart @@ -10,9 +10,18 @@ part of 'resend_sign_up_code_result.dart'; ResendSignUpCodeResult _$ResendSignUpCodeResultFromJson( Map json) => - ResendSignUpCodeResult( - AuthCodeDeliveryDetails.fromJson( - json['codeDeliveryDetails'] as Map), + $checkedCreate( + 'ResendSignUpCodeResult', + json, + ($checkedConvert) { + final val = ResendSignUpCodeResult( + $checkedConvert( + 'codeDeliveryDetails', + (v) => + AuthCodeDeliveryDetails.fromJson(v as Map)), + ); + return val; + }, ); Map _$ResendSignUpCodeResultToJson( diff --git a/packages/amplify_core/lib/src/types/auth/sign_up/sign_up_result.g.dart b/packages/amplify_core/lib/src/types/auth/sign_up/sign_up_result.g.dart index 98c9aacc2a..e22299d2e1 100644 --- a/packages/amplify_core/lib/src/types/auth/sign_up/sign_up_result.g.dart +++ b/packages/amplify_core/lib/src/types/auth/sign_up/sign_up_result.g.dart @@ -8,11 +8,20 @@ part of 'sign_up_result.dart'; // JsonSerializableGenerator // ************************************************************************** -SignUpResult _$SignUpResultFromJson(Map json) => SignUpResult( - isSignUpComplete: json['isSignUpComplete'] as bool, - nextStep: - AuthNextSignUpStep.fromJson(json['nextStep'] as Map), - userId: json['userId'] as String?, +SignUpResult _$SignUpResultFromJson(Map json) => + $checkedCreate( + 'SignUpResult', + json, + ($checkedConvert) { + final val = SignUpResult( + isSignUpComplete: + $checkedConvert('isSignUpComplete', (v) => v as bool), + nextStep: $checkedConvert('nextStep', + (v) => AuthNextSignUpStep.fromJson(v as Map)), + userId: $checkedConvert('userId', (v) => v as String?), + ); + return val; + }, ); Map _$SignUpResultToJson(SignUpResult instance) { diff --git a/packages/amplify_core/lib/src/types/notifications/push/service_provider_client.dart b/packages/amplify_core/lib/src/types/notifications/push/service_provider_client.dart index 62fbcf3ded..2c6454f7ca 100644 --- a/packages/amplify_core/lib/src/types/notifications/push/service_provider_client.dart +++ b/packages/amplify_core/lib/src/types/notifications/push/service_provider_client.dart @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/notifications/notifications_outputs.dart'; /// {@template amplify_core.push.service_provider_client} /// A base class for new service providers to implement and add functionality @@ -11,7 +12,7 @@ import 'package:amplify_core/amplify_core.dart'; abstract class ServiceProviderClient { /// Initialize this client, used by the plugin during configuration. Future init({ - required NotificationsPinpointPluginConfig config, + required NotificationsOutputs config, required AmplifyAuthProviderRepository authProviderRepo, }); diff --git a/packages/amplify_core/lib/src/types/storage/upload_file_operation.dart b/packages/amplify_core/lib/src/types/storage/upload_file_operation.dart index 9fc7bffd7c..9d57bd4cdc 100644 --- a/packages/amplify_core/lib/src/types/storage/upload_file_operation.dart +++ b/packages/amplify_core/lib/src/types/storage/upload_file_operation.dart @@ -18,4 +18,18 @@ abstract class StorageUploadFileOperation< required super.request, required super.result, }); + + /// Pauses the operation that is in progress. + /// + /// This has no effect on S3 upload operations that do not require a multi part + /// upload (over 5 MiB). Uploads smaller than 5 MiB cannot be paused or resumed. + @override + Future pause(); + + /// Resumes the operation that is in a paused state. + /// + /// This has no effect on S3 upload operations that do not require a multi part + /// upload (over 5 MiB). Uploads smaller than 5 MiB cannot be paused or resumed. + @override + Future resume(); } diff --git a/packages/amplify_core/lib/src/util/serializable.dart b/packages/amplify_core/lib/src/util/serializable.dart index e5f490c1cc..4099d3f585 100644 --- a/packages/amplify_core/lib/src/util/serializable.dart +++ b/packages/amplify_core/lib/src/util/serializable.dart @@ -22,6 +22,7 @@ export 'package:json_annotation/json_annotation.dart' const zAmplifySerializable = JsonSerializable( includeIfNull: false, explicitToJson: true, + checked: true, converters: [ AuthUserAttributeKeyConverter(), CognitoUserAttributeKeyConverter(), @@ -29,11 +30,25 @@ const zAmplifySerializable = JsonSerializable( ], ); +/// serialization options for AmplifyOutputs type. +@internal +const zAmplifyOutputsSerializable = JsonSerializable( + includeIfNull: false, + explicitToJson: true, + fieldRename: FieldRename.snake, + checked: true, + converters: [ + CognitoUserAttributeKeyConverter(), + CognitoUserAttributeMapConverter(), + ], +); + /// Global serialization options for AWS types. const zAwsSerializable = JsonSerializable( fieldRename: FieldRename.pascal, includeIfNull: false, explicitToJson: true, + checked: true, ); /// Serialization options for [ConfigMap] types. @@ -42,6 +57,7 @@ const zConfigMapSerializable = JsonSerializable( genericArgumentFactories: true, ignoreUnannotated: true, createToJson: false, + checked: true, ); /// {@template amplify_flutter.serializable_map} diff --git a/packages/amplify_core/lib/src/version.dart b/packages/amplify_core/lib/src/version.dart index ea63946428..3f25c8a68c 100644 --- a/packages/amplify_core/lib/src/version.dart +++ b/packages/amplify_core/lib/src/version.dart @@ -1,2 +1,2 @@ // Generated code. Do not modify. -const packageVersion = '2.1.0'; +const packageVersion = '2.2.0'; diff --git a/packages/amplify_core/pubspec.yaml b/packages/amplify_core/pubspec.yaml index 0caadc28e8..8e9c534af5 100644 --- a/packages/amplify_core/pubspec.yaml +++ b/packages/amplify_core/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_core description: The base package containing common types and utilities that are shared across the Amplify Flutter packages. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify_core issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues diff --git a/packages/amplify_core/test/amplify_class_test.dart b/packages/amplify_core/test/amplify_class_test.dart index de24500a06..d1228f8268 100644 --- a/packages/amplify_core/test/amplify_class_test.dart +++ b/packages/amplify_core/test/amplify_class_test.dart @@ -72,7 +72,7 @@ void main() { class ConfigErrorPlugin extends AnalyticsPluginInterface { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) { throw ConfigurationError('Could not configure'); @@ -82,7 +82,7 @@ class ConfigErrorPlugin extends AnalyticsPluginInterface { class NonConfigErrorPlugin extends AnalyticsPluginInterface { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) { throw const UnknownException('Could not configure'); @@ -92,7 +92,7 @@ class NonConfigErrorPlugin extends AnalyticsPluginInterface { class SuccessPlugin extends AnalyticsPluginInterface { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { return; @@ -107,7 +107,7 @@ class AsyncAddPlugin extends AnalyticsPluginInterface { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { _configureCompleter.complete(); diff --git a/packages/amplify_core/test/config/amplify_outputs/amplify_outputs_test.dart b/packages/amplify_core/test/config/amplify_outputs/amplify_outputs_test.dart new file mode 100644 index 0000000000..effa545c39 --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs/amplify_outputs_test.dart @@ -0,0 +1,20 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'dart:convert'; + +import 'package:amplify_core/src/config/amplify_outputs/amplify_outputs.dart'; +import 'package:test/test.dart'; + +import 'test_data.dart'; + +void main() { + test( + 'Should successfully create an AmplifyOutputs object' + ' from an amplify outputs json object.', () { + final actualConfig = jsonDecode(amplifyoutputs) as Map; + final parsed = AmplifyOutputs.fromJson(actualConfig); + final expectedConfig = parsed.toJson(); + expect(actualConfig, equals(expectedConfig)); + }); +} diff --git a/packages/amplify_core/test/config/amplify_outputs/test_data.dart b/packages/amplify_core/test/config/amplify_outputs/test_data.dart new file mode 100644 index 0000000000..317e7a78b4 --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs/test_data.dart @@ -0,0 +1,107 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +// GENERATED FILE. DO NOT MODIFY BY HAND. + +// It uses json-schema-faker to generate a sample json from the Amplify GEN 2 client-config-schema. +// Run below commands to regenerate a sample json. +// curl https://raw.githubusercontent.com/aws-amplify/amplify-backend/main/packages/client-config/src/client-config-schema/schema_v1.json -o schema_v1.json +// npx json-schema-faker -s schema_v1.json -o sample.json --alwaysFakeOptionals + +const amplifyoutputs = '''{ + "schema": "dolor nisi incididunt adipisicing", + "analytics": { + "amazon_pinpoint": { + "app_id": "dolor cupidatat", + "aws_region": "anim" + } + }, + "auth": { + "aws_region": "elit laboris Excepteur et sed", + "identity_pool_id": "Ut exercitation ex aute dolore", + "mfa_configuration": "OPTIONAL", + "mfa_methods": [ + "TOTP", + "SMS" + ], + "oauth": { + "domain": "nostrud pariatur labore quis", + "identity_providers": [ + "LOGIN_WITH_AMAZON", + "FACEBOOK", + "SIGN_IN_WITH_APPLE", + "GOOGLE" + ], + "redirect_sign_in_uri": [ + "laboris", + "commodo dolore dolor fugiat et" + ], + "redirect_sign_out_uri": [ + "nisi do elit", + "mollit anim", + "eu cillum id", + "Excepteur veniam", + "amet est ipsum minim" + ], + "response_type": "code", + "scopes": [ + "ut", + "aliqua labore incididunt", + "dolore aliquip id do magna", + "ad nisi voluptate cupidatat" + ] + }, + "password_policy": { + "min_length": 97, + "require_lowercase": true, + "require_numbers": true, + "require_symbols": false, + "require_uppercase": true + }, + "standard_required_attributes": [ + "locale" + ], + "unauthenticated_identities_enabled": false, + "user_pool_client_id": "aute Lorem", + "user_pool_id": "aliquip eiusmod", + "user_verification_types": [ + "email", + "phone_number", + "phone_number", + "email" + ], + "username_attributes": [ + "phone_number", + "username" + ] + }, + "custom": {}, + "data": { + "api_key": "ullamco sunt sed", + "authorization_types": [ + "API_KEY", + "OPENID_CONNECT", + "AWS_IAM" + ], + "aws_region": "jhdakj", + "default_authorization_type": "OPENID_CONNECT", + "url": "mollit aliquip" + }, + "notifications": { + "amazon_pinpoint_app_id": "ut magna ut", + "aws_region": "skdo sosjh", + "channels": [ + "FCM", + "APNS", + "EMAIL", + "SMS", + "IN_APP_MESSAGING" + ] + }, + "storage": { + "aws_region": "oem dks", + "bucket_name": "dolor et esse" + }, + "version": "1" +} +'''; diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/amplify_outputs_mapping_test.dart b/packages/amplify_core/test/config/amplify_outputs_mapping/amplify_outputs_mapping_test.dart new file mode 100644 index 0000000000..c5c57c588d --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/amplify_outputs_mapping_test.dart @@ -0,0 +1,267 @@ +import 'dart:convert'; + +import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/auth/oauth_outputs.dart'; +import 'package:test/test.dart'; + +import './data/amplify_outputs.g.dart' as outputs; +import './data/amplifyconfiguration.g.dart' as config; + +void main() { + group('toAmplifyOutputs', () { + test('maps config with all plugins present', () async { + final configJson = updateConfig( + jsonDecode(config.amplifyConfig) as Map, + ); + final outputsJson = + jsonDecode(outputs.amplifyConfig) as Map; + final amplifyConfig = AmplifyConfig.fromJson(configJson); + final amplifyOutputs = AmplifyOutputs.fromJson(outputsJson); + final mappedOutputs = amplifyConfig.toAmplifyOutputs(); + expect(mappedOutputs.auth, amplifyOutputs.auth); + expect(mappedOutputs.analytics, amplifyOutputs.analytics); + expect(mappedOutputs.storage, amplifyOutputs.storage); + expect(mappedOutputs.data, amplifyOutputs.data); + expect( + mappedOutputs.notifications?.amazonPinpointAppId, + amplifyOutputs.notifications?.amazonPinpointAppId, + ); + expect( + mappedOutputs.notifications?.awsRegion, + amplifyOutputs.notifications?.awsRegion, + ); + }); + + test('maps config with no plugins present', () async { + final configJson = jsonDecode('{}') as Map; + final amplifyConfig = AmplifyConfig.fromJson(configJson); + final mappedOutputs = amplifyConfig.toAmplifyOutputs(); + expect(mappedOutputs.auth, null); + expect(mappedOutputs.analytics, null); + expect(mappedOutputs.storage, null); + expect(mappedOutputs.data, null); + expect(mappedOutputs.notifications, null); + }); + + test('maps config with multiple api plugins', () async { + final configJson = jsonDecode(multiApiConfig) as Map; + final amplifyConfig = AmplifyConfig.fromJson(configJson); + final mappedOutputs = amplifyConfig.toAmplifyOutputs(); + expect(mappedOutputs.data?.length, 2); + expect(mappedOutputs.restApi?.length, 2); + final dataUrls = mappedOutputs.data?.values.map((d) => d.url); + final restUrls = mappedOutputs.restApi?.values.map((d) => d.url); + expect(dataUrls, ['fake-data-url-1', 'fake-data-url-2']); + expect(restUrls, ['fake-rest-url-1', 'fake-rest-url-2']); + }); + + group('auth', () { + test('maps config with all oauth options', () async { + final configJson = jsonDecode(oauthConfig) as Map; + final amplifyConfig = AmplifyConfig.fromJson(configJson); + final mappedOutputs = amplifyConfig.toAmplifyOutputs(); + final oauth = mappedOutputs.auth?.oauth as OAuthOutputs; + expect( + oauth.redirectSignInUri, + containsAll([signInRedirectUri1, signInRedirectUri2]), + ); + expect(oauth.signInUri, signInUri); + expect( + oauth.signInUriQueryParameters, + {signInQueryParamKey: signInQueryParamValue}, + ); + expect( + oauth.redirectSignOutUri, + containsAll([signOutRedirectUri1, signOutRedirectUri2]), + ); + expect(oauth.signOutUri, signOutUri); + expect( + oauth.signOutUriQueryParameters, + {signOutQueryParamKey: signOutQueryParamValue}, + ); + expect(oauth.tokenUri, tokenUri); + expect( + oauth.tokenUriQueryParameters, + {tokenQueryParamKey: tokenQueryParamValue}, + ); + expect(oauth.scopes, containsAll([scope1, scope2])); + }); + + test('maps config with app client secret', () async { + final configJson = + jsonDecode(clientSecretConfig) as Map; + final amplifyConfig = AmplifyConfig.fromJson(configJson); + final mappedOutputs = amplifyConfig.toAmplifyOutputs(); + expect(mappedOutputs.auth?.appClientSecret, appClientSecret); + }); + + test('maps config with only the required options for a user pool', + () async { + final configJson = + jsonDecode(userPoolOnlyConfig) as Map; + final amplifyConfig = AmplifyConfig.fromJson(configJson); + final mappedOutputs = amplifyConfig.toAmplifyOutputs(); + expect(mappedOutputs.auth?.passwordPolicy, null); + }); + }); + }); +} + +/// hand written config with multiple Rest and GraphQL objects +const multiApiConfig = '''{ + "api": { + "plugins": { + "awsAPIPlugin": { + "data1": { + "endpointType": "GraphQL", + "endpoint": "fake-data-url-1", + "region": "us-east-1", + "authorizationType": "AWS_IAM", + "apiKey": "fake-data-api-key" + }, + "data2": { + "endpointType": "GraphQL", + "endpoint": "fake-data-url-2", + "region": "us-east-1", + "authorizationType": "AWS_IAM", + "apiKey": "fake-data-api-key" + }, + "rest1": { + "endpointType": "REST", + "endpoint": "fake-rest-url-1", + "region": "us-east-1", + "authorizationType": "AWS_IAM", + "apiKey": "fake-data-api-key" + }, + "rest2": { + "endpointType": "REST", + "endpoint": "fake-rest-url-2", + "region": "us-east-1", + "authorizationType": "AWS_IAM", + "apiKey": "fake-data-api-key" + } + } + } + } +} +'''; + +const oAuthDomain = 'fake-web-domain-dev.auth.us-east-1.amazoncognito.com'; +const signInRedirectUri1 = 'fake-sign-in-redirect-uri-1'; +const signInRedirectUri2 = 'fake-sign-in-redirect-uri-2'; +const signInUri = 'fake-sign-in-uri'; +const signInQueryParamKey = 'fake-sign-in-query-param-key'; +const signInQueryParamValue = 'fake-sign-in-query-param-value'; +const signOutRedirectUri1 = 'fake-sign-out-redirect-uri-1'; +const signOutRedirectUri2 = 'fake-sign-out-redirect-uri-2'; +const signOutUri = 'fake-sign-out-uri'; +const signOutQueryParamKey = 'fake-sign-out-query-param-key'; +const signOutQueryParamValue = 'fake-sign-out-query-param-value'; +const tokenUri = 'fake-token-uri'; +const tokenQueryParamKey = 'fake-token-query-param-key'; +const tokenQueryParamValue = 'fake-token-query-param-value'; +const scope1 = 'scope1'; +const scope2 = 'scope2'; + +/// hand written config with all oauth options including those not par of the +/// AmplifyOutputs schema (SignInURIQueryParameters, SignOutURIQueryParameters, +/// TokenURI, and TokenURIQueryParameters) +const oauthConfig = '''{ + "auth": { + "plugins": { + "awsCognitoAuthPlugin": { + "CognitoUserPool": { + "Default": { + "PoolId": "us-east-fake-pool-id", + "AppClientId": "fake-client-id", + "Region": "us-east-1" + } + }, + "Auth": { + "Default": { + "OAuth": { + "WebDomain": "$oAuthDomain", + "AppClientId": "fake-client-id", + "SignInRedirectURI": "$signInRedirectUri1,$signInRedirectUri2", + "SignInURI": "$signInUri", + "SignInURIQueryParameters": { + "$signInQueryParamKey": "$signInQueryParamValue" + }, + "SignOutRedirectURI": "$signOutRedirectUri1,$signOutRedirectUri2", + "SignOutURI": "$signOutUri", + "SignOutURIQueryParameters": { + "$signOutQueryParamKey": "$signOutQueryParamValue" + }, + "TokenURI": "$tokenUri", + "TokenURIQueryParameters": { + "$tokenQueryParamKey": "$tokenQueryParamValue" + }, + "Scopes": [ + "$scope1", + "$scope2" + ] + } + } + } + } + } + } +}'''; + +const appClientSecret = 'fake-app-client-secret'; + +/// hand written config with app client secret +const clientSecretConfig = '''{ + "auth": { + "plugins": { + "awsCognitoAuthPlugin": { + "CognitoUserPool": { + "Default": { + "PoolId": "us-east-fake-pool-id", + "AppClientId": "fake-client-id", + "AppClientSecret": "$appClientSecret", + "Region": "us-east-1" + } + } + } + } + } +}'''; + +/// hand written config with only the minimal required options for a user pool +const userPoolOnlyConfig = '''{ + "auth": { + "plugins": { + "awsCognitoAuthPlugin": { + "CognitoUserPool": { + "Default": { + "PoolId": "us-east-fake-pool-id", + "AppClientId": "fake-client-id", + "Region": "us-east-1" + } + } + } + } + } +}'''; + +/// Updates the Gen 1 Config to work around known issues +/// +/// Issues: +/// - https://github.com/aws-amplify/amplify-backend/issues/1551 +Map updateConfig(Map config) { + config as Map; + // ignore: avoid_dynamic_calls + final cognitoPlugin = (config)['auth']['plugins']['awsCognitoAuthPlugin']; + // ignore: avoid_dynamic_calls + final defaultAuth = cognitoPlugin['Auth']['Default'] as Map; + final oAuthConfig = defaultAuth['OAuth'] as Map; + oAuthConfig['AppClientId'] = 'fake-client-id'; + defaultAuth['socialProviders'] = [ + 'GOOGLE', + 'FACEBOOK', + 'AMAZON', + 'APPLE', + ]; + return config; +} diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/app/.gitignore b/packages/amplify_core/test/config/amplify_outputs_mapping/app/.gitignore new file mode 100644 index 0000000000..b0fa3c8165 --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/app/.gitignore @@ -0,0 +1,4 @@ +# amplify +node_modules +.amplify +amplify_outputs.json diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/app/README.md b/packages/amplify_core/test/config/amplify_outputs_mapping/app/README.md new file mode 100644 index 0000000000..d6bc9be346 --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/app/README.md @@ -0,0 +1,8 @@ +This project is used to generate a Gen 1 and a Gen 2 config for the purpose of testing the mapping from AmplifyConfig to AmplifyOutputs. + +To regenerate the config and outputs files, run the following commands: + +- npx ampx sandbox +- npx ampx generate outputs --format dart --out-dir ../data && mv ../data/amplify_outputs.dart ../data/amplify_outputs.g.dart +- npx ampx generate outputs --format dart --out-dir ../data --outputs-version 0 && mv ../data/amplifyconfiguration.dart ../data/amplifyconfiguration.g.dart +- dart format ../data diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/app/amplify/backend.ts b/packages/amplify_core/test/config/amplify_outputs_mapping/app/amplify/backend.ts new file mode 100644 index 0000000000..b92217f9d9 --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/app/amplify/backend.ts @@ -0,0 +1,61 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { defineBackend } from "@aws-amplify/backend"; + +defineBackend({}).addOutput({ + auth: { + aws_region: "us-east-1", + user_pool_id: "fake-user-pool", + user_pool_client_id: "fake-client-id", + identity_pool_id: "fake-identity-pool-id", + password_policy: { + min_length: 8, + require_numbers: true, + require_lowercase: true, + require_uppercase: true, + require_symbols: true, + }, + oauth: { + identity_providers: [ + "GOOGLE", + "FACEBOOK", + "LOGIN_WITH_AMAZON", + "SIGN_IN_WITH_APPLE", + ], + domain: "fake-domain", + scopes: ["scope-1", "scope-2"], + redirect_sign_in_uri: ["sign-in-redirect-1", "sign-in-redirect-2"], + redirect_sign_out_uri: ["sign-out-redirect-1", "sign-out-redirect-2"], + response_type: "code", + }, + standard_required_attributes: ["email", "name"], + username_attributes: ["email"], + user_verification_types: ["email"], + unauthenticated_identities_enabled: true, + mfa_configuration: "OPTIONAL", + mfa_methods: ["SMS", "TOTP"], + }, + data: { + aws_region: "us-east-1", + url: "fake-data-url", + api_key: "fake-data-api-key", + default_authorization_type: "AWS_IAM", + authorization_types: ["AMAZON_COGNITO_USER_POOLS"], + }, + storage: { + aws_region: "us-east-1", + bucket_name: "fake-bucket-name", + }, + analytics: { + amazon_pinpoint: { + app_id: "fake-analytics-app-id", + aws_region: "us-east-1", + }, + }, + notifications: { + amazon_pinpoint_app_id: "fake-notifications-app-id", + aws_region: "us-east-1", + channels: ["APNS", "FCM"], + }, +}); diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/app/amplify/tsconfig.json b/packages/amplify_core/test/config/amplify_outputs_mapping/app/amplify/tsconfig.json new file mode 100644 index 0000000000..ff3843f49e --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/app/amplify/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "es2022", + "module": "es2022", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "paths": { + "$amplify/*": [ + "../.amplify/generated/*" + ] + } + } +} diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/app/package-lock.json b/packages/amplify_core/test/config/amplify_outputs_mapping/app/package-lock.json new file mode 100644 index 0000000000..35a40316ad --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/app/package-lock.json @@ -0,0 +1,17565 @@ +{ + "name": "gen2_test_outputs", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "gen2_test_outputs", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@aws-amplify/backend": "1.0.3", + "@aws-amplify/backend-cli": "1.0.4", + "tsx": "^4.10.5", + "typescript": "^5.4.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ardatan/aggregate-error": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz", + "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==", + "dev": true, + "dependencies": { + "tslib": "~2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/aggregate-error/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", + "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.4.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "relay-runtime": "12.0.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "relay-compiler": "bin/relay-compiler" + }, + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@ardatan/sync-fetch": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", + "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ardatan/sync-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@aws-amplify/appsync-modelgen-plugin": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/appsync-modelgen-plugin/-/appsync-modelgen-plugin-2.12.2.tgz", + "integrity": "sha512-934QqusQaZpj11NM8xf84C4sgCnW1TINL1IgBpQzk9Zq4MVPuGZK1SO/fsSiriqBtGoMcpHSmMVZ94t+bXwDBg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^1.18.8", + "@graphql-codegen/visitor-plugin-common": "^1.22.0", + "@graphql-tools/utils": "^6.0.18", + "chalk": "^3.0.0", + "change-case": "^4.1.1", + "graphql-transformer-common": "^4.25.1", + "lower-case-first": "^2.0.1", + "pluralize": "^8.0.0", + "strip-indent": "^3.0.0", + "ts-dedent": "^1.1.0" + }, + "peerDependencies": { + "graphql": "^15.5.0" + } + }, + "node_modules/@aws-amplify/auth-construct": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/auth-construct/-/auth-construct-1.1.2.tgz", + "integrity": "sha512-bTnEZ2R2Y/B2lesiEPw8/OB6oCqKqMsSxPwgdLaojlPrAkQTjoP2qcM1BD+beULxBG3YqX2ddTA2sVnTICpBRQ==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-sdk/util-arn-parser": "^3.465.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend/-/backend-1.0.3.tgz", + "integrity": "sha512-/NNEtmu59v4x8Z/vLSmZnw/2PBMQ6RlB8E9glfldf6COs0DOacx4UeoPLRc7+E7eLWpTQWl4mPdSiWdBh5jb+w==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-auth": "^1.0.2", + "@aws-amplify/backend-data": "^1.0.2", + "@aws-amplify/backend-function": "^1.0.3", + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/backend-secret": "^1.0.0", + "@aws-amplify/backend-storage": "^1.0.2", + "@aws-amplify/client-config": "^1.0.3", + "@aws-amplify/data-schema": "^1.0.0", + "@aws-amplify/platform-core": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-sdk/client-amplify": "^3.465.0", + "lodash.snakecase": "^4.1.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend-auth": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-auth/-/backend-auth-1.0.2.tgz", + "integrity": "sha512-+UxRsH5ZZhppkyZjhbAuWrVV7L6eHKWEOcF/07cnz8yoZCcilUK2pLbw1tb60WjskV2S45Fi8QmXy4nP+ovJMw==", + "dev": true, + "dependencies": { + "@aws-amplify/auth-construct": "^1.1.1", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend-cli": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-cli/-/backend-cli-1.0.4.tgz", + "integrity": "sha512-Hgh8hQAbB3KjaJ2hfwEqs+Ubp86ewIvtmvao370el71dmPtpRQ7PKmsYJtmjvt2fvtM0wFjeTui7slNBLKYzwA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-deployer": "^1.0.0", + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-secret": "^1.0.0", + "@aws-amplify/cli-core": "^1.0.0", + "@aws-amplify/client-config": "^1.0.3", + "@aws-amplify/deployed-backend-client": "^1.0.1", + "@aws-amplify/form-generator": "^1.0.0", + "@aws-amplify/model-generator": "^1.0.1", + "@aws-amplify/platform-core": "^1.0.1", + "@aws-amplify/sandbox": "^1.0.3", + "@aws-amplify/schema-generator": "^1.0.0", + "@aws-sdk/client-amplify": "^3.465.0", + "@aws-sdk/client-cloudformation": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0", + "@aws-sdk/credential-provider-ini": "^3.465.0", + "@aws-sdk/credential-providers": "^3.465.0", + "@aws-sdk/region-config-resolver": "^3.465.0", + "@smithy/node-config-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.2.5", + "envinfo": "^7.11.0", + "execa": "^8.0.1", + "is-ci": "^3.0.1", + "open": "^9.1.0", + "yargs": "^17.7.2", + "zod": "^3.22.2" + }, + "bin": { + "amplify": "lib/ampx.js", + "ampx": "lib/ampx.js" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@aws-sdk/types": "^3.465.0" + } + }, + "node_modules/@aws-amplify/backend-data": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-data/-/backend-data-1.0.2.tgz", + "integrity": "sha512-6yuZxjD2MwwqehR8aLdnQPBVmOgsFCNcOGIZx9CHY7wt3bh7KWT5xQndfXjVrVlh4WhlZ36ZeC35hssfYa4yuQ==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/data-construct": "^1.8.0", + "@aws-amplify/data-schema-types": "^1.0.0", + "@aws-amplify/plugin-types": "^1.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend-deployer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-deployer/-/backend-deployer-1.0.0.tgz", + "integrity": "sha512-rBqEIi25gV2JnCwj6M+OFWMJXxMzrlJrSZt4JCGIfqQzMffm4MEIklYEfcVht4J3zBzL7gDXn1ejNjWqtiLm4w==", + "dev": true, + "dependencies": { + "@aws-amplify/platform-core": "^1.0.0", + "@aws-amplify/plugin-types": "^1.0.0", + "execa": "^8.0.1", + "tsx": "^4.6.1" + }, + "peerDependencies": { + "aws-cdk": "^2.127.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@aws-amplify/backend-function": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-function/-/backend-function-1.0.3.tgz", + "integrity": "sha512-eEfon9yEsoXHqYv+AHXvIA73vGqvYYj8MvjJkD8YtcKbpAwCJuZJgAKZ8xL4Et3iZTm7B4hMX+4+zu9jt7QPhA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0", + "execa": "^8.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/backend-output-schemas": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-1.1.0.tgz", + "integrity": "sha512-6qOjtRfSBOzGA2aH+I5oqpoXgMuhEo0clOufgxApid9KyS1ygWKRNBlwXKUh+do2PuM3XEhBHC4x0md5ayFRRQ==", + "dev": true, + "peerDependencies": { + "zod": "^3.22.2" + } + }, + "node_modules/@aws-amplify/backend-output-storage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-output-storage/-/backend-output-storage-1.0.1.tgz", + "integrity": "sha512-JjunSz4qJzhVNU/Dsz37gpJVbckY/jR0cEyun9XHvnFYvR41gwyraEP9P1pL+rO3+CFtCqxPMFgp5Ym4at+EyQ==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/platform-core": "^1.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0" + } + }, + "node_modules/@aws-amplify/backend-secret": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-secret/-/backend-secret-1.0.0.tgz", + "integrity": "sha512-0FrhjAK5eCrybBi9XCxxz+JxWbqJtgzz44tkVvS8Dmt9Eh1qOtw1XUMuZ7M50oqs5ZNRb/dBLgmWUzlv5oWa4g==", + "dev": true, + "dependencies": { + "@aws-amplify/platform-core": "^1.0.0", + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-sdk/client-ssm": "^3.465.0" + } + }, + "node_modules/@aws-amplify/backend-storage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-storage/-/backend-storage-1.0.3.tgz", + "integrity": "sha512-Z2AEE0y4AoHD9ZsWxEnBNKOYldne77nx68GuU9iMYu0vTiFAk/y3TAx1pWBbme2v6XJ0RZm1ahQIYMk9Bj9KfA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-storage": "^1.0.1", + "@aws-amplify/plugin-types": "^1.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/cli-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/cli-core/-/cli-core-1.0.0.tgz", + "integrity": "sha512-mH1dcfjyzmDoXr5yDux10Y87Hf6nwIYR5haedC1gHlehDHPes489y1tyg+aPapeQkLoDO2cO/OnRBzs3Hfu1KA==", + "dev": true, + "dependencies": { + "@aws-amplify/platform-core": "^1.0.0", + "@inquirer/prompts": "^3.0.0", + "execa": "^8.0.1", + "kleur": "^4.1.5" + } + }, + "node_modules/@aws-amplify/client-config": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/client-config/-/client-config-1.0.4.tgz", + "integrity": "sha512-u/FUzHVuGavge9sxAqXejRa6SvhwJd1mlP9reGlhDvbohMla4KqMWZyyNMbiR9AAEAeAjbW5+8rhan0Rbd64AQ==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/deployed-backend-client": "^1.0.2", + "@aws-amplify/model-generator": "^1.0.1", + "@aws-amplify/platform-core": "^1.0.1", + "zod": "^3.22.2" + }, + "peerDependencies": { + "@aws-sdk/client-amplify": "^3.465.0", + "@aws-sdk/client-cloudformation": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0" + } + }, + "node_modules/@aws-amplify/codegen-ui": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/codegen-ui/-/codegen-ui-2.20.1.tgz", + "integrity": "sha512-BPe056jGzZ/dPVQwEeq/uTG1bDzbBWpyvNrVpRpYkxcFR3zOt0SBAMgmSAPcTfJZjO1vCv5US24esE7Vjsi+3g==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "yup": "^0.32.11" + } + }, + "node_modules/@aws-amplify/codegen-ui-react": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/codegen-ui-react/-/codegen-ui-react-2.20.1.tgz", + "integrity": "sha512-9GVHoxoOfXiDjF4pBASVbkDH4NDvQC4dAhj7vyUs4DiQSS87J3WB6ydypQpQI4OHYYoD07XOaBSVPi+6XGyDfw==", + "dev": true, + "dependencies": { + "@aws-amplify/codegen-ui": "2.20.1", + "@typescript/vfs": "~1.3.5", + "pluralize": "^8.0.0", + "semver": "^7.5.4", + "typescript": "<=4.5.0" + }, + "optionalDependencies": { + "prettier": "2.3.2" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@aws-amplify/codegen-ui-react/node_modules/prettier": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@aws-amplify/codegen-ui-react/node_modules/typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@aws-amplify/data-construct": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-construct/-/data-construct-1.8.5.tgz", + "integrity": "sha512-Z//AsEmAasQw1a6cS3fGe38ct7KRo6WxncW5/brgCB1riOPYuopvxaUsgl9T2J4mb366LzRObF7xNqJNJhnCwg==", + "bundleDependencies": [ + "@aws-amplify/backend-output-schemas", + "@aws-amplify/backend-output-storage", + "@aws-amplify/graphql-transformer", + "@aws-amplify/graphql-transformer-core", + "@aws-amplify/graphql-transformer-interfaces", + "zod", + "@aws-amplify/graphql-auth-transformer", + "@aws-amplify/graphql-default-value-transformer", + "@aws-amplify/graphql-directives", + "@aws-amplify/graphql-function-transformer", + "@aws-amplify/graphql-http-transformer", + "@aws-amplify/graphql-index-transformer", + "@aws-amplify/graphql-maps-to-transformer", + "@aws-amplify/graphql-model-transformer", + "@aws-amplify/graphql-predictions-transformer", + "@aws-amplify/graphql-relational-transformer", + "@aws-amplify/graphql-searchable-transformer", + "@aws-amplify/graphql-sql-transformer", + "@aws-amplify/platform-core", + "@aws-amplify/plugin-types", + "fs-extra", + "graphql", + "graphql-transformer-common", + "hjson", + "lodash", + "md5", + "object-hash", + "ts-dedent", + "charenc", + "crypt", + "graceful-fs", + "graphql-mapping-template", + "immer", + "is-buffer", + "jsonfile", + "libphonenumber-js", + "pluralize", + "universalify" + ], + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^0.4.0", + "@aws-amplify/backend-output-storage": "^0.2.2", + "@aws-amplify/graphql-api-construct": "1.9.5", + "@aws-amplify/graphql-auth-transformer": "3.5.5", + "@aws-amplify/graphql-default-value-transformer": "2.3.7", + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-function-transformer": "2.1.22", + "@aws-amplify/graphql-http-transformer": "2.1.22", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-maps-to-transformer": "3.4.17", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-predictions-transformer": "2.1.22", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-searchable-transformer": "2.7.3", + "@aws-amplify/graphql-sql-transformer": "0.3.3", + "@aws-amplify/graphql-transformer": "1.5.7", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "@aws-amplify/platform-core": "^0.2.0", + "@aws-amplify/plugin-types": "^0.4.1", + "charenc": "^0.0.2", + "crypt": "^0.0.2", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.2.11", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "immer": "^9.0.12", + "is-buffer": "^2.0.5", + "jsonfile": "^6.1.0", + "libphonenumber-js": "1.9.47", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "pluralize": "^8.0.0", + "ts-dedent": "^2.0.0", + "universalify": "^2.0.0", + "zod": "^3.22.3" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/backend-output-schemas": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "zod": "^3.21.4" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/backend-output-storage": { + "version": "0.2.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/backend-output-schemas": "^0.4.0", + "@aws-amplify/platform-core": "^0.2.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.103.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-auth-transformer": { + "version": "3.5.5", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "lodash": "^4.17.21", + "md5": "^2.3.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-default-value-transformer": { + "version": "2.3.7", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "libphonenumber-js": "1.9.47" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-directives": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-function-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-http-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-index-transformer": { + "version": "2.4.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-maps-to-transformer": { + "version": "3.4.17", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-model-transformer": { + "version": "2.10.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-predictions-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-relational-transformer": { + "version": "2.5.5", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "immer": "^9.0.12" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-searchable-transformer": { + "version": "2.7.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-sql-transformer": { + "version": "0.3.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer": { + "version": "1.5.7", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-auth-transformer": "3.5.5", + "@aws-amplify/graphql-default-value-transformer": "2.3.7", + "@aws-amplify/graphql-function-transformer": "2.1.22", + "@aws-amplify/graphql-http-transformer": "2.1.22", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-maps-to-transformer": "3.4.17", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-predictions-transformer": "2.1.22", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-searchable-transformer": "2.7.3", + "@aws-amplify/graphql-sql-transformer": "0.3.3", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer-core": { + "version": "2.8.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "fs-extra": "^8.1.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "ts-dedent": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer-interfaces": { + "version": "3.8.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/platform-core": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/plugin-types": "^0.4.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/plugin-types": { + "version": "0.4.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "aws-cdk-lib": "^2.103.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/charenc": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/crypt": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/fs-extra": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql": { + "version": "15.8.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql-mapping-template": { + "version": "4.20.16", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql-transformer-common": { + "version": "4.30.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "md5": "^2.2.1", + "pluralize": "8.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/hjson": { + "version": "3.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "hjson": "bin/hjson" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/immer": { + "version": "9.0.21", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/libphonenumber-js": { + "version": "1.9.47", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/md5": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/md5/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/object-hash": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/pluralize": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/ts-dedent": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/zod": { + "version": "3.22.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@aws-amplify/data-schema": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-schema/-/data-schema-1.2.5.tgz", + "integrity": "sha512-zGL9e4LrRPeK/gsWYZDcP438pOKzDftQtp6+dJAOM1omMIaNz5HhMAzrVTdEB8/hJMf1NqoZF/9OCsvEPLVH/w==", + "dev": true, + "dependencies": { + "@aws-amplify/data-schema-types": "*", + "@types/aws-lambda": "^8.10.134", + "rxjs": "^7.8.1" + } + }, + "node_modules/@aws-amplify/data-schema-types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-schema-types/-/data-schema-types-1.0.1.tgz", + "integrity": "sha512-+hRNzVuVkhjLl7Oxcse087y/PYKSjCETHE0KnRNYzQy5f/dzYw1sE8ui76bk5TR2O+vs7f8P42Ti90sWOgSzSQ==", + "dev": true, + "dependencies": { + "graphql": "15.8.0", + "rxjs": "^7.8.1" + } + }, + "node_modules/@aws-amplify/deployed-backend-client": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/deployed-backend-client/-/deployed-backend-client-1.0.2.tgz", + "integrity": "sha512-EwRGYLrH1PangGs6p9oQGDBOLaD5xKtcIwIi/dwjI/OhzwZ2eNZNikJxlRMul9sunL7tXEawhn8lZsZz+6ITTA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/platform-core": "^1.0.0", + "zod": "^3.22.2" + }, + "peerDependencies": { + "@aws-sdk/client-amplify": "^3.465.0", + "@aws-sdk/client-cloudformation": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0", + "@aws-sdk/types": "^3.465.0" + } + }, + "node_modules/@aws-amplify/form-generator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/form-generator/-/form-generator-1.0.0.tgz", + "integrity": "sha512-XIr+U8EmK7PHnBlj0CZXyCzvHJZOiHMvuQbKPOUdos4btme1q430rz+Oa7ddDBIig05aZke5VJA+4hKH4FLl6g==", + "dev": true, + "dependencies": { + "@aws-amplify/appsync-modelgen-plugin": "^2.11.0", + "@aws-amplify/codegen-ui": "^2.19.4", + "@aws-amplify/codegen-ui-react": "^2.19.4", + "@aws-amplify/graphql-directives": "^1.0.1", + "@aws-amplify/graphql-docs-generator": "^4.1.0", + "@aws-sdk/client-amplifyuibuilder": "^3.465.0", + "@aws-sdk/client-appsync": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0", + "@graphql-codegen/core": "^4.0.0", + "@graphql-codegen/typescript": "^2.8.3", + "graphql": "^15.8.0", + "node-fetch": "^3.3.2", + "prettier": "^2.8.7" + } + }, + "node_modules/@aws-amplify/graphql-api-construct": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-api-construct/-/graphql-api-construct-1.9.5.tgz", + "integrity": "sha512-/B2d+zD7oElH3Yw9MACNwxPHPhd/Q1VgZxB4NP0aXum2wAwc+gZ4VGrHHG4YYsJSJKRhd/IVHGzFPoZy34Uzew==", + "bundleDependencies": [ + "@aws-amplify/backend-output-schemas", + "@aws-amplify/backend-output-storage", + "@aws-amplify/graphql-auth-transformer", + "@aws-amplify/graphql-default-value-transformer", + "@aws-amplify/graphql-directives", + "@aws-amplify/graphql-function-transformer", + "@aws-amplify/graphql-http-transformer", + "@aws-amplify/graphql-index-transformer", + "@aws-amplify/graphql-maps-to-transformer", + "@aws-amplify/graphql-model-transformer", + "@aws-amplify/graphql-predictions-transformer", + "@aws-amplify/graphql-relational-transformer", + "@aws-amplify/graphql-searchable-transformer", + "@aws-amplify/graphql-sql-transformer", + "@aws-amplify/graphql-transformer", + "@aws-amplify/graphql-transformer-core", + "@aws-amplify/graphql-transformer-interfaces", + "@aws-amplify/platform-core", + "@aws-amplify/plugin-types", + "charenc", + "crypt", + "fs-extra", + "graceful-fs", + "graphql", + "graphql-mapping-template", + "graphql-transformer-common", + "hjson", + "immer", + "is-buffer", + "jsonfile", + "libphonenumber-js", + "lodash", + "md5", + "object-hash", + "pluralize", + "ts-dedent", + "universalify", + "zod" + ], + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^0.4.0", + "@aws-amplify/backend-output-storage": "^0.2.2", + "@aws-amplify/graphql-auth-transformer": "3.5.5", + "@aws-amplify/graphql-default-value-transformer": "2.3.7", + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-function-transformer": "2.1.22", + "@aws-amplify/graphql-http-transformer": "2.1.22", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-maps-to-transformer": "3.4.17", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-predictions-transformer": "2.1.22", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-searchable-transformer": "2.7.3", + "@aws-amplify/graphql-sql-transformer": "0.3.3", + "@aws-amplify/graphql-transformer": "1.5.7", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "@aws-amplify/platform-core": "^0.2.0", + "@aws-amplify/plugin-types": "^0.4.1", + "charenc": "^0.0.2", + "crypt": "^0.0.2", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.2.11", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "immer": "^9.0.12", + "is-buffer": "^2.0.5", + "jsonfile": "^6.1.0", + "libphonenumber-js": "1.9.47", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "pluralize": "^8.0.0", + "ts-dedent": "^2.0.0", + "universalify": "^2.0.0", + "zod": "^3.22.3" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-schemas": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "zod": "^3.21.4" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-storage": { + "version": "0.2.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/backend-output-schemas": "^0.4.0", + "@aws-amplify/platform-core": "^0.2.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.103.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-auth-transformer": { + "version": "3.5.5", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "lodash": "^4.17.21", + "md5": "^2.3.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-default-value-transformer": { + "version": "2.3.7", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "libphonenumber-js": "1.9.47" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-directives": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-function-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-http-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-index-transformer": { + "version": "2.4.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-maps-to-transformer": { + "version": "3.4.17", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-model-transformer": { + "version": "2.10.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-predictions-transformer": { + "version": "2.1.22", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-relational-transformer": { + "version": "2.5.5", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "immer": "^9.0.12" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-searchable-transformer": { + "version": "2.7.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-sql-transformer": { + "version": "0.3.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer": { + "version": "1.5.7", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-auth-transformer": "3.5.5", + "@aws-amplify/graphql-default-value-transformer": "2.3.7", + "@aws-amplify/graphql-function-transformer": "2.1.22", + "@aws-amplify/graphql-http-transformer": "2.1.22", + "@aws-amplify/graphql-index-transformer": "2.4.3", + "@aws-amplify/graphql-maps-to-transformer": "3.4.17", + "@aws-amplify/graphql-model-transformer": "2.10.1", + "@aws-amplify/graphql-predictions-transformer": "2.1.22", + "@aws-amplify/graphql-relational-transformer": "2.5.5", + "@aws-amplify/graphql-searchable-transformer": "2.7.3", + "@aws-amplify/graphql-sql-transformer": "0.3.3", + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer-core": { + "version": "2.8.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "fs-extra": "^8.1.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "ts-dedent": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer-interfaces": { + "version": "3.8.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/platform-core": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/plugin-types": "^0.4.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/plugin-types": { + "version": "0.4.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "aws-cdk-lib": "^2.103.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/charenc": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/crypt": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/fs-extra": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/graphql": { + "version": "15.8.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/graphql-mapping-template": { + "version": "4.20.16", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/graphql-transformer-common": { + "version": "4.30.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "md5": "^2.2.1", + "pluralize": "8.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/hjson": { + "version": "3.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "hjson": "bin/hjson" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/immer": { + "version": "9.0.21", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/libphonenumber-js": { + "version": "1.9.47", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/md5": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/md5/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/object-hash": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/pluralize": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/ts-dedent": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/zod": { + "version": "3.22.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@aws-amplify/graphql-directives": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-directives/-/graphql-directives-1.1.0.tgz", + "integrity": "sha512-rcGfm8DsnD7Em1wYgNoq7yO+cE22mM0ssFYRWnHGsZOMX9Lh25HP1Ympt633V+raaTK3ND0gAlbVLxXzCN8XOg==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-docs-generator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-docs-generator/-/graphql-docs-generator-4.2.1.tgz", + "integrity": "sha512-ReBlY5//mWOmO0FL2ndswB9ku+vpg/JTY9Wwemjm/ibyoLHU1ojtGkPBkKH0CzbpOkIuEkIBLIg9EZ2yca/6oA==", + "dev": true, + "dependencies": { + "graphql": "^15.5.0", + "handlebars": "4.7.7", + "yargs": "^15.1.0" + }, + "bin": { + "graphql-docs-generator": "bin/cli" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/graphql-docs-generator/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@aws-amplify/graphql-generator": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-generator/-/graphql-generator-0.4.3.tgz", + "integrity": "sha512-21cbUm7n1f0Ox4UeXNkmcikWgE4ws9vdZqySGTGpERoC5OHPfSsu5KFQ/+V4XePUcEI5ofE+6R7xVH1BEaeUCA==", + "dev": true, + "dependencies": { + "@aws-amplify/appsync-modelgen-plugin": "2.12.2", + "@aws-amplify/graphql-directives": "^1.0.1", + "@aws-amplify/graphql-docs-generator": "4.2.1", + "@aws-amplify/graphql-types-generator": "3.6.0", + "@graphql-codegen/core": "^2.6.6", + "@graphql-tools/apollo-engine-loader": "^8.0.0", + "graphql": "^15.5.0", + "prettier": "^1.19.1" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.8.tgz", + "integrity": "sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.1", + "@graphql-tools/schema": "^9.0.0", + "@graphql-tools/utils": "^9.1.1", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core/node_modules/@graphql-tools/schema": { + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", + "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", + "dev": true, + "dependencies": { + "@graphql-tools/merge": "^8.4.1", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core/node_modules/@graphql-tools/schema/node_modules/@graphql-tools/merge": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", + "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/graphql-generator/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-schema-generator": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-schema-generator/-/graphql-schema-generator-0.8.6.tgz", + "integrity": "sha512-YPJrYL4cKCd4UmfWzFDfl3T+Rzv6pOYU9JgjVHFw+PrcTJtcb2/V05amCu+iLTOONMcPuGf3WDknTydeXFTZrQ==", + "dev": true, + "dependencies": { + "@aws-amplify/graphql-transformer-core": "2.8.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "@aws-sdk/client-ec2": "3.338.0", + "@aws-sdk/client-iam": "3.338.0", + "@aws-sdk/client-lambda": "3.338.0", + "@aws-sdk/client-rds": "3.338.0", + "csv-parse": "^5.5.2", + "fs-extra": "11.1.1", + "graphql": "^15.5.0", + "graphql-transformer-common": "4.30.1", + "knex": "~2.4.0", + "mysql2": "~3.9.7", + "ora": "^4.0.3", + "pg": "~8.11.3", + "pluralize": "^8.0.0", + "typescript": "^4.8.4" + } + }, + "node_modules/@aws-amplify/graphql-schema-generator/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@aws-amplify/graphql-schema-generator/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/graphql-schema-generator/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@aws-amplify/graphql-schema-generator/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-transformer-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-transformer-core/-/graphql-transformer-core-2.8.0.tgz", + "integrity": "sha512-Z+tHOai3nB8bU2Prq46GCSfDJwLtrOV4FMRoXf6QKGKT5HzsFDFCfXnveL3t+4ROz4ib3kYTJBqKar/zx0I24g==", + "dev": true, + "dependencies": { + "@aws-amplify/graphql-directives": "1.1.0", + "@aws-amplify/graphql-transformer-interfaces": "3.8.0", + "fs-extra": "^8.1.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "graphql-transformer-common": "4.30.1", + "hjson": "^3.2.2", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "ts-dedent": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-transformer-core/node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/@aws-amplify/graphql-transformer-interfaces": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-transformer-interfaces/-/graphql-transformer-interfaces-3.8.0.tgz", + "integrity": "sha512-/VNL0x0CTGTQq/bcdytp7Q+o28nhIsvSZww2t/lpnF05My4EUDYHzmGoLIB6IB+1X1U6S+DiWVViqMPiLpkQNA==", + "dev": true, + "dependencies": { + "graphql": "^15.5.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.80.0", + "constructs": "^10.0.5" + } + }, + "node_modules/@aws-amplify/graphql-types-generator": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-types-generator/-/graphql-types-generator-3.6.0.tgz", + "integrity": "sha512-yjPXJ2dYZwtGvwwcEQ5RDNlwTsd/hUfD2Dgguo999Gu3mQjz7nV4l7CXD/Oxo/QzwtU/4rmTX69yadBpR+he3A==", + "dev": true, + "dependencies": { + "@babel/generator": "7.0.0-beta.4", + "@babel/types": "7.0.0-beta.4", + "babel-generator": "^6.26.1", + "babel-types": "^6.26.0", + "change-case": "^4.1.1", + "common-tags": "^1.8.0", + "core-js": "^3.6.4", + "fs-extra": "^8.1.0", + "globby": "^11.1.0", + "graphql": "^15.5.0", + "inflected": "^2.0.4", + "prettier": "^1.19.1", + "rimraf": "^3.0.0", + "source-map-support": "^0.5.16", + "yargs": "^15.1.0" + }, + "bin": { + "graphql-types-generator": "lib/cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/graphql-types-generator/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@aws-amplify/model-generator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/model-generator/-/model-generator-1.0.1.tgz", + "integrity": "sha512-3pwl6US5OB0Vr0C/y7Cu1Bt5+lnIOi8+SYkH6PswQaOKEE7kWSlxe8lphDg+NDbXI83vgX1GlbNgi0KuofruPA==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/deployed-backend-client": "^1.0.1", + "@aws-amplify/graphql-generator": "^0.4.0", + "@aws-amplify/graphql-types-generator": "^3.6.0", + "@aws-amplify/platform-core": "^1.0.0", + "@aws-sdk/client-appsync": "^3.465.0", + "@aws-sdk/client-s3": "^3.465.0", + "@aws-sdk/credential-providers": "^3.465.0", + "@aws-sdk/types": "^3.465.0", + "graphql": "^15.8.0" + }, + "peerDependencies": { + "@aws-sdk/client-amplify": "^3.465.0", + "@aws-sdk/client-cloudformation": "^3.465.0" + } + }, + "node_modules/@aws-amplify/platform-core": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/platform-core/-/platform-core-1.0.1.tgz", + "integrity": "sha512-E00hGQO5Vgf/c/hVr1cL5dPkwcM600ILsACqUJS8KOXdTgdWzK29sunm4PCGUJVUMfsFN/hQGmaWOCi9FNQrNw==", + "dev": true, + "dependencies": { + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-sdk/client-sts": "^3.465.0", + "is-ci": "^3.0.1", + "lodash.mergewith": "^4.6.2", + "uuid": "^9.0.1", + "zod": "^3.22.2" + } + }, + "node_modules/@aws-amplify/plugin-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/plugin-types/-/plugin-types-1.0.0.tgz", + "integrity": "sha512-r+20BiiC4PRybb9vlTZwvlTuLD5b2ieGhPXkr4wMhOoun7auDqyMrLnadRDnne8L8pPRqCYTuWC1o66YiBx9bA==", + "dev": true, + "peerDependencies": { + "@aws-sdk/types": "^3.465.0", + "aws-cdk-lib": "^2.127.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/sandbox": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/sandbox/-/sandbox-1.0.4.tgz", + "integrity": "sha512-cqblbL0mbOlKq3ZgIs4kxQ9sKTCdH+4ZiVAWD8wkaxhE53iXMT08boz+GMGFEu+Co2uj7QwIVhJ3HlxtjAov2g==", + "dev": true, + "dependencies": { + "@aws-amplify/backend-deployer": "^1.0.0", + "@aws-amplify/backend-secret": "^1.0.0", + "@aws-amplify/cli-core": "^1.0.0", + "@aws-amplify/client-config": "^1.0.4", + "@aws-amplify/deployed-backend-client": "^1.0.2", + "@aws-amplify/platform-core": "^1.0.1", + "@aws-sdk/client-cloudformation": "^3.465.0", + "@aws-sdk/client-ssm": "^3.465.0", + "@aws-sdk/credential-providers": "^3.465.0", + "@aws-sdk/types": "^3.465.0", + "@parcel/watcher": "^2.4.1", + "debounce-promise": "^3.1.2", + "glob": "^10.2.7", + "open": "^9.1.0", + "parse-gitignore": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk": "^2.127.0" + } + }, + "node_modules/@aws-amplify/schema-generator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/schema-generator/-/schema-generator-1.0.0.tgz", + "integrity": "sha512-lhP0pTVT5PTb516W0opmoWEZkBppn6mYqf3OOtjDofRFRXFzxi2gbU44w+surgDxmtGAXgdhz1QzSmdUW7stSQ==", + "dev": true, + "dependencies": { + "@aws-amplify/graphql-schema-generator": "^0.8.3", + "@aws-amplify/platform-core": "^1.0.0" + } + }, + "node_modules/@aws-cdk/asset-awscli-v1": { + "version": "2.2.202", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.202.tgz", + "integrity": "sha512-JqlF0D4+EVugnG5dAsNZMqhu3HW7ehOXm5SDMxMbXNDMdsF0pxtQKNHRl52z1U9igsHmaFpUgSGjbhAJ+0JONg==", + "dev": true, + "peer": true + }, + "node_modules/@aws-cdk/asset-kubectl-v20": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz", + "integrity": "sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==", + "dev": true, + "peer": true + }, + "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.3.tgz", + "integrity": "sha512-twhuEG+JPOYCYPx/xy5uH2+VUsIEhPTzDY0F1KuB+ocjWWB/KEDiOVL19nHvbPCB6fhWnkykXEMJ4HHcKvjtvg==", + "dev": true, + "peer": true + }, + "node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "dev": true, + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/crc32c": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz", + "integrity": "sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==", + "dev": true, + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32c/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "dev": true, + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz", + "integrity": "sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==", + "dev": true, + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "dev": true, + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "dev": true, + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "dev": true, + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-crypto/util": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@aws-sdk/abort-controller": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.338.0.tgz", + "integrity": "sha512-/yLI32+HwFNBRJ39jMXw+/cn3AnlCuJpQd7Ax4887g32Dgte5eyrfY8sJUOL6902BUmAq4oSRI5QeBXNplO0Xw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/abort-controller/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-amplify": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-amplify/-/client-amplify-3.582.0.tgz", + "integrity": "sha512-mebPG1uY6AtSk7TW5e5OPV+X1HOBDO//1I5capEv91ED3tD0PpPf50ddYoMJyrxbR2I7Gc8AQJnI0VIg04tlGg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.582.0", + "@aws-sdk/client-sts": "3.582.0", + "@aws-sdk/core": "3.582.0", + "@aws-sdk/credential-provider-node": "3.582.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.1", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.1", + "@smithy/util-defaults-mode-node": "^3.0.1", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplify/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplify/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplifyuibuilder": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-amplifyuibuilder/-/client-amplifyuibuilder-3.582.0.tgz", + "integrity": "sha512-QVo7xWRhvMvIHl2VI77nPLPE+01ahj8GpLpmq1v28SpLq5m4D00uw4Qo/sHuQkCFNKKlwZSptF7EGvs/8bvWdw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.582.0", + "@aws-sdk/client-sts": "3.582.0", + "@aws-sdk/core": "3.582.0", + "@aws-sdk/credential-provider-node": "3.582.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.1", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.1", + "@smithy/util-defaults-mode-node": "^3.0.1", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplifyuibuilder/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-amplifyuibuilder/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-appsync": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-appsync/-/client-appsync-3.582.0.tgz", + "integrity": "sha512-l08JD/IFRd3swIj+d9x+xykWESPqtyHWHQb9XRca236Fm3svOsjKMM7M0+GhmPM0DqHKXNi/mhaEPZYEU92dQw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.582.0", + "@aws-sdk/client-sts": "3.582.0", + "@aws-sdk/core": "3.582.0", + "@aws-sdk/credential-provider-node": "3.582.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.1", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.1", + "@smithy/util-defaults-mode-node": "^3.0.1", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-appsync/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-appsync/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.592.0.tgz", + "integrity": "sha512-jZXAmbHDlCPxJx4LVVWQVbZDLykbDynh7SgO8QnYEObsqxgSqgxT4/czPbTgppwrqR4FKWIc8WRW942YrH/7rA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.592.0", + "@aws-sdk/client-sts": "3.592.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.0.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/client-sso": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.592.0.tgz", + "integrity": "sha512-w+SuW47jQqvOC7fonyjFjsOh3yjqJ+VpWdVrmrl0E/KryBE7ho/Wn991Buf/EiHHeJikoWgHsAIPkBH29+ntdA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.592.0.tgz", + "integrity": "sha512-11Zvm8nm0s/UF3XCjzFRpQU+8FFVW5rcr3BHfnH6xAe5JEoN6bJN/n+wOfnElnjek+90hh+Qc7s141AMrCjiiw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.592.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/client-sts": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.592.0.tgz", + "integrity": "sha512-KUrOdszZfcrlpKr4dpdkGibZ/qq3Lnfu1rjv1U+V1QJQ9OuMo9J3sDWpWV9tigNqY0aGllarWH5cJbz9868W/w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.592.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/core": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.592.0.tgz", + "integrity": "sha512-gLPMXR/HXDP+9gXAt58t7gaMTvRts9i6Q7NMISpkGF54wehskl5WGrbdtHJFylrlJ5BQo3XVY6i661o+EuR1wg==", + "dev": true, + "dependencies": { + "@smithy/core": "^2.2.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.587.0.tgz", + "integrity": "sha512-Hyg/5KFECIk2k5o8wnVEiniV86yVkhn5kzITUydmNGCkXdBFHMHRx6hleQ1bqwJHbBskyu8nbYamzcwymmGwmw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.587.0.tgz", + "integrity": "sha512-Su1SRWVRCuR1e32oxX3C1V4c5hpPN20WYcRfdcr2wXwHqSvys5DrnmuCC+JoEnS/zt3adUJhPliTqpfKgSdMrA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.592.0.tgz", + "integrity": "sha512-3kG6ngCIOPbLJZZ3RV+NsU7HVK6vX1+1DrPJKj9fVlPYn7IXsk8NAaUT5885yC7+jKizjv0cWLrLKvAJV5gfUA==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.587.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.592.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.592.0.tgz", + "integrity": "sha512-BguihBGTrEjVBQ07hm+ZsO29eNJaxwBwUZMftgGAm2XcMIEClNPfm5hydxu2BmA4ouIJQJ6nG8pNYghEumM+Aw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.587.0", + "@aws-sdk/credential-provider-ini": "3.592.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.587.0.tgz", + "integrity": "sha512-V4xT3iCqkF8uL6QC4gqBJg/2asd/damswP1h9HCfqTllmPWzImS+8WD3VjgTLw5b0KbTy+ZdUhKc0wDnyzkzxg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.592.0.tgz", + "integrity": "sha512-fYFzAdDHKHvhtufPPtrLdSv8lO6GuW3em6n3erM5uFdpGytNpjXvr3XGokIsuXcNkETAY/Xihg+G9ksNE8WJxQ==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.592.0", + "@aws-sdk/token-providers": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.587.0.tgz", + "integrity": "sha512-XqIx/I2PG7kyuw3WjAP9wKlxy8IvFJwB8asOFT1xPFoVfZYKIogjG9oLP5YiRtfvDkWIztHmg5MlVv3HdJDGRw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.587.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.587.0.tgz", + "integrity": "sha512-SyDomN+IOrygLucziG7/nOHkjUXES5oH5T7p8AboO8oakMQJdnudNXiYWTicQWO52R51U6CR27rcMPTGeMedYA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.587.0.tgz", + "integrity": "sha512-93I7IPZtulZQoRK+O20IJ4a1syWwYPzoO2gc3v+/GNZflZPV3QJXuVbIm0pxBsu0n/mzKGUKqSOLPIaN098HcQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/token-providers": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.587.0.tgz", + "integrity": "sha512-ULqhbnLy1hmJNRcukANBWJmum3BbjXnurLPSFXoGdV0llXYlG55SzIla2VYqdveQEEjmsBuTZdFvXAtNpmS5Zg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.587.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-endpoints": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.587.0.tgz", + "integrity": "sha512-8I1HG6Em8wQWqKcRW6m358mqebRVNpL8XrrEoT4In7xqkKkmYtHRNVYP6lcmiQh5pZ/c/FXu8dSchuFIWyEtqQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "@smithy/util-endpoints": "^2.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.587.0.tgz", + "integrity": "sha512-Pnl+DUe/bvnbEEDHP3iVJrOtE3HbFJBPgsD6vJ+ml/+IYk1Eq49jEG+EHZdNTPz3SDG0kbp2+7u41MKYJHR/iQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/client-cognito-identity": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.592.0.tgz", + "integrity": "sha512-mk3JOBsk5hlrLTZFuoGIhFKFflOdxqMKmOgyUFs5+gBLuH0/lN3wNWJxk+BiY1nHzkxhBND1hDHc5dvZRugBJA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.592.0", + "@aws-sdk/client-sts": "3.592.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.592.0.tgz", + "integrity": "sha512-w+SuW47jQqvOC7fonyjFjsOh3yjqJ+VpWdVrmrl0E/KryBE7ho/Wn991Buf/EiHHeJikoWgHsAIPkBH29+ntdA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.592.0.tgz", + "integrity": "sha512-11Zvm8nm0s/UF3XCjzFRpQU+8FFVW5rcr3BHfnH6xAe5JEoN6bJN/n+wOfnElnjek+90hh+Qc7s141AMrCjiiw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.592.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sts": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.592.0.tgz", + "integrity": "sha512-KUrOdszZfcrlpKr4dpdkGibZ/qq3Lnfu1rjv1U+V1QJQ9OuMo9J3sDWpWV9tigNqY0aGllarWH5cJbz9868W/w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.592.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.592.0.tgz", + "integrity": "sha512-gLPMXR/HXDP+9gXAt58t7gaMTvRts9i6Q7NMISpkGF54wehskl5WGrbdtHJFylrlJ5BQo3XVY6i661o+EuR1wg==", + "dev": true, + "dependencies": { + "@smithy/core": "^2.2.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.587.0.tgz", + "integrity": "sha512-Hyg/5KFECIk2k5o8wnVEiniV86yVkhn5kzITUydmNGCkXdBFHMHRx6hleQ1bqwJHbBskyu8nbYamzcwymmGwmw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.587.0.tgz", + "integrity": "sha512-Su1SRWVRCuR1e32oxX3C1V4c5hpPN20WYcRfdcr2wXwHqSvys5DrnmuCC+JoEnS/zt3adUJhPliTqpfKgSdMrA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.592.0.tgz", + "integrity": "sha512-3kG6ngCIOPbLJZZ3RV+NsU7HVK6vX1+1DrPJKj9fVlPYn7IXsk8NAaUT5885yC7+jKizjv0cWLrLKvAJV5gfUA==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.587.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.592.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.592.0.tgz", + "integrity": "sha512-BguihBGTrEjVBQ07hm+ZsO29eNJaxwBwUZMftgGAm2XcMIEClNPfm5hydxu2BmA4ouIJQJ6nG8pNYghEumM+Aw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.587.0", + "@aws-sdk/credential-provider-ini": "3.592.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.587.0.tgz", + "integrity": "sha512-V4xT3iCqkF8uL6QC4gqBJg/2asd/damswP1h9HCfqTllmPWzImS+8WD3VjgTLw5b0KbTy+ZdUhKc0wDnyzkzxg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.592.0.tgz", + "integrity": "sha512-fYFzAdDHKHvhtufPPtrLdSv8lO6GuW3em6n3erM5uFdpGytNpjXvr3XGokIsuXcNkETAY/Xihg+G9ksNE8WJxQ==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.592.0", + "@aws-sdk/token-providers": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.587.0.tgz", + "integrity": "sha512-XqIx/I2PG7kyuw3WjAP9wKlxy8IvFJwB8asOFT1xPFoVfZYKIogjG9oLP5YiRtfvDkWIztHmg5MlVv3HdJDGRw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.587.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.587.0.tgz", + "integrity": "sha512-SyDomN+IOrygLucziG7/nOHkjUXES5oH5T7p8AboO8oakMQJdnudNXiYWTicQWO52R51U6CR27rcMPTGeMedYA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.587.0.tgz", + "integrity": "sha512-93I7IPZtulZQoRK+O20IJ4a1syWwYPzoO2gc3v+/GNZflZPV3QJXuVbIm0pxBsu0n/mzKGUKqSOLPIaN098HcQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/token-providers": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.587.0.tgz", + "integrity": "sha512-ULqhbnLy1hmJNRcukANBWJmum3BbjXnurLPSFXoGdV0llXYlG55SzIla2VYqdveQEEjmsBuTZdFvXAtNpmS5Zg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.587.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-endpoints": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.587.0.tgz", + "integrity": "sha512-8I1HG6Em8wQWqKcRW6m358mqebRVNpL8XrrEoT4In7xqkKkmYtHRNVYP6lcmiQh5pZ/c/FXu8dSchuFIWyEtqQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "@smithy/util-endpoints": "^2.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.587.0.tgz", + "integrity": "sha512-Pnl+DUe/bvnbEEDHP3iVJrOtE3HbFJBPgsD6vJ+ml/+IYk1Eq49jEG+EHZdNTPz3SDG0kbp2+7u41MKYJHR/iQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/client-ec2": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ec2/-/client-ec2-3.338.0.tgz", + "integrity": "sha512-p672Q4BjrjnItcERtRXyHbsrXMTMzsNsbxljB89hwE0fa32f14nJoSV/ZfmjAQIJu56DuyJ5KUAX54+gS2knjg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.338.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-ec2": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@aws-sdk/util-waiter": "3.338.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/client-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz", + "integrity": "sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz", + "integrity": "sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/client-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz", + "integrity": "sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-sts": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz", + "integrity": "sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz", + "integrity": "sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz", + "integrity": "sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-ini": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz", + "integrity": "sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz", + "integrity": "sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/token-providers": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz", + "integrity": "sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz", + "integrity": "sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/middleware-logger": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz", + "integrity": "sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz", + "integrity": "sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz", + "integrity": "sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/token-providers": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz", + "integrity": "sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/util-endpoints": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz", + "integrity": "sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz", + "integrity": "sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz", + "integrity": "sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ec2/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/client-iam": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-iam/-/client-iam-3.338.0.tgz", + "integrity": "sha512-lrs278aIQwjc6kUYXy3YlJRRFRtufr6JdvckCAgIAkhAUQaK20yjDq6Rb8Lhm47eL44z6zF54oa2aspumlUcyQ==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.338.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@aws-sdk/util-waiter": "3.338.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/client-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz", + "integrity": "sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz", + "integrity": "sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/client-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz", + "integrity": "sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-sts": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz", + "integrity": "sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz", + "integrity": "sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz", + "integrity": "sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-ini": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz", + "integrity": "sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz", + "integrity": "sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/token-providers": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz", + "integrity": "sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz", + "integrity": "sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/middleware-logger": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz", + "integrity": "sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz", + "integrity": "sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz", + "integrity": "sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/token-providers": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz", + "integrity": "sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/util-endpoints": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz", + "integrity": "sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz", + "integrity": "sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz", + "integrity": "sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-iam/node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.338.0.tgz", + "integrity": "sha512-Xq/9c7d4y4wG9SQyAKzw8bSc2q7B2rYiZqFmOocrqU3J8poH/yYpAxps/lWurlF7LJ3d09SMw2rzZR9eMckGbw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.338.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/eventstream-serde-browser": "3.338.0", + "@aws-sdk/eventstream-serde-config-resolver": "3.338.0", + "@aws-sdk/eventstream-serde-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@aws-sdk/util-waiter": "3.338.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/client-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz", + "integrity": "sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz", + "integrity": "sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/client-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz", + "integrity": "sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-sts": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz", + "integrity": "sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz", + "integrity": "sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz", + "integrity": "sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-ini": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz", + "integrity": "sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz", + "integrity": "sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/token-providers": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz", + "integrity": "sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz", + "integrity": "sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/middleware-logger": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz", + "integrity": "sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz", + "integrity": "sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz", + "integrity": "sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/token-providers": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz", + "integrity": "sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/util-endpoints": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz", + "integrity": "sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz", + "integrity": "sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz", + "integrity": "sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-lambda/node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-rds/-/client-rds-3.338.0.tgz", + "integrity": "sha512-PXiHzt3EHOrXuIwQ9Bfm7fAbQ4x1bFRBswCPv6TN0TurUvFh5TXP9zOEihXyrryMPcQJkNaXQ7q9d2U4Kl0aVg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.338.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-rds": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@aws-sdk/util-waiter": "3.338.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/client-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.338.0.tgz", + "integrity": "sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.338.0.tgz", + "integrity": "sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/client-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.338.0.tgz", + "integrity": "sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-node": "3.338.0", + "@aws-sdk/fetch-http-handler": "3.338.0", + "@aws-sdk/hash-node": "3.338.0", + "@aws-sdk/invalid-dependency": "3.338.0", + "@aws-sdk/middleware-content-length": "3.338.0", + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/middleware-host-header": "3.338.0", + "@aws-sdk/middleware-logger": "3.338.0", + "@aws-sdk/middleware-recursion-detection": "3.338.0", + "@aws-sdk/middleware-retry": "3.338.0", + "@aws-sdk/middleware-sdk-sts": "3.338.0", + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/middleware-user-agent": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/node-http-handler": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "@aws-sdk/util-body-length-browser": "3.310.0", + "@aws-sdk/util-body-length-node": "3.310.0", + "@aws-sdk/util-defaults-mode-browser": "3.338.0", + "@aws-sdk/util-defaults-mode-node": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "@aws-sdk/util-user-agent-browser": "3.338.0", + "@aws-sdk/util-user-agent-node": "3.338.0", + "@aws-sdk/util-utf8": "3.310.0", + "@smithy/protocol-http": "^1.0.1", + "@smithy/types": "^1.0.0", + "fast-xml-parser": "4.1.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.338.0.tgz", + "integrity": "sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.338.0.tgz", + "integrity": "sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.338.0.tgz", + "integrity": "sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/credential-provider-ini": "3.338.0", + "@aws-sdk/credential-provider-process": "3.338.0", + "@aws-sdk/credential-provider-sso": "3.338.0", + "@aws-sdk/credential-provider-web-identity": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.338.0.tgz", + "integrity": "sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.338.0.tgz", + "integrity": "sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/token-providers": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.338.0.tgz", + "integrity": "sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.338.0.tgz", + "integrity": "sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/middleware-logger": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.338.0.tgz", + "integrity": "sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.338.0.tgz", + "integrity": "sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.338.0.tgz", + "integrity": "sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-endpoints": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/token-providers": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.338.0.tgz", + "integrity": "sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/util-endpoints": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.338.0.tgz", + "integrity": "sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.338.0.tgz", + "integrity": "sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.338.0.tgz", + "integrity": "sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-rds/node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.582.0.tgz", + "integrity": "sha512-yp3oIN48sQSJ01JF707KcOLAb7+UxcU6uYH0J48AG61z18tJ0SdE7KG2QPEFbK1RRyYXdHd8VLkbTVP+iwCLmw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha1-browser": "3.0.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.582.0", + "@aws-sdk/client-sts": "3.582.0", + "@aws-sdk/core": "3.582.0", + "@aws-sdk/credential-provider-node": "3.582.0", + "@aws-sdk/middleware-bucket-endpoint": "3.577.0", + "@aws-sdk/middleware-expect-continue": "3.577.0", + "@aws-sdk/middleware-flexible-checksums": "3.577.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-location-constraint": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-sdk-s3": "3.582.0", + "@aws-sdk/middleware-signing": "3.577.0", + "@aws-sdk/middleware-ssec": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/signature-v4-multi-region": "3.582.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@aws-sdk/xml-builder": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.1", + "@smithy/eventstream-serde-browser": "^3.0.0", + "@smithy/eventstream-serde-config-resolver": "^3.0.0", + "@smithy/eventstream-serde-node": "^3.0.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-blob-browser": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/hash-stream-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/md5-js": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.1", + "@smithy/util-defaults-mode-node": "^3.0.1", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.577.0.tgz", + "integrity": "sha512-QS/dh3+NqZbXtY0j/DZ867ogP413pG5cFGqBy9OeOhDMsolcwLrQbi0S0c621dc1QNq+er9ffaMhZ/aPkyXXIg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-ssm": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.582.0.tgz", + "integrity": "sha512-62yLmE1QpkaK2KGDL4Fv4LLGo6NjKO+AqFvNndQ+eL7U7D46lYLgDj1VeJOqkcS0Agl/K7+CClKz7gP0qKvUdw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.582.0", + "@aws-sdk/client-sts": "3.582.0", + "@aws-sdk/core": "3.582.0", + "@aws-sdk/credential-provider-node": "3.582.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.1", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.1", + "@smithy/util-defaults-mode-node": "^3.0.1", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.0.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-ssm/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-ssm/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.582.0.tgz", + "integrity": "sha512-C6G2vNREANe5uUCYrTs8vvGhIrrS1GRoTjr0f5qmkZDuAtuBsQNoTF6Rt+0mDwXXBYW3FcNhZntaNCGVhXlugA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.582.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.1", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.1", + "@smithy/util-defaults-mode-node": "^3.0.1", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.582.0.tgz", + "integrity": "sha512-g4uiD4GUR03CqY6LwdocJxO+fHSBk/KNXBGJv1ENCcPmK3jpEI8xBggIQOQl3NWjDeP07bpIb8+UhgSoYAYtkg==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.582.0", + "@aws-sdk/core": "3.582.0", + "@aws-sdk/credential-provider-node": "3.582.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.1", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.1", + "@smithy/util-defaults-mode-node": "^3.0.1", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.582.0.tgz", + "integrity": "sha512-3gaYyQkt8iTSStnjv6kJoPGDJUaPbhcgBOrXhUNbWUgAlgw7Y1aI1MYt3JqvVN4jtiCLwjuiAQATU/8elbqPdQ==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.582.0", + "@aws-sdk/core": "3.582.0", + "@aws-sdk/credential-provider-node": "3.582.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.1", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.1", + "@smithy/util-defaults-mode-node": "^3.0.1", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/config-resolver": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.338.0.tgz", + "integrity": "sha512-rB9WUaMfTB74Hd2mOiyPFR7Q1viT+w6SaDSR9SA1P8EeIg5H13FNdIKb736Z8/6QJhDj7whdyk1CTGV+DmXOOg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-config-provider": "3.310.0", + "@aws-sdk/util-middleware": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/config-resolver/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.582.0.tgz", + "integrity": "sha512-ofmD96IQc9g1dbyqlCyxu5fCG7kIl9p1NoN5+vGBUyLdbmPCV3Pdg99nRHYEJuv2MgGx5AUFGDPMHcqbJpnZIw==", + "dev": true, + "dependencies": { + "@smithy/core": "^2.0.1", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/core/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.592.0.tgz", + "integrity": "sha512-uHiMPCkFhZOhlSfKgVqPhMdruiOuVkLUn07gQqvxHYhFKkEOPV+6BZbPKBwBTXr8TIREztQzCMPswa5pGk2zbQ==", + "dev": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.592.0", + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.577.0.tgz", + "integrity": "sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.582.0.tgz", + "integrity": "sha512-kGOUKw5ryPkDIYB69PjK3SicVLTbWB06ouFN2W1EvqUJpkQGPAUGzYcomKtt3mJaCTf/1kfoaHwARAl6KKSP8Q==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-imds": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.338.0.tgz", + "integrity": "sha512-qsqeywYfJevg5pgUUUBmm7pK1bckVrl091PZB2IliFdQVnDvI5GFLf4B0oZqjaLAzPG1gVtxRvqIve+tnP/+xA==", + "dev": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-imds/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.582.0.tgz", + "integrity": "sha512-GWcjHx6ErcZAi5GZ7kItX7E6ygYmklm9tD9dbCWdsnis7IiWfYZNMXFQEwKCubUmhT61zjGZGDUiRcqVeZu1Aw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.577.0", + "@aws-sdk/credential-provider-process": "3.577.0", + "@aws-sdk/credential-provider-sso": "3.582.0", + "@aws-sdk/credential-provider-web-identity": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.582.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.582.0.tgz", + "integrity": "sha512-T8OLA/2xayRMT8z2eIZgo8tBAamTsBn7HWc8mL1a9yzv5OCPYvucNmbO915DY8u4cNbMl2dcB9frfVxIrahCXw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.577.0", + "@aws-sdk/credential-provider-http": "3.582.0", + "@aws-sdk/credential-provider-ini": "3.582.0", + "@aws-sdk/credential-provider-process": "3.577.0", + "@aws-sdk/credential-provider-sso": "3.582.0", + "@aws-sdk/credential-provider-web-identity": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.577.0.tgz", + "integrity": "sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.582.0.tgz", + "integrity": "sha512-PSiBX6YvJaodGSVg6dReWfeYgK5Tl4fUi0GMuD9WXo/ckfxAPdDFtIfVR6VkSPUrkZj26uw1Pwqeefp2H5phag==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.582.0", + "@aws-sdk/token-providers": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.577.0.tgz", + "integrity": "sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.577.0" + } + }, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.592.0.tgz", + "integrity": "sha512-fHAt001Aemiy9p8VtLKWiPQ36g1YgiLC1pm31W+WmKxU663dbt2yYTIAyVOB1nQC7HrVCOZEg2FU0TtuZt/wXQ==", + "dev": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.592.0", + "@aws-sdk/client-sso": "3.592.0", + "@aws-sdk/client-sts": "3.592.0", + "@aws-sdk/credential-provider-cognito-identity": "3.592.0", + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.587.0", + "@aws-sdk/credential-provider-ini": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.592.0.tgz", + "integrity": "sha512-w+SuW47jQqvOC7fonyjFjsOh3yjqJ+VpWdVrmrl0E/KryBE7ho/Wn991Buf/EiHHeJikoWgHsAIPkBH29+ntdA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.592.0.tgz", + "integrity": "sha512-11Zvm8nm0s/UF3XCjzFRpQU+8FFVW5rcr3BHfnH6xAe5JEoN6bJN/n+wOfnElnjek+90hh+Qc7s141AMrCjiiw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.592.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sts": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.592.0.tgz", + "integrity": "sha512-KUrOdszZfcrlpKr4dpdkGibZ/qq3Lnfu1rjv1U+V1QJQ9OuMo9J3sDWpWV9tigNqY0aGllarWH5cJbz9868W/w==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.592.0", + "@aws-sdk/core": "3.592.0", + "@aws-sdk/credential-provider-node": "3.592.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.587.0", + "@aws-sdk/region-config-resolver": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.587.0", + "@smithy/config-resolver": "^3.0.1", + "@smithy/core": "^2.2.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.3", + "@smithy/util-defaults-mode-node": "^3.0.3", + "@smithy/util-endpoints": "^2.0.1", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.592.0.tgz", + "integrity": "sha512-gLPMXR/HXDP+9gXAt58t7gaMTvRts9i6Q7NMISpkGF54wehskl5WGrbdtHJFylrlJ5BQo3XVY6i661o+EuR1wg==", + "dev": true, + "dependencies": { + "@smithy/core": "^2.2.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.587.0.tgz", + "integrity": "sha512-Hyg/5KFECIk2k5o8wnVEiniV86yVkhn5kzITUydmNGCkXdBFHMHRx6hleQ1bqwJHbBskyu8nbYamzcwymmGwmw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.587.0.tgz", + "integrity": "sha512-Su1SRWVRCuR1e32oxX3C1V4c5hpPN20WYcRfdcr2wXwHqSvys5DrnmuCC+JoEnS/zt3adUJhPliTqpfKgSdMrA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.592.0.tgz", + "integrity": "sha512-3kG6ngCIOPbLJZZ3RV+NsU7HVK6vX1+1DrPJKj9fVlPYn7IXsk8NAaUT5885yC7+jKizjv0cWLrLKvAJV5gfUA==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.587.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.592.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.592.0.tgz", + "integrity": "sha512-BguihBGTrEjVBQ07hm+ZsO29eNJaxwBwUZMftgGAm2XcMIEClNPfm5hydxu2BmA4ouIJQJ6nG8pNYghEumM+Aw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.587.0", + "@aws-sdk/credential-provider-http": "3.587.0", + "@aws-sdk/credential-provider-ini": "3.592.0", + "@aws-sdk/credential-provider-process": "3.587.0", + "@aws-sdk/credential-provider-sso": "3.592.0", + "@aws-sdk/credential-provider-web-identity": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.587.0.tgz", + "integrity": "sha512-V4xT3iCqkF8uL6QC4gqBJg/2asd/damswP1h9HCfqTllmPWzImS+8WD3VjgTLw5b0KbTy+ZdUhKc0wDnyzkzxg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.592.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.592.0.tgz", + "integrity": "sha512-fYFzAdDHKHvhtufPPtrLdSv8lO6GuW3em6n3erM5uFdpGytNpjXvr3XGokIsuXcNkETAY/Xihg+G9ksNE8WJxQ==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.592.0", + "@aws-sdk/token-providers": "3.587.0", + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.587.0.tgz", + "integrity": "sha512-XqIx/I2PG7kyuw3WjAP9wKlxy8IvFJwB8asOFT1xPFoVfZYKIogjG9oLP5YiRtfvDkWIztHmg5MlVv3HdJDGRw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.587.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.587.0.tgz", + "integrity": "sha512-SyDomN+IOrygLucziG7/nOHkjUXES5oH5T7p8AboO8oakMQJdnudNXiYWTicQWO52R51U6CR27rcMPTGeMedYA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.587.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.587.0.tgz", + "integrity": "sha512-93I7IPZtulZQoRK+O20IJ4a1syWwYPzoO2gc3v+/GNZflZPV3QJXuVbIm0pxBsu0n/mzKGUKqSOLPIaN098HcQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/token-providers": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.587.0.tgz", + "integrity": "sha512-ULqhbnLy1hmJNRcukANBWJmum3BbjXnurLPSFXoGdV0llXYlG55SzIla2VYqdveQEEjmsBuTZdFvXAtNpmS5Zg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.587.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-endpoints": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.587.0.tgz", + "integrity": "sha512-8I1HG6Em8wQWqKcRW6m358mqebRVNpL8XrrEoT4In7xqkKkmYtHRNVYP6lcmiQh5pZ/c/FXu8dSchuFIWyEtqQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "@smithy/util-endpoints": "^2.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.587.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.587.0.tgz", + "integrity": "sha512-Pnl+DUe/bvnbEEDHP3iVJrOtE3HbFJBPgsD6vJ+ml/+IYk1Eq49jEG+EHZdNTPz3SDG0kbp2+7u41MKYJHR/iQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/eventstream-codec": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.338.0.tgz", + "integrity": "sha512-D9nxnkuY6ArIr+b2Gfc0YExWgNbzgfLIljgcBawL9P4vkkE0uZgPM0fF0Paug2DpkuSluHS6PCLaM/nLbBiLAQ==", + "dev": true, + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-hex-encoding": "3.310.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/eventstream-codec/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.338.0.tgz", + "integrity": "sha512-SRaFPJpCPOghZ9vuStSBzwvVqEX0DSVQl4j1vq/9mHUj1a4Xn0qH29eLBxsyB5NOQNb46RMdd8UTNgNSnCI74w==", + "dev": true, + "dependencies": { + "@aws-sdk/eventstream-serde-universal": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-browser/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-config-resolver": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.338.0.tgz", + "integrity": "sha512-utid/nDd6IoPXWwz/mCnAwWWNgntK53feRLsztyWg7GHJabXli/kXo6U/3+Mn7Q2RS4eAASpqhYXXrVni5SgTA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-config-resolver/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.338.0.tgz", + "integrity": "sha512-Fwnrgaa6rs/0HMD3NVk1FcxZqgtG5xZz9qIlSLt5JFIG/rpBTrMREi+KIhLHvd3/4ZhkdLjX7y+ml8K6atSveA==", + "dev": true, + "dependencies": { + "@aws-sdk/eventstream-serde-universal": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-node/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-universal": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.338.0.tgz", + "integrity": "sha512-uuHu1nksdPPevuSUkq5aOo7j1Zb6IRSuQ0fV0zuolg2i1B2wAQjrkWH9EcvGzOe0/yWEQF3ohggczuovn4yCzQ==", + "dev": true, + "dependencies": { + "@aws-sdk/eventstream-codec": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-universal/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/fetch-http-handler": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.338.0.tgz", + "integrity": "sha512-NOIQmeSa51J2nFAzl99IjxwQkq27cdNJzF59jQWzpUCGbxXfMD4WWy2NHubabSFuJ4FJU2eyoQHUNUFc6/uxXA==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/querystring-builder": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-base64": "3.310.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/fetch-http-handler/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/hash-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.338.0.tgz", + "integrity": "sha512-udveX3ZRO1oUbyBTQH0LJ8Ika7uk0pHuXrqapdi66GGRJB50IhmOg372zUEwZjDB7DZYXfGTCuAj2OoEalgpBA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-buffer-from": "3.310.0", + "@aws-sdk/util-utf8": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/hash-node/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/invalid-dependency": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.338.0.tgz", + "integrity": "sha512-m6r1fTTGSl0V6l8Z+Ii4Ei8VFpDmu0AT6A59ZhJaMZgxf925ywuCPydyDW9ZqTLE0e7CgxhEHEsH1+HzpVuHTw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/invalid-dependency/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/is-array-buffer": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz", + "integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.577.0.tgz", + "integrity": "sha512-twlkNX2VofM6kHXzDEiJOiYCc9tVABe5cbyxMArRWscIsCWG9mamPhC77ezG4XsN9dFEwVdxEYD5Crpm/5EUiw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-arn-parser": "3.568.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-content-length": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.338.0.tgz", + "integrity": "sha512-m2C+yJaNmbA3ocBp/7ImUUuimymV5JsFdV7yAibpbYMX22g3q83nieOF9x0I66J0+h+/bcriz/T1ZJAPANLz/g==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-content-length/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-endpoint": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.338.0.tgz", + "integrity": "sha512-bzL9Q8lFidg2NTjGVGDKI6yPG/XiPS+VIAMHJeihQmcv1alIy+N3IL4bEN15Fg+cwaGm+P3BevcLIHmcCOVb4w==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-serde": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/url-parser": "3.338.0", + "@aws-sdk/util-middleware": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-endpoint/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.577.0.tgz", + "integrity": "sha512-6dPp8Tv4F0of4un5IAyG6q++GrRrNQQ4P2NAMB1W0VO4JoEu1C8GievbbDLi88TFIFmtKpnHB0ODCzwnoe8JsA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.577.0.tgz", + "integrity": "sha512-IHAUEipIfagjw92LV8SOSBiCF7ZnqfHcw14IkcZW2/mfrCy1Fh/k40MoS/t3Tro2tQ91rgQPwUoSgB/QCi2Org==", + "dev": true, + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-crypto/crc32c": "3.0.0", + "@aws-sdk/types": "3.577.0", + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz", + "integrity": "sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.577.0.tgz", + "integrity": "sha512-DKPTD2D2s+t2QUo/IXYtVa/6Un8GZ+phSTBkyBNx2kfZz4Kwavhl/JJzSqTV3GfCXkVdFu7CrjoX7BZ6qWeTUA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz", + "integrity": "sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz", + "integrity": "sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.338.0.tgz", + "integrity": "sha512-nw1oPFkB7TdDG4Vlz2Td47ft/2Gmx1bA18QfE9K1mMWZ4nnoAL8xnHbowlTfHo62+BbFCAPu53PzDUCncBL0iw==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/service-error-classification": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-middleware": "3.338.0", + "@aws-sdk/util-retry": "3.338.0", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/middleware-sdk-ec2": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-ec2/-/middleware-sdk-ec2-3.338.0.tgz", + "integrity": "sha512-BVYXaDHub4Y5dutr8Ly4HTp4aC7NTR0Jj8aKvB6chDr4B5D3zaqsSVqDrAtDCOFIvwCj59ETZMxfiTd7rvBhQA==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/signature-v4": "3.338.0", + "@aws-sdk/smithy-client": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-format-url": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-ec2/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-rds": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-rds/-/middleware-sdk-rds-3.338.0.tgz", + "integrity": "sha512-VguJAlK3q5fobISRf0m1tbYEWkxGx7t2NR7Ci/L+YTpCRUa4uHUWrX6NjSm2dbHfmC9eitNEyAasZ3Itzv/gNQ==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-endpoint": "3.338.0", + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/signature-v4": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-format-url": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-rds/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.582.0.tgz", + "integrity": "sha512-PJqQpLoLaZPRI4L/XZUeHkd9UVK8VAr9R38wv0osGeMTvzD9iwzzk0I2TtBqFda/5xEB1YgVYZwyqvmStXmttg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-arn-parser": "3.568.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.0.1", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.338.0.tgz", + "integrity": "sha512-aZ8eFVaot8oYQri1wOesrA3gLizeAHtlA/ELlqxoGDJtO011J4/hTHTn0iJGbktaCvc1L3TF6mgOsgXpudYqMg==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-signing": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-serde": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.338.0.tgz", + "integrity": "sha512-AabRLrE6sk9tqQlQ7z3kn4gTHNN7Anjk/AM0ZEu96WcWjedcpgM1vVpKTBE7vjnxcTRNq0CEM3GLtQqaZ7/HjQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-serde/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.338.0.tgz", + "integrity": "sha512-AprhhShMF75mOx80SABujLwrU/w2uHQIvWd6aF3BsE5JRI3uQZRqspfjFCaK52HNLQPj3sCQUw1GeiZJ8GyWCw==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/signature-v4": "3.338.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-middleware": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.577.0.tgz", + "integrity": "sha512-i2BPJR+rp8xmRVIGc0h1kDRFcM2J9GnClqqpc+NLSjmYadlcg4mPklisz9HzwFVcRPJ5XcGf3U4BYs5G8+iTyg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-stack": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.338.0.tgz", + "integrity": "sha512-9zXyiklX9AK9ZIXuIPzWzz2vevBEcnBs9UNIxiHl4NBZ8d8oyTvaES1PtFuwL6f7ANSZ9EGVQ2rdTTnMNxMI1A==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.577.0.tgz", + "integrity": "sha512-P55HAXgwmiHHpFx5JEPvOnAbfhN7v6sWv9PBQs+z2tC7QiBcPS0cdJR6PfV7J1n4VPK52/OnrK3l9VxdQ7Ms0g==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/node-config-provider": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.338.0.tgz", + "integrity": "sha512-YO7yWg3ipnUI5u6D+Zn2NUpjj5krwc8zNWeY79ULVIp9g7faqGX3xMSjeRSrpZ83s5jg1dOm/+bB0gw7mCrRCw==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/shared-ini-file-loader": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-config-provider/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-http-handler": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.338.0.tgz", + "integrity": "sha512-V1BLzCruiv45tJ0vXjiamY8LncIsUFsXYJGDupomFYhWRN8L1MUB9f2vdKn5X3wXn/yKrluwTmNaryrIqd9akA==", + "dev": true, + "dependencies": { + "@aws-sdk/abort-controller": "3.338.0", + "@aws-sdk/protocol-http": "3.338.0", + "@aws-sdk/querystring-builder": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-http-handler/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/property-provider": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.338.0.tgz", + "integrity": "sha512-mC+ZJ738ipif6ZkH59gcipozYj1FOfpXr9pGVCA2hJGLDdaBwI2Jfpb2qCqbsTNtoCjBuIy+sQHGmUHyclgYHg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/property-provider/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/protocol-http": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.338.0.tgz", + "integrity": "sha512-JX03Q2gshdzOWtA/07kdpk0hqeOrOfwuF8TB97g66VCcIopYQkCeNH1zzkWu+RsGxfSlzQ7up+ZM6sclYXyB1A==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/protocol-http/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-builder": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.338.0.tgz", + "integrity": "sha512-IB3YhO93Htwt2SxJx4VWsN57Rt1KEsvZ6PbneO4bcS96E04BlfBujYMZ+QxEM3EJxorhpkwbI2QnI12IjD8FhA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-uri-escape": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-builder/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-parser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.338.0.tgz", + "integrity": "sha512-vtI8Gqx4yj0BZlWonRMgLz68sHt5H48HN+ClnY+fDDB/8KLnCuwZ3TGKmYIbYbshL9wjJz0A9aLzuC6nPQ5JKw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-parser/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.577.0.tgz", + "integrity": "sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/service-error-classification": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.338.0.tgz", + "integrity": "sha512-BJFr2mx/N3NbycGTlMMGRBc0tGcHXHEbMPy1H2RbejzL23zh27MchaL1WAK9SvwVMKS29hSDbhkuVR2ABRjerA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/shared-ini-file-loader": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.338.0.tgz", + "integrity": "sha512-MA1Sp97LFlOXcUaXgo47j86IsPRWYq1V/JqR+uu0zofZw4Xlt7Y6F+mmnDHvuuMy6R2ltzjXSwgrrW3k0bxFPA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/shared-ini-file-loader/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.338.0.tgz", + "integrity": "sha512-EwKTe/8Iwab/v0eo27w7DRYlqp9wEZEhuRfOMwTikUVH6iuTnW6AXjcIUfcRYBRbx2zqnRSiMAZkjN6ZFYm0bQ==", + "dev": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.310.0", + "@aws-sdk/types": "3.338.0", + "@aws-sdk/util-hex-encoding": "3.310.0", + "@aws-sdk/util-middleware": "3.338.0", + "@aws-sdk/util-uri-escape": "3.310.0", + "@aws-sdk/util-utf8": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.582.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.582.0.tgz", + "integrity": "sha512-aFCOjjNqEX2l+V8QjOWy5F7CtHIC/RlYdBuv3No6yxn+pMvVUUe6zdMk2yHWcudVpHWsyvcZzAUBliAPeFLPsQ==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.582.0", + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/smithy-client": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.338.0.tgz", + "integrity": "sha512-IpFLdLG8GwaiFdqVXf+WyU47Hfa2BMIupAU6iSkE2ZO0lBdg+efn/BBwis5WbBNTDCaaU0xH9y68SmnqqtD7pA==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-stack": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/smithy-client/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.577.0.tgz", + "integrity": "sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.577.0" + } + }, + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.577.0.tgz", + "integrity": "sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/url-parser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.338.0.tgz", + "integrity": "sha512-x8a5swfZ6iWJZEA8rm99OKQ1A6xhWPP1taQUzoPavGCzPAOqyc8cd0FcXYMxvtXb3FeBhGaI8tiGKvelJro0+A==", + "dev": true, + "dependencies": { + "@aws-sdk/querystring-parser": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/url-parser/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz", + "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-base64": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz", + "integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==", + "dev": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-body-length-browser": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz", + "integrity": "sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/util-body-length-node": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz", + "integrity": "sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-buffer-from": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz", + "integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==", + "dev": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-config-provider": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz", + "integrity": "sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-browser": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.338.0.tgz", + "integrity": "sha512-Zfr5c7JKMJTfb7z+hgd0ioU5iw+wId6Cppc5V1HpZuS2YY4Mn3aJIixzyzhIoCzbmk/yIkf96981epM9eo3/TA==", + "dev": true, + "dependencies": { + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-browser/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-node": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.338.0.tgz", + "integrity": "sha512-DFM3BSpSetshZTgTjueCkAYZWS0tn5zl7SjkSpFhWQZ8Tt/Df3/DEjcPvxzmC/5vgYSUXNsqcI7lLAJk9aGZAA==", + "dev": true, + "dependencies": { + "@aws-sdk/config-resolver": "3.338.0", + "@aws-sdk/credential-provider-imds": "3.338.0", + "@aws-sdk/node-config-provider": "3.338.0", + "@aws-sdk/property-provider": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-node/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.577.0.tgz", + "integrity": "sha512-FjuUz1Kdy4Zly2q/c58tpdqHd6z7iOdU/caYzoc8jwgAHBDBbIJNQLCU9hXJnPV2M8pWxQDyIZsoVwtmvErPzw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-format-url": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.338.0.tgz", + "integrity": "sha512-25YnU5LyMVdyW+H4K/MtZ1vQhUK86Pn88eQt4jIp/D5v43+BGylKUQ3I+Zna7vUkv7kbPBCqlGcF62izls3V5w==", + "dev": true, + "dependencies": { + "@aws-sdk/querystring-builder": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-format-url/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-hex-encoding": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz", + "integrity": "sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz", + "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-middleware": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.338.0.tgz", + "integrity": "sha512-oQuAmhi16HWEqVa+Nq4VD4Ymet9vS+uiW92reaagQrW2QFjAgJW9A6pU0PcIHF9sWY1iDKeNdV5b9odQ45PDJA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-retry": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.338.0.tgz", + "integrity": "sha512-diR6M3gJgSgBg/87L2e8iF8urG+LOW9ZGWxhntYpYX4uhiIjwNgUPUa993553C8GIOZDHez5X9ExU4asYGQ71Q==", + "dev": true, + "dependencies": { + "@aws-sdk/service-error-classification": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/util-uri-escape": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz", + "integrity": "sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz", + "integrity": "sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.577.0.tgz", + "integrity": "sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/node-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz", + "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz", + "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-utf8": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz", + "integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==", + "dev": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "dev": true, + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-waiter": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.338.0.tgz", + "integrity": "sha512-15yWYJo/M4VDpZjlXgQDM4Du8UjX33eIVPJDrOmn/u+UrD6QUXoBuLXKns0uAMUTPFacBGZ0NwMywxieq0g11Q==", + "dev": true, + "dependencies": { + "@aws-sdk/abort-controller": "3.338.0", + "@aws-sdk/types": "3.338.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-waiter/node_modules/@aws-sdk/types": { + "version": "3.338.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.338.0.tgz", + "integrity": "sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==", + "dev": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.575.0.tgz", + "integrity": "sha512-cWgAwmbFYNCFzPwxL705+lWps0F3ZvOckufd2KKoEZUmtpVw9/txUXNrPySUXSmRTSRhoatIMABNfStWR043bQ==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.4.tgz", + "integrity": "sha512-aLpZzf79oGT1bxnsadapfUWErDTcxVKrhvR5F8G27JFgH37+/ATrODMJ0/1D2CgQ/WStDX5B5znnWRv0NzW2JQ==", + "dev": true, + "dependencies": { + "@babel/types": "7.0.0-beta.4", + "jsesc": "^2.5.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz", + "integrity": "sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.24.5", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz", + "integrity": "sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-flow": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", + "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.4.tgz", + "integrity": "sha512-yLvBW5TTAgJwURAUAdZa1vrFTkwXXvk0Kw48LYvgxpyT/IaV8W4OIhxdVztAt5ruDQ/OFUwHpzWqk6TN3EfmWA==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@graphql-codegen/core": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-4.0.2.tgz", + "integrity": "sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.3", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.6.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-codegen/plugin-helpers": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.4.tgz", + "integrity": "sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.6.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.0.tgz", + "integrity": "sha512-HYV7dO6pNA2nGKawygaBpk8y+vXOUjjzzO43W/Kb7EPRmXUEQKjHxPYRvQbiF72u1N3XxwGK5jnnFk9WVhUwYw==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/plugin-helpers": { + "version": "1.18.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.8.tgz", + "integrity": "sha512-mb4I9j9lMGqvGggYuZ0CV+Hme08nar68xkpPbAVotg/ZBmlhZIok/HqW2BcMQi7Rj+Il5HQMeQ1wQ1M7sv/TlQ==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^7.9.1", + "common-tags": "1.8.0", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz", + "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==", + "dev": true, + "dependencies": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.2", + "tslib": "~2.2.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils/node_modules/tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", + "dev": true + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@graphql-codegen/schema-ast": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.6.1.tgz", + "integrity": "sha512-5TNW3b1IHJjCh07D2yQNGDQzUpUl2AD+GVe1Dzjqyx/d2Fn0TPMxLsHsKPS4Plg4saO8FK/QO70wLsP7fdbQ1w==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.2", + "@graphql-tools/utils": "^9.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.8.tgz", + "integrity": "sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.2", + "@graphql-codegen/schema-ast": "^2.6.1", + "@graphql-codegen/visitor-plugin-common": "2.13.8", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.13.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz", + "integrity": "sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.2", + "@graphql-tools/optimize": "^1.3.0", + "@graphql-tools/relay-operation-optimizer": "^6.5.0", + "@graphql-tools/utils": "^9.0.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/typescript/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-1.22.0.tgz", + "integrity": "sha512-2afJGb6d8iuZl9KizYsexPwraEKO1lAvt5eVHNM5Xew4vwz/AUHeqDR2uOeQgVV+27EzjjzSDd47IEdH0dLC2w==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^1.18.8", + "@graphql-tools/optimize": "^1.0.1", + "@graphql-tools/relay-operation-optimizer": "^6.3.0", + "array.prototype.flatmap": "^1.2.4", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.14", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@graphql-tools/apollo-engine-loader": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.1.tgz", + "integrity": "sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/utils": "^10.0.13", + "@whatwg-node/fetch": "^0.9.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@graphql-tools/utils": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.1.tgz", + "integrity": "sha512-U8OMdkkEt3Vp3uYHU2pMc6mwId7axVAcSSmcqJcUmWNPqY2pfee5O655ybTI2kNPWAe58Zu6gLu4Oi4QT4BgWA==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/merge": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.4.tgz", + "integrity": "sha512-MivbDLUQ+4Q8G/Hp/9V72hbn810IJDEZQ57F01sHnlrrijyadibfVhaQfW/pNH+9T/l8ySZpaR/DpL5i+ruZ+g==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.0.tgz", + "integrity": "sha512-HYV7dO6pNA2nGKawygaBpk8y+vXOUjjzzO43W/Kb7EPRmXUEQKjHxPYRvQbiF72u1N3XxwGK5jnnFk9WVhUwYw==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/optimize": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.4.0.tgz", + "integrity": "sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.5.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz", + "integrity": "sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==", + "dev": true, + "dependencies": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz", + "integrity": "sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==", + "dev": true, + "dependencies": { + "@graphql-tools/merge": "^9.0.3", + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.0.tgz", + "integrity": "sha512-HYV7dO6pNA2nGKawygaBpk8y+vXOUjjzzO43W/Kb7EPRmXUEQKjHxPYRvQbiF72u1N3XxwGK5jnnFk9WVhUwYw==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.4.tgz", + "integrity": "sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==", + "dev": true, + "dependencies": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.1", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/utils/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "dev": true, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.5.2.tgz", + "integrity": "sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/checkbox/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/confirm": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-2.0.17.tgz", + "integrity": "sha512-EqzhGryzmGpy2aJf6LxJVhndxYmFs+m8cxXzf8nejb1DE3sabf6mUgBcp4J0jAUEiAcYzqmkqRr7LPFh/WdnXA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/confirm/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/core": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", + "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", + "dev": true, + "dependencies": { + "@inquirer/type": "^1.1.6", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.10.7", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/editor": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.2.15.tgz", + "integrity": "sha512-gQ77Ls09x5vKLVNMH9q/7xvYPT6sIs5f7URksw+a2iJZ0j48tVS6crLqm2ugG33tgXHIwiEqkytY60Zyh5GkJQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/editor/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/expand": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.1.16.tgz", + "integrity": "sha512-TGLU9egcuo+s7PxphKUCnJnpCIVY32/EwPCLLuu+gTvYiD8hZgx8Z2niNQD36sa6xcfpdLY6xXDBiL/+g1r2XQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/expand/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/input": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.2.16.tgz", + "integrity": "sha512-Ou0LaSWvj1ni+egnyQ+NBtfM1885UwhRCMtsRt2bBO47DoC1dwtCa+ZUNgrxlnCHHF0IXsbQHYtIIjFGAavI4g==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/input/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/password": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.1.16.tgz", + "integrity": "sha512-aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/password/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/prompts": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-3.3.2.tgz", + "integrity": "sha512-k52mOMRvTUejrqyF1h8Z07chC+sbaoaUYzzr1KrJXyj7yaX7Nrh0a9vktv8TuocRwIJOQMaj5oZEmkspEcJFYQ==", + "dev": true, + "dependencies": { + "@inquirer/checkbox": "^1.5.2", + "@inquirer/confirm": "^2.0.17", + "@inquirer/core": "^6.0.0", + "@inquirer/editor": "^1.2.15", + "@inquirer/expand": "^1.1.16", + "@inquirer/input": "^1.2.16", + "@inquirer/password": "^1.1.16", + "@inquirer/rawlist": "^1.2.16", + "@inquirer/select": "^1.3.3" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.2.16.tgz", + "integrity": "sha512-pZ6TRg2qMwZAOZAV6TvghCtkr53dGnK29GMNQ3vMZXSNguvGqtOVc4j/h1T8kqGJFagjyfBZhUPGwNS55O5qPQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/rawlist/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/select": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.3.3.tgz", + "integrity": "sha512-RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/select/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@inquirer/type": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz", + "integrity": "sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kamilkisiela/fast-url-parser": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz", + "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", + "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", + "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@smithy/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/chunked-blob-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz", + "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/chunked-blob-reader-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz", + "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==", + "dev": true, + "dependencies": { + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.1.tgz", + "integrity": "sha512-hbkYJc20SBDz2qqLzttjI/EqXemtmWk0ooRznLsiXp3066KQRTvuKHa7U4jCZCJq6Dozqvy0R1/vNESC9inPJg==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/config-resolver/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/config-resolver/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.0.tgz", + "integrity": "sha512-ygLZSSKgt9bR8HAxR9mK+U5obvAJBr6zlQuhN5soYWx/amjDoQN4dTkydTypgKe6rIbUjTILyLU+W5XFwXr4kg==", + "dev": true, + "dependencies": { + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-retry": "^3.0.3", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.0.tgz", + "integrity": "sha512-q4A4d38v8pYYmseu/jTS3Z5I3zXlEOe5Obi+EJreVKgSVyWUHOd7/yaVCinC60QG4MRyCs98tcxBH1IMC0bu7Q==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-codec": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.0.0.tgz", + "integrity": "sha512-PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ==", + "dev": true, + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.0.tgz", + "integrity": "sha512-NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw==", + "dev": true, + "dependencies": { + "@smithy/eventstream-serde-universal": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.0.tgz", + "integrity": "sha512-RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.0.tgz", + "integrity": "sha512-baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ==", + "dev": true, + "dependencies": { + "@smithy/eventstream-serde-universal": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-universal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.0.tgz", + "integrity": "sha512-HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw==", + "dev": true, + "dependencies": { + "@smithy/eventstream-codec": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz", + "integrity": "sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==", + "dev": true, + "dependencies": { + "@smithy/protocol-http": "^4.0.0", + "@smithy/querystring-builder": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-blob-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.0.0.tgz", + "integrity": "sha512-/Wbpdg+bwJvW7lxR/zpWAc1/x/YkcqguuF2bAzkJrvXriZu1vm8r+PUdE4syiVwQg7PPR2dXpi3CLBb9qRDaVQ==", + "dev": true, + "dependencies": { + "@smithy/chunked-blob-reader": "^3.0.0", + "@smithy/chunked-blob-reader-native": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.0.tgz", + "integrity": "sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/hash-stream-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.0.0.tgz", + "integrity": "sha512-J0i7de+EgXDEGITD4fxzmMX8CyCNETTIRXlxjMiNUvvu76Xn3GJ31wQR85ynlPk2wI1lqoknAFJaD1fiNDlbIA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz", + "integrity": "sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz", + "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/md5-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.0.tgz", + "integrity": "sha512-Tm0vrrVzjlD+6RCQTx7D3Ls58S3FUH1ZCtU1MIh/qQmaOo1H9lMN2as6CikcEwgattnA9SURSdoJJ27xMcEfMA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz", + "integrity": "sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==", + "dev": true, + "dependencies": { + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.1.tgz", + "integrity": "sha512-lQ/UOdGD4KM5kLZiAl0q8Qy3dPbynvAXKAdXnYlrA1OpaUwr+neSsVokDZpY6ZVb5Yx8jnus29uv6XWpM9P4SQ==", + "dev": true, + "dependencies": { + "@smithy/middleware-serde": "^3.0.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.3.tgz", + "integrity": "sha512-Wve1qzJb83VEU/6q+/I0cQdAkDnuzELC6IvIBwDzUEiGpKqXgX1v10FUuZGbRS6Ov/P+HHthcAoHOJZQvZNAkA==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^3.1.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/service-error-classification": "^3.0.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-retry/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-retry/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz", + "integrity": "sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz", + "integrity": "sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz", + "integrity": "sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^2.2.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz", + "integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==", + "dev": true, + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-config-provider/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz", + "integrity": "sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==", + "dev": true, + "dependencies": { + "@smithy/abort-controller": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/querystring-builder": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.0.tgz", + "integrity": "sha512-Tj3+oVhqdZgemjCiWjFlADfhvLF4C/uKDuKo7/tlEsRQ9+3emCreR2xndj970QSRSsiCEU8hZW3/8JQu+n5w4Q==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.0.0.tgz", + "integrity": "sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz", + "integrity": "sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "@smithy/util-uri-escape": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz", + "integrity": "sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz", + "integrity": "sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz", + "integrity": "sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==", + "dev": true, + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-3.0.0.tgz", + "integrity": "sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==", + "dev": true, + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-uri-escape": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.1.tgz", + "integrity": "sha512-tj4Ku7MpzZR8cmVuPcSbrLFVxmptWktmJMwST/uIEq4sarabEdF8CbmQdYB7uJ/X51Qq2EYwnRsoS7hdR4B7rA==", + "dev": true, + "dependencies": { + "@smithy/middleware-endpoint": "^3.0.1", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-stream": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.0.0.tgz", + "integrity": "sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/url-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.0.tgz", + "integrity": "sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==", + "dev": true, + "dependencies": { + "@smithy/querystring-parser": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-base64": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz", + "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==", + "dev": true, + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz", + "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz", + "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz", + "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==", + "dev": true, + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz", + "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.3.tgz", + "integrity": "sha512-3DFON2bvXJAukJe+qFgPV/rorG7ZD3m4gjCXHD1V5z/tgKQp5MCTCLntrd686tX6tj8Uli3lefWXJudNg5WmCA==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.3.tgz", + "integrity": "sha512-D0b8GJXecT00baoSQ3Iieu3k3mZ7GY8w1zmg8pdogYrGvWJeLcIclqk2gbkG4K0DaBGWrO6v6r20iwIFfDYrmA==", + "dev": true, + "dependencies": { + "@smithy/config-resolver": "^3.0.1", + "@smithy/credential-provider-imds": "^3.1.0", + "@smithy/node-config-provider": "^3.1.0", + "@smithy/property-provider": "^3.1.0", + "@smithy/smithy-client": "^3.1.1", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-endpoints": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.1.tgz", + "integrity": "sha512-ZRT0VCOnKlVohfoABMc8lWeQo/JEFuPWctfNRXgTHbyOVssMOLYFUNWukxxiHRGVAhV+n3c0kPW+zUqckjVPEA==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-endpoints/node_modules/@smithy/node-config-provider": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz", + "integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==", + "dev": true, + "dependencies": { + "@smithy/property-provider": "^3.1.0", + "@smithy/shared-ini-file-loader": "^3.1.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-endpoints/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz", + "integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz", + "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.0.tgz", + "integrity": "sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==", + "dev": true, + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-retry": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.0.tgz", + "integrity": "sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==", + "dev": true, + "dependencies": { + "@smithy/service-error-classification": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.1.tgz", + "integrity": "sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==", + "dev": true, + "dependencies": { + "@smithy/fetch-http-handler": "^3.0.1", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-uri-escape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz", + "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz", + "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==", + "dev": true, + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-waiter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.0.0.tgz", + "integrity": "sha512-+fEXJxGDLCoqRKVSmo0auGxaqbiCo+8oph+4auefYjaNxjOLKSY2MxVQfRzo65PaZv4fr+5lWg+au7vSuJJ/zw==", + "dev": true, + "dependencies": { + "@smithy/abort-controller": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@types/aws-lambda": { + "version": "8.10.138", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.138.tgz", + "integrity": "sha512-71EHMl70TPWIAsFuHd85NHq6S6T2OOjiisPTrH7RgcjzpJpPh4RQJv7PvVvIxc6PIp8CLV7F9B+TdjcAES5vcA==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==", + "dev": true + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true + }, + "node_modules/@typescript/vfs": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.3.6.tgz", + "integrity": "sha512-VSLn7rs46Qhe4gYxbK1/IB4NPLvgKl0I6SgeVyJwW5efYAELvDVqf1gVOG7JaKtW8qlMtBaZP02/4TRN39AkEQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.18.tgz", + "integrity": "sha512-hqoz6StCW+AjV/3N+vg0s1ah82ptdVUb9nH2ttj3UbySOXUvytWw2yqy8c1cKzyRk6mDD00G47qS3fZI9/gMjg==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.5.7", + "urlpattern-polyfill": "^10.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.11.tgz", + "integrity": "sha512-LS8tSomZa3YHnntpWt3PP43iFEEl6YeIsvDakczHBKlay5LdkXFr8w7v8H6akpG5nRrzydyB0k1iE2eoL6aKIQ==", + "dev": true, + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-cdk": { + "version": "2.145.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.145.0.tgz", + "integrity": "sha512-Jdw7nbrXiihYM/jReXK0/i8a+W/o+fLcn1f8Yzvns1jP58KBGQygqyiv5Dm+uqzS3D8/ZZnfPu3ph6aOVLPNSA==", + "dev": true, + "peer": true, + "bin": { + "cdk": "bin/cdk" + }, + "engines": { + "node": ">= 14.15.0" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/aws-cdk-lib": { + "version": "2.142.1", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.142.1.tgz", + "integrity": "sha512-xs4NRoml5/Zh30YHSk/Wwmr7VcZOZHyIInuBye3gC/BYwCh1lsUe9/ChWIeLUCRhUrELd5npyoBOJiHb3ql7Rg==", + "bundleDependencies": [ + "@balena/dockerignore", + "case", + "fs-extra", + "ignore", + "jsonschema", + "minimatch", + "punycode", + "semver", + "table", + "yaml", + "mime-types" + ], + "dev": true, + "peer": true, + "dependencies": { + "@aws-cdk/asset-awscli-v1": "^2.2.202", + "@aws-cdk/asset-kubectl-v20": "^2.1.2", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.0.3", + "@balena/dockerignore": "^1.0.2", + "case": "1.6.3", + "fs-extra": "^11.2.0", + "ignore": "^5.3.1", + "jsonschema": "^1.4.1", + "mime-types": "^2.1.35", + "minimatch": "^3.1.2", + "punycode": "^2.3.1", + "semver": "^7.6.0", + "table": "^6.8.2", + "yaml": "1.10.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "constructs": "^10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/ajv": { + "version": "8.13.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/aws-cdk-lib/node_modules/case": { + "version": "1.6.3", + "dev": true, + "inBundle": true, + "license": "(MIT OR GPL-3.0-or-later)", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/fs-extra": { + "version": "11.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/aws-cdk-lib/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/ignore": { + "version": "5.3.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/aws-cdk-lib/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/jsonschema": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-db": { + "version": "1.52.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/aws-cdk-lib/node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/semver": { + "version": "7.6.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/aws-cdk-lib/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aws-cdk-lib/node_modules/table": { + "version": "6.8.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true + }, + "node_modules/aws-cdk-lib/node_modules/yaml": { + "version": "1.10.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-generator/node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "dev": true + }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "dev": true, + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "dev": true + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "node_modules/camel-case/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001621", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", + "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/change-case/node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/constructs": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.3.0.tgz", + "integrity": "sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 16.14.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/cross-inspect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", + "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/csv-parse": { + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.6.tgz", + "integrity": "sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==", + "dev": true + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debounce-promise": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/debounce-promise/-/debounce-promise-3.1.2.tgz", + "integrity": "sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dset": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", + "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.779", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.779.tgz", + "integrity": "sha512-oaTiIcszNfySXVJzKcjxd2YjPxziAd+GmXyb2HbidCeFo6Z88ygOT7EimlrEQhM2U08VhSrbKhLOXP0kKUCZ6g==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dev": true, + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "node_modules/fast-xml-parser": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz", + "integrity": "sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==", + "dev": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", + "dev": true, + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^1.0.35" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "dev": true + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==", + "dev": true + }, + "node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-mapping-template": { + "version": "4.20.16", + "resolved": "https://registry.npmjs.org/graphql-mapping-template/-/graphql-mapping-template-4.20.16.tgz", + "integrity": "sha512-J+shdngmnAxBM4mS4ga2RGusbPRMMO/TfRiNuHNKHxEU8O85us9zC6l7kSQ9hkWQDrKISJfDaesNKO3Jo5GerA==", + "dev": true + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/graphql-transformer-common": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/graphql-transformer-common/-/graphql-transformer-common-4.30.1.tgz", + "integrity": "sha512-SPitc4dEtWdyy+xe3FJSsvqw64ScMkl5mBpHK+P/iEMJEp9YE6H+s+9GAcewBhDSTDZibDHE+dT04a91FYN27w==", + "dev": true, + "dependencies": { + "graphql": "^15.5.0", + "graphql-mapping-template": "4.20.16", + "md5": "^2.2.1", + "pluralize": "8.0.0" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/hjson": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/hjson/-/hjson-3.2.2.tgz", + "integrity": "sha512-MkUeB0cTIlppeSsndgESkfFD21T2nXPRaBStLtf3cAYA2bVEFdXlodZB0TukwZiobPD1Ksax5DK4RTZeaXCI3Q==", + "dev": true, + "bin": { + "hjson": "bin/hjson" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true, + "engines": { + "node": ">=12.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflected": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", + "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/knex": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/knex/-/knex-2.4.2.tgz", + "integrity": "sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==", + "dev": true, + "dependencies": { + "colorette": "2.0.19", + "commander": "^9.1.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.5.0", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/mysql2": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz", + "integrity": "sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw==", + "dev": true, + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "dev": true, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dev": true, + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/nanoclone": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", + "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "dev": true, + "engines": { + "node": "^16 || ^18 || >= 20" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", + "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-gitignore": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-2.0.0.tgz", + "integrity": "sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pg": { + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", + "dev": true, + "dependencies": { + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "dev": true, + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==", + "dev": true + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "dev": true, + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==", + "dev": true + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dev": true, + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pg/node_modules/pg-connection-string": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", + "dev": true + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dev": true, + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dev": true, + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/relay-runtime": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", + "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==", + "dev": true + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sponge-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "dev": true + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "dev": true + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-dedent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.2.0.tgz", + "integrity": "sha512-6zSJp23uQI+Txyz5LlXMXAHpUhY4Hi0oluXny0OgIR7g/Cromq4vDBnhtbBdyIV34g0pgwxUvnvg+jLJe4c1NA==", + "dev": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/tsx": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.11.0.tgz", + "integrity": "sha512-vzGGELOgAupsNVssAmZjbUDfdm/pWP4R+Kg8TVdsonxbXk0bEpE1qh0yV6/QxUVXaVlNemgcPajGdJJ82n3stg==", + "dev": true, + "dependencies": { + "esbuild": "~0.20.2", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yup": { + "version": "0.32.11", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", + "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/lodash": "^4.14.175", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/app/package.json b/packages/amplify_core/test/config/amplify_outputs_mapping/app/package.json new file mode 100644 index 0000000000..6edabe5ed0 --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/app/package.json @@ -0,0 +1,23 @@ +{ + "name": "gen2_test_outputs", + "version": "1.0.0", + "description": "Used to generate a config for testing purposes", + "main": "index.js", + "directories": { + "lib": "lib", + "test": "test" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@aws-amplify/backend": "1.0.3", + "@aws-amplify/backend-cli": "1.0.4", + "tsx": "^4.10.5", + "typescript": "^5.4.5" + } + } + \ No newline at end of file diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/data/amplify_outputs.g.dart b/packages/amplify_core/test/config/amplify_outputs_mapping/data/amplify_outputs.g.dart new file mode 100644 index 0000000000..44a8dc24aa --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/data/amplify_outputs.g.dart @@ -0,0 +1,81 @@ +const amplifyConfig = '''{ + "version": "1", + "auth": { + "aws_region": "us-east-1", + "user_pool_id": "fake-user-pool", + "user_pool_client_id": "fake-client-id", + "identity_pool_id": "fake-identity-pool-id", + "password_policy": { + "min_length": 8, + "require_numbers": true, + "require_lowercase": true, + "require_uppercase": true, + "require_symbols": true + }, + "oauth": { + "identity_providers": [ + "GOOGLE", + "FACEBOOK", + "LOGIN_WITH_AMAZON", + "SIGN_IN_WITH_APPLE" + ], + "domain": "fake-domain", + "scopes": [ + "scope-1", + "scope-2" + ], + "redirect_sign_in_uri": [ + "sign-in-redirect-1", + "sign-in-redirect-2" + ], + "redirect_sign_out_uri": [ + "sign-out-redirect-1", + "sign-out-redirect-2" + ], + "response_type": "code" + }, + "standard_required_attributes": [ + "email", + "name" + ], + "username_attributes": [ + "email" + ], + "user_verification_types": [ + "email" + ], + "unauthenticated_identities_enabled": true, + "mfa_configuration": "OPTIONAL", + "mfa_methods": [ + "SMS", + "TOTP" + ] + }, + "data": { + "aws_region": "us-east-1", + "url": "fake-data-url", + "api_key": "fake-data-api-key", + "default_authorization_type": "AWS_IAM", + "authorization_types": [ + "AMAZON_COGNITO_USER_POOLS" + ] + }, + "storage": { + "aws_region": "us-east-1", + "bucket_name": "fake-bucket-name" + }, + "analytics": { + "amazon_pinpoint": { + "app_id": "fake-analytics-app-id", + "aws_region": "us-east-1" + } + }, + "notifications": { + "amazon_pinpoint_app_id": "fake-notifications-app-id", + "aws_region": "us-east-1", + "channels": [ + "APNS", + "FCM" + ] + } +}'''; diff --git a/packages/amplify_core/test/config/amplify_outputs_mapping/data/amplifyconfiguration.g.dart b/packages/amplify_core/test/config/amplify_outputs_mapping/data/amplifyconfiguration.g.dart new file mode 100644 index 0000000000..bd40002a05 --- /dev/null +++ b/packages/amplify_core/test/config/amplify_outputs_mapping/data/amplifyconfiguration.g.dart @@ -0,0 +1,123 @@ +const amplifyConfig = '''{ + "UserAgent": "@aws-amplify/client-config/1.0.4", + "Version": "1.0", + "auth": { + "plugins": { + "awsCognitoAuthPlugin": { + "UserAgent": "@aws-amplify/client-config/1.0.4", + "Version": "1.0", + "CognitoUserPool": { + "Default": { + "PoolId": "fake-user-pool", + "AppClientId": "fake-client-id", + "Region": "us-east-1" + } + }, + "CredentialsProvider": { + "CognitoIdentity": { + "Default": { + "PoolId": "fake-identity-pool-id", + "Region": "us-east-1" + } + } + }, + "Auth": { + "Default": { + "authenticationFlowType": "USER_SRP_AUTH", + "mfaConfiguration": "OPTIONAL", + "mfaTypes": [ + "SMS", + "TOTP" + ], + "passwordProtectionSettings": { + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [ + "REQUIRES_NUMBERS", + "REQUIRES_LOWERCASE", + "REQUIRES_UPPERCASE", + "REQUIRES_SYMBOLS" + ] + }, + "signupAttributes": [ + "EMAIL", + "NAME" + ], + "usernameAttributes": [ + "EMAIL" + ], + "verificationMechanisms": [ + "EMAIL" + ], + "OAuth": { + "WebDomain": "fake-domain", + "Scopes": [ + "scope-1", + "scope-2" + ], + "SignInRedirectURI": "sign-in-redirect-1,sign-in-redirect-2", + "SignOutRedirectURI": "sign-out-redirect-1,sign-out-redirect-2" + } + } + }, + "AppSync": { + "Default": { + "ApiUrl": "fake-data-url", + "Region": "us-east-1", + "AuthMode": "AWS_IAM", + "ApiKey": "fake-data-api-key", + "ClientDatabasePrefix": "data_AWS_IAM" + }, + "data_AMAZON_COGNITO_USER_POOLS": { + "ApiUrl": "fake-data-url", + "Region": "us-east-1", + "AuthMode": "AMAZON_COGNITO_USER_POOLS", + "ApiKey": "fake-data-api-key", + "ClientDatabasePrefix": "data_AMAZON_COGNITO_USER_POOLS" + } + } + } + } + }, + "api": { + "plugins": { + "awsAPIPlugin": { + "data": { + "endpointType": "GraphQL", + "endpoint": "fake-data-url", + "region": "us-east-1", + "authorizationType": "AWS_IAM", + "apiKey": "fake-data-api-key" + } + } + } + }, + "analytics": { + "plugins": { + "awsPinpointAnalyticsPlugin": { + "pinpointAnalytics": { + "region": "us-east-1", + "appId": "fake-analytics-app-id" + }, + "pinpointTargeting": { + "region": "us-east-1" + } + } + } + }, + "notifications": { + "plugins": { + "awsPinpointPushNotificationsPlugin": { + "appId": "fake-notifications-app-id", + "region": "us-east-1" + } + } + }, + "storage": { + "plugins": { + "awsS3StoragePlugin": { + "bucket": "fake-bucket-name", + "region": "us-east-1" + } + } + } +}'''; diff --git a/packages/amplify_core/test/plugin/auth_providers_test.dart b/packages/amplify_core/test/plugin/auth_providers_test.dart index 160576d77b..1856d9532d 100644 --- a/packages/amplify_core/test/plugin/auth_providers_test.dart +++ b/packages/amplify_core/test/plugin/auth_providers_test.dart @@ -42,7 +42,7 @@ class AuthPlugin extends Fake implements AuthPluginInterface { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { _authProvider = authProviderRepo.getAuthProvider( @@ -72,7 +72,7 @@ class ApiPlugin extends Fake implements APIPluginInterface { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { _authProvider = authProviderRepo.getAuthProvider( @@ -83,7 +83,7 @@ class ApiPlugin extends Fake implements APIPluginInterface { void main() { group('AuthProviderRepository', () { - test('allows plugin interdependenices', () async { + test('allows plugin interdependencies', () async { final apiPlugin = ApiPlugin(); final authPlugin = AuthPlugin(); diff --git a/packages/amplify_datastore/CHANGELOG.md b/packages/amplify_datastore/CHANGELOG.md index d5404a83c2..2383a2e047 100644 --- a/packages/amplify_datastore/CHANGELOG.md +++ b/packages/amplify_datastore/CHANGELOG.md @@ -1,3 +1,8 @@ +## 2.2.0 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 ### Features diff --git a/packages/amplify_datastore/android/build.gradle b/packages/amplify_datastore/android/build.gradle index 9a01bcbea2..e52ed5e0ef 100644 --- a/packages/amplify_datastore/android/build.gradle +++ b/packages/amplify_datastore/android/build.gradle @@ -73,10 +73,10 @@ android { } dependencies { - implementation 'com.amplifyframework:aws-auth-cognito:2.15.0' - implementation "com.amplifyframework:aws-api:2.15.0" - implementation "com.amplifyframework:aws-datastore:2.15.0" - implementation "com.amplifyframework:aws-api-appsync:2.15.0" + implementation 'com.amplifyframework:aws-auth-cognito:2.19.1' + implementation "com.amplifyframework:aws-api:2.19.1" + implementation "com.amplifyframework:aws-datastore:2.19.1" + implementation "com.amplifyframework:aws-api-appsync:2.19.1" implementation 'com.google.code.gson:gson:2.10.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1' diff --git a/packages/amplify_datastore/android/src/main/kotlin/com/amazonaws/amplify/amplify_datastore/AmplifyDataStorePlugin.kt b/packages/amplify_datastore/android/src/main/kotlin/com/amazonaws/amplify/amplify_datastore/AmplifyDataStorePlugin.kt index c1c7ece49e..803a4f764c 100644 --- a/packages/amplify_datastore/android/src/main/kotlin/com/amazonaws/amplify/amplify_datastore/AmplifyDataStorePlugin.kt +++ b/packages/amplify_datastore/android/src/main/kotlin/com/amazonaws/amplify/amplify_datastore/AmplifyDataStorePlugin.kt @@ -31,6 +31,7 @@ import com.amazonaws.amplify.amplify_datastore.util.cast import com.amazonaws.amplify.amplify_datastore.util.safeCastToList import com.amazonaws.amplify.amplify_datastore.util.safeCastToMap import com.amplifyframework.AmplifyException +import com.amplifyframework.annotations.AmplifyFlutterApi import com.amplifyframework.api.aws.AWSApiPlugin import com.amplifyframework.api.aws.AuthModeStrategyType import com.amplifyframework.api.aws.AuthorizationType @@ -38,6 +39,7 @@ import com.amplifyframework.auth.AuthUser import com.amplifyframework.core.Amplify import com.amplifyframework.core.AmplifyConfiguration import com.amplifyframework.core.async.Cancelable +import com.amplifyframework.core.configuration.AmplifyOutputs import com.amplifyframework.core.model.CustomTypeSchema import com.amplifyframework.core.model.Model import com.amplifyframework.core.model.ModelSchema @@ -937,11 +939,9 @@ class AmplifyDataStorePlugin : ) { coroutineScope.launch(dispatcher) { try { - val configuration = AmplifyConfiguration.builder(JSONObject(config)) - .addPlatform(UserAgent.Platform.FLUTTER, "$version /datastore") - .devMenuEnabled(false) - .build() - Amplify.configure(configuration, context) + @OptIn(AmplifyFlutterApi::class) + Amplify.addUserAgentPlatform(UserAgent.Platform.FLUTTER, "$version /datastore") + Amplify.configure(AmplifyOutputs(config), context) withContext(Dispatchers.Main) { callback(kotlin.Result.success(Unit)) } diff --git a/packages/amplify_datastore/example/.gitignore b/packages/amplify_datastore/example/.gitignore index 5162ae8e82..293d3f5a68 100644 --- a/packages/amplify_datastore/example/.gitignore +++ b/packages/amplify_datastore/example/.gitignore @@ -64,3 +64,5 @@ amplifytools.xcconfig .secret-* **.sample #amplify-do-not-edit-end + +amplify_outputs.dart diff --git a/packages/amplify_datastore/example/lib/models/CustomTypeWithAppsyncScalarTypes.dart b/packages/amplify_datastore/example/lib/models/CustomTypeWithAppsyncScalarTypes.dart index 8d110d6129..bdf0530756 100644 --- a/packages/amplify_datastore/example/lib/models/CustomTypeWithAppsyncScalarTypes.dart +++ b/packages/amplify_datastore/example/lib/models/CustomTypeWithAppsyncScalarTypes.dart @@ -19,10 +19,11 @@ // ignore_for_file: public_member_api_docs, annotate_overrides, dead_code, dead_codepublic_member_api_docs, depend_on_referenced_packages, file_names, library_private_types_in_public_api, no_leading_underscores_for_library_prefixes, no_leading_underscores_for_local_identifiers, non_constant_identifier_names, null_check_on_nullable_type_parameter, override_on_non_overriding_member, prefer_adjacent_string_concatenation, prefer_const_constructors, prefer_if_null_operators, prefer_interpolation_to_compose_strings, slash_for_doc_comments, sort_child_properties_last, unnecessary_const, unnecessary_constructor_name, unnecessary_late, unnecessary_new, unnecessary_null_aware_assignments, unnecessary_nullable_for_final_variable_declarations, unnecessary_string_interpolations, use_build_context_synchronously -import 'ModelProvider.dart'; import 'package:amplify_core/amplify_core.dart' as amplify_core; import 'package:collection/collection.dart'; +import 'ModelProvider.dart'; + /** This is an auto generated class representing the CustomTypeWithAppsyncScalarTypes type in your schema. */ class CustomTypeWithAppsyncScalarTypes { final String? _stringValue; @@ -738,14 +739,17 @@ class CustomTypeWithAppsyncScalarTypes { .toList() : null, _customTypeValue = json['customTypeValue'] != null - ? SimpleCustomType.fromJson( - new Map.from(json['customTypeValue'])) + ? json['customTypeValue']['serializedData'] != null + ? SimpleCustomType.fromJson(new Map.from( + json['customTypeValue']['serializedData'])) + : SimpleCustomType.fromJson( + new Map.from(json['customTypeValue'])) : null, _listOfCustomTypeValue = json['listOfCustomTypeValue'] is List ? (json['listOfCustomTypeValue'] as List) .where((e) => e != null) - .map((e) => - SimpleCustomType.fromJson(new Map.from(e))) + .map((e) => SimpleCustomType.fromJson( + new Map.from(e['serializedData'] ?? e))) .toList() : null; diff --git a/packages/amplify_datastore/example/lib/models/ModelWithCustomType.dart b/packages/amplify_datastore/example/lib/models/ModelWithCustomType.dart index 4013a30b5d..5cf1c363f7 100644 --- a/packages/amplify_datastore/example/lib/models/ModelWithCustomType.dart +++ b/packages/amplify_datastore/example/lib/models/ModelWithCustomType.dart @@ -19,10 +19,11 @@ // ignore_for_file: public_member_api_docs, annotate_overrides, dead_code, dead_codepublic_member_api_docs, depend_on_referenced_packages, file_names, library_private_types_in_public_api, no_leading_underscores_for_library_prefixes, no_leading_underscores_for_local_identifiers, non_constant_identifier_names, null_check_on_nullable_type_parameter, override_on_non_overriding_member, prefer_adjacent_string_concatenation, prefer_const_constructors, prefer_if_null_operators, prefer_interpolation_to_compose_strings, slash_for_doc_comments, sort_child_properties_last, unnecessary_const, unnecessary_constructor_name, unnecessary_late, unnecessary_new, unnecessary_null_aware_assignments, unnecessary_nullable_for_final_variable_declarations, unnecessary_string_interpolations, use_build_context_synchronously -import 'ModelProvider.dart'; import 'package:amplify_core/amplify_core.dart' as amplify_core; import 'package:collection/collection.dart'; +import 'ModelProvider.dart'; + /** This is an auto generated class representing the ModelWithCustomType type in your schema. */ class ModelWithCustomType extends amplify_core.Model { static const classType = const _ModelWithCustomTypeModelType(); @@ -152,14 +153,18 @@ class ModelWithCustomType extends amplify_core.Model { ModelWithCustomType.fromJson(Map json) : id = json['id'], _customTypeValue = json['customTypeValue'] != null - ? CustomTypeWithAppsyncScalarTypes.fromJson( - new Map.from(json['customTypeValue'])) + ? json['customTypeValue']['serializedData'] != null + ? CustomTypeWithAppsyncScalarTypes.fromJson( + new Map.from( + json['customTypeValue']['serializedData'])) + : CustomTypeWithAppsyncScalarTypes.fromJson( + new Map.from(json['customTypeValue'])) : null, _listOfCustomTypeValue = json['listOfCustomTypeValue'] is List ? (json['listOfCustomTypeValue'] as List) .where((e) => e != null) .map((e) => CustomTypeWithAppsyncScalarTypes.fromJson( - new Map.from(e))) + new Map.from(e['serializedData'] ?? e))) .toList() : null, _createdAt = json['createdAt'] != null diff --git a/packages/amplify_datastore/ios/Classes/SwiftAmplifyDataStorePlugin.swift b/packages/amplify_datastore/ios/Classes/SwiftAmplifyDataStorePlugin.swift index 681c679068..7e780985df 100644 --- a/packages/amplify_datastore/ios/Classes/SwiftAmplifyDataStorePlugin.swift +++ b/packages/amplify_datastore/ios/Classes/SwiftAmplifyDataStorePlugin.swift @@ -145,11 +145,9 @@ public class SwiftAmplifyDataStorePlugin: NSObject, FlutterPlugin, NativeAmplify nil ) } - let amplifyConfiguration = try JSONDecoder().decode(AmplifyConfiguration.self, - from: data) // TODO: Migrate to Async Swift v2 // AmplifyAWSServiceConfiguration.addUserAgentPlatform(.flutter, version: "\(version) /datastore") - try Amplify.configure(amplifyConfiguration) + try Amplify.configure(with : .data(data)) return completion(.success(())) } catch let error as ConfigurationError { switch error { diff --git a/packages/amplify_datastore/lib/amplify_datastore.dart b/packages/amplify_datastore/lib/amplify_datastore.dart index 685165c76a..bf3f424961 100644 --- a/packages/amplify_datastore/lib/amplify_datastore.dart +++ b/packages/amplify_datastore/lib/amplify_datastore.dart @@ -50,7 +50,7 @@ class AmplifyDataStore extends DataStorePluginInterface @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { if (config == null) { @@ -100,17 +100,15 @@ class AmplifyDataStore extends DataStorePluginInterface } final apiPlugin = Amplify.API.plugins.firstOrNull; - final gqlConfig = config.api?.awsPlugin?.all.values.firstWhereOrNull( - (config) => config.endpointType == EndpointType.graphQL, - ); + final gqlConfig = config.data; if (apiPlugin != null && gqlConfig != null) { // ignore: invalid_use_of_protected_member final authProviders = apiPlugin.authProviders; Map endpoints = {}; - config.api?.awsPlugin?.all.entries.forEach((e) { - endpoints[e.key] = e.value.authorizationType.name; + gqlConfig.entries.forEach((e) { + endpoints[e.key] = e.value.defaultAuthorizationType.name; }); - final nativePlugin = _NativeAmplifyApi(authProviders); + final nativePlugin = NativeAmplifyApi(authProviders); NativeApiPlugin.setup(nativePlugin); final nativeBridge = NativeApiBridge(); @@ -292,10 +290,11 @@ class _NativeAmplifyAuthCognito String get runtimeTypeName => '_NativeAmplifyAuthCognito'; } -class _NativeAmplifyApi +@visibleForTesting +class NativeAmplifyApi with AWSDebuggable, AmplifyLoggerMixin implements NativeApiPlugin { - _NativeAmplifyApi(this._authProviders); + NativeAmplifyApi(this._authProviders); /// The registered [APIAuthProvider] instances. final Map, APIAuthProvider> @@ -305,7 +304,7 @@ class _NativeAmplifyApi _subscriptionsCache = {}; @override - String get runtimeTypeName => '_NativeAmplifyApi'; + String get runtimeTypeName => 'NativeAmplifyApi'; @override Future getLatestAuthToken(String providerName) { diff --git a/packages/amplify_datastore/pubspec.yaml b/packages/amplify_datastore/pubspec.yaml index 009cb6f7b2..853f30e5d3 100644 --- a/packages/amplify_datastore/pubspec.yaml +++ b/packages/amplify_datastore/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_datastore description: The Amplify Flutter DataStore category plugin, providing a queryable, on-device data store. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify_datastore issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -12,8 +12,8 @@ environment: dependencies: flutter: sdk: flutter - amplify_datastore_plugin_interface: ">=2.1.0 <2.2.0" - amplify_core: ">=2.1.0 <2.2.0" + amplify_datastore_plugin_interface: ">=2.2.0 <2.3.0" + amplify_core: ">=2.2.0 <2.3.0" plugin_platform_interface: ^2.0.0 meta: ^1.7.0 collection: ^1.14.13 diff --git a/packages/amplify_datastore/test/native_amplify_api_test.dart b/packages/amplify_datastore/test/native_amplify_api_test.dart new file mode 100644 index 0000000000..20d5844468 --- /dev/null +++ b/packages/amplify_datastore/test/native_amplify_api_test.dart @@ -0,0 +1,993 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import 'dart:async'; + +import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_datastore/amplify_datastore.dart'; +import 'package:amplify_datastore/src/native_plugin.g.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() async { + TestWidgetsFlutterBinding binding = + TestWidgetsFlutterBinding.ensureInitialized(); + + BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.amplify_datastore.NativeApiBridge.sendSubscriptionEvent', + MockNativeAuthBridgeCodec(), + ); + + MockAPIPlugin mockAPIPlugin = MockAPIPlugin(); + + setUp(() async { + mockAPIPlugin.clear(); + + await Amplify.API.addPlugin( + mockAPIPlugin, + authProviderRepo: AmplifyAuthProviderRepository(), + ); + + binding.defaultBinaryMessenger.setMockDecodedMessageHandler( + channel, + null, + ); + }); + + tearDown(() async { + await Amplify.reset(); + }); + + group('NativeAmplifyAPI', () { + group('Query', () { + test('Should handle empty request/response', () async { + String document = ''; + Map emptyMap = {}; + String payloadJson = '{"data":{},"errors":[]}'; + + mockAPIPlugin.queryMethod = (GraphQLRequest mockRequest) { + expect(mockRequest.document, document); + expect(mockRequest.variables, emptyMap); + expect(mockRequest.apiName, null); + expect(mockRequest.authorizationMode, null); + expect(mockRequest.headers, null); + expect(mockRequest.decodePath, null); + expect(mockRequest.modelType, null); + + return GraphQLOperation( + CancelableOperation>.fromValue( + GraphQLResponse( + data: null as T?, + errors: [], + ), + ), + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest(document: ''); + NativeGraphQLResponse response = await nativeAmplifyApi.query(request); + + expect(response.payloadJson, payloadJson); + }); + + test('Should handle filled request/response', () async { + String document = 'document'; + String apiName = 'apiName'; + String variable1Key = 'variable1'; + int variable1Value = 1; + String variable2Key = 'variable2'; + String variable2Value = 'test string'; + String variablesJson = + '{"$variable1Key": $variable1Value, "$variable2Key": "$variable2Value"}'; + String responseType = 'responseType'; + String decodePath = 'decodePath'; + String options = 'options'; + String data = '{"data1":1,"data2":"data string"}'; + String errorMessage1 = 'errorsJson1'; + String errorMessage2 = 'errorsJson2'; + String payloadJson = + '{"data":$data,"errors":[{"message":"$errorMessage1"},{"message":"$errorMessage2"}]}'; + String authMode = 'apiKey'; + + mockAPIPlugin.queryMethod = (GraphQLRequest mockRequest) { + expect(mockRequest.id.length, greaterThan(0)); + expect(mockRequest.document, document); + expect(mockRequest.variables[variable1Key], variable1Value); + expect(mockRequest.variables[variable2Key], variable2Value); + expect(mockRequest.apiName, apiName); + expect(mockRequest.authorizationMode, APIAuthorizationType.apiKey); + expect(mockRequest.headers, null); + expect(mockRequest.decodePath, null); + expect(mockRequest.modelType, null); + + return GraphQLOperation( + CancelableOperation>.fromValue( + GraphQLResponse( + data: data as T?, + errors: [ + GraphQLResponseError(message: errorMessage1), + GraphQLResponseError(message: errorMessage2), + ], + ), + ), + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: document, + apiName: apiName, + variablesJson: variablesJson, + responseType: responseType, + decodePath: decodePath, + options: options, + authMode: authMode); + NativeGraphQLResponse response = await nativeAmplifyApi.query(request); + + expect(response.payloadJson, payloadJson); + }); + + test('Should handle empty response parse exception', () async { + String document = ''; + String data = 'Invalid Json'; + Map emptyMap = {}; + String payloadJson = + '{"data":{},"errors":[{"message":"Error parsing payload json: FormatException: Unexpected character (at character 1)\\nInvalid Json\\n^\\n"}]}'; + + mockAPIPlugin.queryMethod = (GraphQLRequest mockRequest) { + expect(mockRequest.document, document); + expect(mockRequest.variables, emptyMap); + expect(mockRequest.apiName, null); + expect(mockRequest.authorizationMode, null); + expect(mockRequest.headers, null); + expect(mockRequest.decodePath, null); + expect(mockRequest.modelType, null); + + return GraphQLOperation( + CancelableOperation>.fromValue( + GraphQLResponse( + data: data as T?, + errors: [], + ), + ), + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest(document: ''); + NativeGraphQLResponse response = await nativeAmplifyApi.query(request); + + expect(response.payloadJson, payloadJson); + }); + + Future _authModeExpectHelepr( + String? authMode, + APIAuthorizationType? expected, + ) async { + mockAPIPlugin.queryMethod = (GraphQLRequest mockRequest) { + expect(mockRequest.authorizationMode, expected); + + return GraphQLOperation( + CancelableOperation>.fromValue( + GraphQLResponse( + data: null as T?, + errors: [], + ), + ), + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + await nativeAmplifyApi.query( + NativeGraphQLRequest( + document: '', + authMode: authMode, + ), + ); + } + + test('Should handle all AuthModeTypes', () async { + await _authModeExpectHelepr('apiKey', APIAuthorizationType.apiKey); + await _authModeExpectHelepr('awsIAM', APIAuthorizationType.iam); + await _authModeExpectHelepr('openIDConnect', APIAuthorizationType.oidc); + await _authModeExpectHelepr( + 'amazonCognitoUserPools', APIAuthorizationType.userPools); + await _authModeExpectHelepr('function', APIAuthorizationType.function); + await _authModeExpectHelepr('none', APIAuthorizationType.none); + await _authModeExpectHelepr(null, null); + }); + + test('Should handle non-AmplifyException exceptions', () async { + String document = ''; + String invalidJson = 'INVALID JSON'; + String payloadJson = + '{"errors":[{"message":"FormatException: Unexpected character (at character 1)\\nINVALID JSON\\n^\\n"}]}'; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: document, + variablesJson: invalidJson, + ); + + NativeGraphQLResponse response = await nativeAmplifyApi.query(request); + expect(response.payloadJson, payloadJson); + }); + + test('Should handle AmplifyException', () async { + String exceptionMessage = 'API Exception'; + String payloadJson = + '{"errors":[{"message":"NetworkException {\\n \\"message\\": \\"API Exception\\"\\n}"}]}'; + + mockAPIPlugin.queryMethod = (GraphQLRequest mockRequest) { + throw NetworkException(exceptionMessage); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: '', + ); + + NativeGraphQLResponse response = await nativeAmplifyApi.query(request); + expect(response.payloadJson, payloadJson); + }); + + test('Should handle unauthorized AmplifyException - SignedOutException', + () async { + String exceptionMessage = 'API Exception'; + String payloadJson = + '{"errors":[{"message":"Unauthorized - API Exception - SignedOutException"}]}'; + + mockAPIPlugin.queryMethod = (GraphQLRequest mockRequest) { + throw NetworkException( + exceptionMessage, + underlyingException: 'SignedOutException', + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: '', + ); + + NativeGraphQLResponse response = await nativeAmplifyApi.query(request); + expect(response.payloadJson, payloadJson); + }); + + test('Should handle unauthorized AmplifyException - Unauthrorized', + () async { + String exceptionMessage = + 'Not Authorized to access onDeletePrivateNote on type Subscription'; + String payloadJson = + '{"errors":[{"message":"NetworkException {\\n \\"message\\": \\"$exceptionMessage\\",\\n \\"underlyingException\\": \\"Unauthrorized\\"\\n}"}]}'; + + mockAPIPlugin.queryMethod = (GraphQLRequest mockRequest) { + throw NetworkException( + exceptionMessage, + underlyingException: 'Unauthrorized', + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: '', + ); + + NativeGraphQLResponse response = await nativeAmplifyApi.query(request); + expect(response.payloadJson, payloadJson); + }); + }); + + group('Mutate', () { + test('Should handle empty request/response', () async { + String document = ''; + Map emptyMap = {}; + String payloadJson = '{"data":{},"errors":[]}'; + + mockAPIPlugin.mutateMethod = (GraphQLRequest mockRequest) { + expect(mockRequest.document, document); + expect(mockRequest.variables, emptyMap); + expect(mockRequest.apiName, null); + expect(mockRequest.authorizationMode, null); + expect(mockRequest.headers, null); + expect(mockRequest.decodePath, null); + expect(mockRequest.modelType, null); + + return GraphQLOperation( + CancelableOperation>.fromValue( + GraphQLResponse( + data: null as T?, + errors: [], + ), + ), + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest(document: document); + NativeGraphQLResponse response = await nativeAmplifyApi.mutate(request); + + expect(response.payloadJson, payloadJson); + }); + + test('Should handle filled request/response', () async { + String document = 'document'; + String apiName = 'apiName'; + String authMode = 'apiKey'; + String variable1Key = 'variable1'; + int variable1Value = 1; + String variable2Key = 'variable2'; + String variable2Value = 'test string'; + String variablesJson = + '{"$variable1Key": $variable1Value, "$variable2Key": "$variable2Value"}'; + String responseType = 'responseType'; + String decodePath = 'decodePath'; + String options = 'options'; + String data = '{"data1":1,"data2":"data string"}'; + String errorMessage1 = 'errorsJson1'; + String errorMessage2 = 'errorsJson2'; + String payloadJson = + '{"data":$data,"errors":[{"message":"$errorMessage1"},{"message":"$errorMessage2"}]}'; + + mockAPIPlugin.mutateMethod = (GraphQLRequest mockRequest) { + expect(mockRequest.id.length, greaterThan(0)); + expect(mockRequest.document, document); + expect(mockRequest.variables[variable1Key], variable1Value); + expect(mockRequest.variables[variable2Key], variable2Value); + expect(mockRequest.apiName, apiName); + expect(mockRequest.authorizationMode, APIAuthorizationType.apiKey); + expect(mockRequest.headers, null); + expect(mockRequest.decodePath, null); + expect(mockRequest.modelType, null); + + return GraphQLOperation( + CancelableOperation>.fromValue( + GraphQLResponse( + data: data as T?, + errors: [ + GraphQLResponseError(message: errorMessage1), + GraphQLResponseError(message: errorMessage2), + ], + ), + ), + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: document, + apiName: apiName, + authMode: authMode, + variablesJson: variablesJson, + responseType: responseType, + decodePath: decodePath, + options: options, + ); + NativeGraphQLResponse response = await nativeAmplifyApi.mutate(request); + + expect(response.payloadJson, payloadJson); + }); + + test('Should handle empty response parse exception', () async { + String document = ''; + String data = 'Invalid Json'; + Map emptyMap = {}; + String payloadJson = + '{"data":{},"errors":[{"message":"Error parsing payload json: FormatException: Unexpected character (at character 1)\\nInvalid Json\\n^\\n"}]}'; + + mockAPIPlugin.mutateMethod = (GraphQLRequest mockRequest) { + expect(mockRequest.document, document); + expect(mockRequest.variables, emptyMap); + expect(mockRequest.apiName, null); + expect(mockRequest.authorizationMode, null); + expect(mockRequest.headers, null); + expect(mockRequest.decodePath, null); + expect(mockRequest.modelType, null); + + return GraphQLOperation( + CancelableOperation>.fromValue( + GraphQLResponse( + data: data as T?, + errors: [], + ), + ), + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest(document: ''); + NativeGraphQLResponse response = await nativeAmplifyApi.mutate(request); + + expect(response.payloadJson, payloadJson); + }); + + test('Should handle AmplifyException', () async { + String exceptionMessage = 'API Exception'; + String payloadJson = + '{"errors":[{"message":"NetworkException {\\n \\"message\\": \\"API Exception\\"\\n}"}]}'; + + mockAPIPlugin.mutateMethod = (GraphQLRequest mockRequest) { + throw NetworkException(exceptionMessage); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: '', + ); + + NativeGraphQLResponse response = await nativeAmplifyApi.mutate(request); + expect(response.payloadJson, payloadJson); + }); + + test('Should handle unauthorized AmplifyException - SignedOutException', + () async { + String exceptionMessage = 'API Exception'; + String payloadJson = + '{"errors":[{"message":"Unauthorized - API Exception - SignedOutException"}]}'; + + mockAPIPlugin.mutateMethod = (GraphQLRequest mockRequest) { + throw NetworkException( + exceptionMessage, + underlyingException: 'SignedOutException', + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: '', + ); + + NativeGraphQLResponse response = await nativeAmplifyApi.mutate(request); + expect(response.payloadJson, payloadJson); + }); + + test('Should handle unauthorized AmplifyException - Unauthrorized', + () async { + String exceptionMessage = + 'Not Authorized to access onDeletePrivateNote on type Subscription'; + String payloadJson = + '{"errors":[{"message":"NetworkException {\\n \\"message\\": \\"$exceptionMessage\\",\\n \\"underlyingException\\": \\"Unauthrorized\\"\\n}"}]}'; + + mockAPIPlugin.mutateMethod = (GraphQLRequest mockRequest) { + throw NetworkException( + exceptionMessage, + underlyingException: 'Unauthrorized', + ); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: '', + ); + + NativeGraphQLResponse response = await nativeAmplifyApi.mutate(request); + expect(response.payloadJson, payloadJson); + }); + }); + + group('Subscribe', () { + test('Should handle empty request/response', () async { + String responseType = 'connecting'; + String document = ''; + Map emptyMap = {}; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + expect(mockRequest.document, document); + expect(mockRequest.variables, emptyMap); + expect(mockRequest.apiName, null); + expect(mockRequest.authorizationMode, null); + expect(mockRequest.headers, null); + expect(mockRequest.decodePath, null); + expect(mockRequest.modelType, null); + + var controller = StreamController>(); + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest(document: document); + NativeGraphQLSubscriptionResponse response = + await nativeAmplifyApi.subscribe(request); + + expect(response.payloadJson, null); + expect(response.subscriptionId.length, greaterThan(0)); + expect(response.type, responseType); + }); + + test('Should handle filled request/response', () async { + String responseType = 'connecting'; + String document = 'document'; + String apiName = 'apiName'; + String authMode = 'apiKey'; + String variable1Key = 'variable1'; + int variable1Value = 1; + String variable2Key = 'variable2'; + String variable2Value = 'test string'; + String variablesJson = + '{"$variable1Key": $variable1Value, "$variable2Key": "$variable2Value"}'; + String decodePath = 'decodePath'; + String options = 'options'; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + expect(mockRequest.id.length, greaterThan(0)); + expect(mockRequest.document, document); + expect(mockRequest.variables[variable1Key], variable1Value); + expect(mockRequest.variables[variable2Key], variable2Value); + expect(mockRequest.apiName, apiName); + expect(mockRequest.authorizationMode, APIAuthorizationType.apiKey); + expect(mockRequest.headers, null); + expect(mockRequest.decodePath, null); + expect(mockRequest.modelType, null); + + var controller = StreamController>(); + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: document, + apiName: apiName, + authMode: authMode, + variablesJson: variablesJson, + responseType: responseType, + decodePath: decodePath, + options: options, + ); + NativeGraphQLSubscriptionResponse response = + await nativeAmplifyApi.subscribe(request); + + expect(response.payloadJson, null); + expect(response.subscriptionId.length, greaterThan(0)); + expect(response.type, responseType); + }); + + test('Should handle invalid Request variablesJson exception', () async { + String document = ''; + String invalidJson = 'INVALID JSON'; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: document, + variablesJson: invalidJson, + ); + + expect(() async => await nativeAmplifyApi.subscribe(request), + throwsA(TypeMatcher())); + }); + + test('Should handle API exception', () async { + String exceptionMessage = 'API Exception'; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + throw NetworkException(exceptionMessage); + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: '', + ); + + expect( + () async => await nativeAmplifyApi.subscribe(request), + throwsA( + predicate( + (e) => e is NetworkException && e.message == 'API Exception'), + ), + ); + }); + + test('Should handle established/connected callback', () async { + void Function()? onEstablishedCallback; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + onEstablishedCallback = onEstablished; + var controller = StreamController>(); + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + NativeGraphQLRequest request = NativeGraphQLRequest( + document: '', + ); + + await nativeAmplifyApi.subscribe(request); + + binding.defaultBinaryMessenger.setMockDecodedMessageHandler( + channel, + (Object? message) { + expect(message, isA()); + List responses = message as List; + + expect(responses.length, greaterThan(0)); + expect(responses[0], isA()); + NativeGraphQLSubscriptionResponse response = responses[0]; + + expect(response.payloadJson, null); + expect(response.subscriptionId.length, greaterThan(0)); + expect(response.type, 'start_ack'); + + return Future.value(message); + }, + ); + + expect(onEstablishedCallback, isNotNull); + expect(() => onEstablishedCallback?.call(), returnsNormally); + }); + + test('Should handle send data event', () async { + String data = '{"data1":1,"data2":"data string"}'; + String payloadJson = '{"data":$data,"errors":[]}'; + StreamController? responseController; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + var controller = StreamController>(); + responseController = controller; + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + await nativeAmplifyApi.subscribe( + NativeGraphQLRequest(document: ''), + ); + + binding.defaultBinaryMessenger.setMockDecodedMessageHandler( + channel, + (Object? message) { + expect(message, isA()); + List responses = message as List; + + expect(responses.length, greaterThan(0)); + expect(responses[0], isA()); + NativeGraphQLSubscriptionResponse response = responses[0]; + + expect(response.payloadJson, payloadJson); + expect(response.subscriptionId.length, greaterThan(0)); + expect(response.type, 'data'); + + return Future.value(message); + }, + ); + + expect(responseController, isNotNull); + expect( + () => responseController?.add( + GraphQLResponse( + data: data, + errors: [], + ), + ), + returnsNormally, + ); + }); + + test('Should handle send data with errors event', () async { + String data = '{"data1":1,"data2":"data string"}'; + String errorMessage1 = 'errorsJson1'; + String errorMessage2 = 'errorsJson2'; + String payloadJson = + '{"data":$data,"errors":[{"message":"$errorMessage1"},{"message":"$errorMessage2"}]}'; + + StreamController? responseController; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + var controller = StreamController>(); + responseController = controller; + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + await nativeAmplifyApi.subscribe( + NativeGraphQLRequest(document: ''), + ); + + binding.defaultBinaryMessenger.setMockDecodedMessageHandler( + channel, + (Object? message) { + expect(message, isA()); + List responses = message as List; + + expect(responses.length, greaterThan(0)); + expect(responses[0], isA()); + NativeGraphQLSubscriptionResponse response = responses[0]; + + expect(response.payloadJson, payloadJson); + expect(response.subscriptionId.length, greaterThan(0)); + expect(response.type, 'error'); + + return Future.value(message); + }, + ); + + expect(responseController, isNotNull); + expect( + () => responseController?.add( + GraphQLResponse( + data: data, + errors: [ + GraphQLResponseError(message: errorMessage1), + GraphQLResponseError(message: errorMessage2), + ], + ), + ), + returnsNormally, + ); + }); + + test('Should handle send data event exception', () async { + String data = 'Invalid Json'; + String payloadJson = + '{"data":{},"errors":[{"message":"Error parsing payload json: FormatException: Unexpected character (at character 1)\\nInvalid Json\\n^\\n"}]}'; + StreamController? responseController; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + var controller = StreamController>(); + responseController = controller; + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + await nativeAmplifyApi.subscribe( + NativeGraphQLRequest(document: ''), + ); + + binding.defaultBinaryMessenger.setMockDecodedMessageHandler( + channel, + (Object? message) { + expect(message, isA()); + List responses = message as List; + + expect(responses.length, greaterThan(0)); + expect(responses[0], isA()); + NativeGraphQLSubscriptionResponse response = responses[0]; + + expect(response.payloadJson, payloadJson); + expect(response.subscriptionId.length, greaterThan(0)); + expect(response.type, 'error'); + + return Future.value(message); + }, + ); + + expect(responseController, isNotNull); + expect( + () => responseController?.add( + GraphQLResponse( + data: data, + errors: [], + ), + ), + returnsNormally, + ); + }); + + test('Should handle send error event', () async { + String exceptionMessage = 'Intentional Error'; + String errorsJson = + '{"errors":[{"message":"Exception: $exceptionMessage"}]}'; + + StreamController? responseController; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + var controller = StreamController>(); + responseController = controller; + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + await nativeAmplifyApi.subscribe( + NativeGraphQLRequest(document: ''), + ); + + binding.defaultBinaryMessenger.setMockDecodedMessageHandler( + channel, + (Object? message) { + expect(message, isA()); + List responses = message as List; + + expect(responses.length, greaterThan(0)); + expect(responses[0], isA()); + NativeGraphQLSubscriptionResponse response = responses[0]; + + expect(response.payloadJson, errorsJson); + expect(response.subscriptionId.length, greaterThan(0)); + expect(response.type, 'error'); + + return Future.value(message); + }, + ); + + expect(responseController, isNotNull); + expect( + () => responseController?.addError(Exception(exceptionMessage)), + returnsNormally, + ); + }); + + test('Should handle send done event', () async { + StreamController? responseController; + + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + var controller = StreamController>(); + responseController = controller; + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + await nativeAmplifyApi.subscribe( + NativeGraphQLRequest(document: ''), + ); + + binding.defaultBinaryMessenger.setMockDecodedMessageHandler( + channel, + (Object? message) { + expect(message, isA()); + List responses = message as List; + + expect(responses.length, greaterThan(0)); + expect(responses[0], isA()); + NativeGraphQLSubscriptionResponse response = responses[0]; + + expect(response.payloadJson, null); + expect(response.subscriptionId.length, greaterThan(0)); + expect(response.type, 'complete'); + + return Future.value(message); + }, + ); + + expect(responseController, isNotNull); + expect( + () => responseController?.close(), + returnsNormally, + ); + }); + + group('Unubscribe', () { + test('Should handle existing subscription', () async { + mockAPIPlugin.subscribeMethod = ( + GraphQLRequest mockRequest, + void Function()? onEstablished, + ) { + var controller = StreamController>(); + return controller.stream; + }; + + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + var response = await nativeAmplifyApi.subscribe( + NativeGraphQLRequest( + document: '', + ), + ); + + await nativeAmplifyApi.unsubscribe(response.subscriptionId); + + expect( + () async => + await nativeAmplifyApi.unsubscribe(response.subscriptionId), + returnsNormally, + ); + }); + + test('Should handle non-existing subscriptions', () async { + NativeAmplifyApi nativeAmplifyApi = NativeAmplifyApi({}); + + expect( + () async => + await nativeAmplifyApi.unsubscribe('Fake Subscription ID'), + returnsNormally, + ); + }); + }); + }); + }); +} + +class MockAPIPlugin extends APIPluginInterface { + GraphQLOperation Function(GraphQLRequest)? queryMethod; + GraphQLOperation Function(GraphQLRequest)? mutateMethod; + Stream> Function(GraphQLRequest, void Function()?)? + subscribeMethod; + + MockAPIPlugin({ + this.queryMethod, + this.mutateMethod, + this.subscribeMethod, + }); + + void clear() { + queryMethod = null; + mutateMethod = null; + subscribeMethod = null; + } + + @override + GraphQLOperation query({required GraphQLRequest request}) { + return queryMethod!(request); + } + + @override + GraphQLOperation mutate({required GraphQLRequest request}) { + return mutateMethod!(request); + } + + @override + Stream> subscribe( + GraphQLRequest request, { + void Function()? onEstablished, + }) { + return subscribeMethod!(request, onEstablished); + } +} + +class MockNativeAuthBridgeCodec extends StandardMessageCodec { + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is NativeGraphQLSubscriptionResponse) { + buffer.putUint8(128); + writeValue(buffer, value.encode()); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return NativeGraphQLSubscriptionResponse.decode(readValue(buffer)!); + default: + return super.readValueOfType(type, buffer); + } + } +} diff --git a/packages/amplify_datastore_plugin_interface/CHANGELOG.md b/packages/amplify_datastore_plugin_interface/CHANGELOG.md index b2a59219f0..4571a1ec39 100644 --- a/packages/amplify_datastore_plugin_interface/CHANGELOG.md +++ b/packages/amplify_datastore_plugin_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.2.0 + +- Minor bug fixes and improvements + ## 2.1.0 - Minor bug fixes and improvements diff --git a/packages/amplify_datastore_plugin_interface/pubspec.yaml b/packages/amplify_datastore_plugin_interface/pubspec.yaml index 5e0894f369..d1f8927757 100644 --- a/packages/amplify_datastore_plugin_interface/pubspec.yaml +++ b/packages/amplify_datastore_plugin_interface/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_datastore_plugin_interface description: The platform interface for the DataStore module of Amplify Flutter. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/amplify_datastore_plugin_interface issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -10,7 +10,7 @@ environment: flutter: ">=3.19.0" dependencies: - amplify_core: ">=2.1.0 <2.2.0" + amplify_core: ">=2.2.0 <2.3.0" collection: ^1.15.0 flutter: sdk: flutter diff --git a/packages/amplify_native_legacy_wrapper/example/.gitignore b/packages/amplify_native_legacy_wrapper/example/.gitignore index 24476c5d1e..2226cff9f5 100644 --- a/packages/amplify_native_legacy_wrapper/example/.gitignore +++ b/packages/amplify_native_legacy_wrapper/example/.gitignore @@ -42,3 +42,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +amplify_outputs.dart diff --git a/packages/analytics/amplify_analytics_pinpoint/CHANGELOG.md b/packages/analytics/amplify_analytics_pinpoint/CHANGELOG.md index e0bb24d493..769430561e 100644 --- a/packages/analytics/amplify_analytics_pinpoint/CHANGELOG.md +++ b/packages/analytics/amplify_analytics_pinpoint/CHANGELOG.md @@ -1,3 +1,8 @@ +## 2.2.0 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 - Minor bug fixes and improvements diff --git a/packages/analytics/amplify_analytics_pinpoint/example/.gitignore b/packages/analytics/amplify_analytics_pinpoint/example/.gitignore index ddd420969b..9847131bfe 100644 --- a/packages/analytics/amplify_analytics_pinpoint/example/.gitignore +++ b/packages/analytics/amplify_analytics_pinpoint/example/.gitignore @@ -65,3 +65,5 @@ amplifytools.xcconfig .secret-* **.sample #amplify-do-not-edit-end + +amplify_outputs.dart diff --git a/packages/analytics/amplify_analytics_pinpoint/pubspec.yaml b/packages/analytics/amplify_analytics_pinpoint/pubspec.yaml index 42281300a2..33892d9b8f 100644 --- a/packages/analytics/amplify_analytics_pinpoint/pubspec.yaml +++ b/packages/analytics/amplify_analytics_pinpoint/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_analytics_pinpoint description: The Amplify Flutter Analytics category plugin using the AWS Pinpoint provider. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/analytics/amplify_analytics_pinpoint issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -19,10 +19,10 @@ platforms: web: dependencies: - amplify_analytics_pinpoint_dart: ">=0.4.1 <0.5.0" - amplify_core: ">=2.1.0 <2.2.0" - amplify_db_common: ">=0.4.1 <0.5.0" - amplify_secure_storage: ">=0.5.2 <0.6.0" + amplify_analytics_pinpoint_dart: ">=0.4.2 <0.5.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_db_common: ">=0.4.2 <0.5.0" + amplify_secure_storage: ">=0.5.3 <0.6.0" aws_common: ">=0.7.0 <0.8.0" device_info_plus: ^10.0.1 flutter: diff --git a/packages/analytics/amplify_analytics_pinpoint_dart/CHANGELOG.md b/packages/analytics/amplify_analytics_pinpoint_dart/CHANGELOG.md index db56d55a0e..d370ed5ead 100644 --- a/packages/analytics/amplify_analytics_pinpoint_dart/CHANGELOG.md +++ b/packages/analytics/amplify_analytics_pinpoint_dart/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.4.2 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 0.4.1 - Minor bug fixes and improvements diff --git a/packages/analytics/amplify_analytics_pinpoint_dart/lib/src/analytics_plugin_impl.dart b/packages/analytics/amplify_analytics_pinpoint_dart/lib/src/analytics_plugin_impl.dart index 2ecc795bad..f981412729 100644 --- a/packages/analytics/amplify_analytics_pinpoint_dart/lib/src/analytics_plugin_impl.dart +++ b/packages/analytics/amplify_analytics_pinpoint_dart/lib/src/analytics_plugin_impl.dart @@ -83,19 +83,17 @@ class AmplifyAnalyticsPinpointDart extends AnalyticsPluginInterface { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { // Parse config values from amplifyconfiguration.json - if (config == null || - config.analytics == null || - config.analytics?.awsPlugin == null) { - throw ConfigurationError('No Pinpoint plugin config available.'); + if (config?.analytics?.amazonPinpoint == null) { + throw ConfigurationError('No analytics config available.'); } - final pinpointConfig = config.analytics!.awsPlugin!; - final pinpointAppId = pinpointConfig.pinpointAnalytics.appId; - final region = pinpointConfig.pinpointAnalytics.region; + final pinpointConfig = config!.analytics!.amazonPinpoint!; + final pinpointAppId = pinpointConfig.appId; + final region = pinpointConfig.awsRegion; // Prepare PinpointClient final authProvider = authProviderRepo diff --git a/packages/analytics/amplify_analytics_pinpoint_dart/lib/src/version.dart b/packages/analytics/amplify_analytics_pinpoint_dart/lib/src/version.dart index 8fa4bcba7e..81c0dee688 100644 --- a/packages/analytics/amplify_analytics_pinpoint_dart/lib/src/version.dart +++ b/packages/analytics/amplify_analytics_pinpoint_dart/lib/src/version.dart @@ -1,2 +1,2 @@ // Generated code. Do not modify. -const packageVersion = '0.4.1'; +const packageVersion = '0.4.2'; diff --git a/packages/analytics/amplify_analytics_pinpoint_dart/pubspec.yaml b/packages/analytics/amplify_analytics_pinpoint_dart/pubspec.yaml index cbc4b66408..56da4ee521 100644 --- a/packages/analytics/amplify_analytics_pinpoint_dart/pubspec.yaml +++ b/packages/analytics/amplify_analytics_pinpoint_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_analytics_pinpoint_dart description: A Dart-only implementation of the Amplify Analytics plugin for Pinpoint. -version: 0.4.1 +version: 0.4.2 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/analytics/amplify_analytics_pinpoint_dart issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -9,8 +9,8 @@ environment: sdk: ^3.3.0 dependencies: - amplify_core: ">=2.1.0 <2.2.0" - amplify_db_common_dart: ">=0.4.2 <0.5.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_db_common_dart: ">=0.4.3 <0.5.0" amplify_secure_storage_dart: ">=0.5.0 <0.6.0" aws_common: ">=0.7.0 <0.8.0" aws_signature_v4: ">=0.6.0 <0.7.0" diff --git a/packages/analytics/amplify_analytics_pinpoint_dart/test/analytics_plugin_config_test.dart b/packages/analytics/amplify_analytics_pinpoint_dart/test/analytics_plugin_config_test.dart index 62863fdde8..2af9db5f22 100644 --- a/packages/analytics/amplify_analytics_pinpoint_dart/test/analytics_plugin_config_test.dart +++ b/packages/analytics/amplify_analytics_pinpoint_dart/test/analytics_plugin_config_test.dart @@ -7,6 +7,8 @@ import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/event_ import 'package:amplify_analytics_pinpoint_dart/src/impl/flutter_provider_interfaces/cached_events_path_provider.dart'; import 'package:amplify_analytics_pinpoint_dart/src/sdk/src/pinpoint/model/session.dart'; import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/analytics/amazon_pinpoint_outputs.dart'; +import 'package:amplify_core/src/config/amplify_outputs/analytics/analytics_outputs.dart'; import 'package:mocktail/mocktail.dart'; import 'package:test/test.dart'; @@ -65,6 +67,13 @@ void main() { const appId = 'appId'; const region = 'region'; + // ignore: invalid_use_of_internal_member + const config = AmplifyOutputs( + version: '1', + analytics: AnalyticsOutputs( + amazonPinpoint: AmazonPinpointOutputs(awsRegion: region, appId: appId), + ), + ); setUpAll(() async { mockPathProvider = MockPathProvider(); @@ -80,6 +89,25 @@ void main() { Amplify.dependencies.addInstance(MockAnalyticsClient()); }); + test('throws ConfigurationError when no analytics config is provided', + () async { + final plugin = AmplifyAnalyticsPinpointDart( + secureStorageFactory: (_) => MockSecureStorage(), + ); + + await expectLater( + plugin.configure( + // ignore: invalid_use_of_internal_member + config: const AmplifyOutputs(version: '1'), + authProviderRepo: AmplifyAuthProviderRepository() + ..registerAuthProvider( + APIAuthorizationType.iam.authProviderToken, + mockAuthProvider, + ), + ), + throwsA(isA()), + ); + }); test('throws ConfigurationError when negative', () async { final plugin = AmplifyAnalyticsPinpointDart( pathProvider: mockPathProvider, @@ -91,21 +119,8 @@ void main() { await expectLater( plugin.configure( - config: const AmplifyConfig( - analytics: AnalyticsConfig( - plugins: { - PinpointPluginConfig.pluginKey: PinpointPluginConfig( - pinpointAnalytics: PinpointAnalytics( - appId: appId, - region: region, - ), - pinpointTargeting: PinpointTargeting( - region: region, - ), - ), - }, - ), - ), + // ignore: invalid_use_of_internal_member + config: config, authProviderRepo: AmplifyAuthProviderRepository() ..registerAuthProvider( APIAuthorizationType.iam.authProviderToken, @@ -126,21 +141,7 @@ void main() { ); await plugin.configure( - config: const AmplifyConfig( - analytics: AnalyticsConfig( - plugins: { - PinpointPluginConfig.pluginKey: PinpointPluginConfig( - pinpointAnalytics: PinpointAnalytics( - appId: appId, - region: region, - ), - pinpointTargeting: PinpointTargeting( - region: region, - ), - ), - }, - ), - ), + config: config, authProviderRepo: AmplifyAuthProviderRepository() ..registerAuthProvider( APIAuthorizationType.iam.authProviderToken, @@ -163,21 +164,7 @@ void main() { ); await plugin.configure( - config: const AmplifyConfig( - analytics: AnalyticsConfig( - plugins: { - PinpointPluginConfig.pluginKey: PinpointPluginConfig( - pinpointAnalytics: PinpointAnalytics( - appId: appId, - region: region, - ), - pinpointTargeting: PinpointTargeting( - region: region, - ), - ), - }, - ), - ), + config: config, authProviderRepo: AmplifyAuthProviderRepository() ..registerAuthProvider( APIAuthorizationType.iam.authProviderToken, diff --git a/packages/analytics/amplify_analytics_pinpoint_dart/test/endpoint_client_test.dart b/packages/analytics/amplify_analytics_pinpoint_dart/test/endpoint_client_test.dart index 82b64a3257..8d2574ea9d 100644 --- a/packages/analytics/amplify_analytics_pinpoint_dart/test/endpoint_client_test.dart +++ b/packages/analytics/amplify_analytics_pinpoint_dart/test/endpoint_client_test.dart @@ -333,5 +333,22 @@ void main() { ), ); }); + + test( + 'updateEndpoint throws NetworkException for AWSHttpException exceptions', + () async { + when(() => pinpointClient.updateEndpoint(any())).thenThrow( + AWSHttpException( + AWSHttpRequest(method: AWSHttpMethod.post, uri: Uri()), + ), + ); + + expect( + endpointClient.updateEndpoint(), + throwsA( + isA(), + ), + ); + }); }); } diff --git a/packages/api/amplify_api/CHANGELOG.md b/packages/api/amplify_api/CHANGELOG.md index b39e70a913..a96949b8ea 100644 --- a/packages/api/amplify_api/CHANGELOG.md +++ b/packages/api/amplify_api/CHANGELOG.md @@ -1,3 +1,8 @@ +## 2.2.0 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 - Minor bug fixes and improvements diff --git a/packages/api/amplify_api/example/.gitignore b/packages/api/amplify_api/example/.gitignore index 58d7e76f28..938bd2b62c 100644 --- a/packages/api/amplify_api/example/.gitignore +++ b/packages/api/amplify_api/example/.gitignore @@ -64,3 +64,5 @@ amplifytools.xcconfig .secret-* **.sample #amplify-do-not-edit-end + +amplify_outputs.dart diff --git a/packages/api/amplify_api/example/ios/Flutter/AppFrameworkInfo.plist b/packages/api/amplify_api/example/ios/Flutter/AppFrameworkInfo.plist index 9625e105df..7c56964006 100644 --- a/packages/api/amplify_api/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/api/amplify_api/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/packages/api/amplify_api/example/ios/Runner.xcodeproj/project.pbxproj b/packages/api/amplify_api/example/ios/Runner.xcodeproj/project.pbxproj index 4de3b7f396..52da5c59ac 100644 --- a/packages/api/amplify_api/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/api/amplify_api/example/ios/Runner.xcodeproj/project.pbxproj @@ -155,7 +155,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { diff --git a/packages/api/amplify_api/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/api/amplify_api/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a6b826db27..5e31d3d342 100644 --- a/packages/api/amplify_api/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/api/amplify_api/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ =0.5.1 <0.6.0" - amplify_core: ">=2.1.0 <2.2.0" - amplify_flutter: ">=2.1.0 <2.2.0" + amplify_api_dart: ">=0.5.2 <0.6.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_flutter: ">=2.2.0 <2.3.0" connectivity_plus: ^6.0.1 flutter: sdk: flutter diff --git a/packages/api/amplify_api_dart/CHANGELOG.md b/packages/api/amplify_api_dart/CHANGELOG.md index 66fbb1f198..87bae8db7e 100644 --- a/packages/api/amplify_api_dart/CHANGELOG.md +++ b/packages/api/amplify_api_dart/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.5.2 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 0.5.1 - Minor bug fixes and improvements diff --git a/packages/api/amplify_api_dart/lib/src/api_plugin_impl.dart b/packages/api/amplify_api_dart/lib/src/api_plugin_impl.dart index e3b1b9b530..36f83e993f 100644 --- a/packages/api/amplify_api_dart/lib/src/api_plugin_impl.dart +++ b/packages/api/amplify_api_dart/lib/src/api_plugin_impl.dart @@ -14,6 +14,10 @@ import 'package:amplify_api_dart/src/graphql/web_socket/types/connectivity_platf import 'package:amplify_api_dart/src/util/amplify_api_config.dart'; import 'package:amplify_api_dart/src/util/amplify_authorization_rest_client.dart'; import 'package:amplify_core/amplify_core.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/data/data_outputs.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/rest_api/rest_api_outputs.dart'; import 'package:meta/meta.dart'; /// {@template amplify_api_dart.amplify_api_dart} @@ -30,7 +34,8 @@ class AmplifyAPIDart extends APIPluginInterface with AWSDebuggable { } final APIPluginOptions _options; - late final AWSApiPluginConfig _apiConfig; + late final Map? _dataConfig; + late final Map? _restConfig; late final AmplifyAuthProviderRepository _authProviderRepo; /// Creates a stream representing network connectivity at the hardware level. @@ -63,30 +68,49 @@ class AmplifyAPIDart extends APIPluginInterface with AWSDebuggable { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { - final apiConfig = config?.api?.awsPlugin; - if (apiConfig == null) { + final dataConfig = config?.data; + // ignore: invalid_use_of_internal_member + final restApiConfig = config?.restApi; + _validateConfig(dataConfig, restApiConfig); + _dataConfig = dataConfig; + _restConfig = restApiConfig; + _authProviderRepo = authProviderRepo; + _registerApiPluginAuthProviders(); + Amplify.Hub.addChannel(HubChannel.Api, _hubEventController.stream); + } + + void _validateConfig( + Map? dataConfig, + Map? restApiConfig, + ) { + if (dataConfig == null && restApiConfig == null) { throw ConfigurationError( - 'No AWS API config found', - recoverySuggestion: 'Add API from the Amplify CLI. See ' + 'No API config found', + recoverySuggestion: 'Add API configuration to use API plugin. See ' 'https://docs.amplify.aws/lib/graphqlapi/getting-started/q/platform/flutter/#configure-api', ); } - for (final entry in apiConfig.endpoints.entries) { - if (!entry.value.endpoint.startsWith('https')) { + dataConfig?.forEach((key, value) { + if (!value.url.startsWith('https')) { throw ConfigurationError( - 'Non-HTTPS endpoint found for ${entry.key} which is not supported.', + 'Non-HTTPS url found for $key which is not supported.', recoverySuggestion: - 'Ensure the configured endpoint for ${entry.key} utilizes https.', + 'Ensure the configured url for $key utilizes https.', ); } - } - _apiConfig = apiConfig; - _authProviderRepo = authProviderRepo; - _registerApiPluginAuthProviders(); - Amplify.Hub.addChannel(HubChannel.Api, _hubEventController.stream); + }); + restApiConfig?.forEach((key, value) { + if (!value.url.startsWith('https')) { + throw ConfigurationError( + 'Non-HTTPS url found for $key which is not supported.', + recoverySuggestion: + 'Ensure the configured url for $key utilizes https.', + ); + } + }); } /// Register AmplifyAuthProviders that are specific to API category (API key, @@ -96,10 +120,12 @@ class AmplifyAPIDart extends APIPluginInterface with AWSDebuggable { /// /// Register OIDC/Lambda set to _authProviders in constructor. void _registerApiPluginAuthProviders() { - _apiConfig.endpoints.forEach((key, value) { + _dataConfig?.forEach((key, value) { // Check the presence of apiKey (not auth type) because other modes might // have a key if not the primary auth mode. - if (value.apiKey != null) { + if (value.defaultAuthorizationType == APIAuthorizationType.apiKey || + value.authorizationTypes + .any((element) => element == APIAuthorizationType.apiKey)) { _authProviderRepo.registerAuthProvider( APIAuthorizationType.apiKey.authProviderToken, AppSyncApiKeyAuthProvider(), @@ -140,10 +166,7 @@ class AmplifyAPIDart extends APIPluginInterface with AWSDebuggable { String? apiName, APIAuthorizationType? authorizationMode, }) { - final endpoint = _apiConfig.getEndpoint( - type: type, - apiName: apiName, - ); + final endpoint = _getEndpointConfig(type, apiName); final authModeForClientKey = authorizationMode ?? endpoint.config.authorizationType; final clientPoolKey = '${endpoint.name}.${authModeForClientKey.name}'; @@ -158,10 +181,90 @@ class AmplifyAPIDart extends APIPluginInterface with AWSDebuggable { ); } + EndpointConfig _getEndpointConfig(EndpointType type, String? apiName) { + if (type == EndpointType.graphQL) { + if (_dataConfig == null) { + throw ConfigurationError( + 'No GraphQL API endpoint found.', + ); + } + DataOutputs config; + if (apiName != null) { + config = _dataConfig.entries + .firstWhere( + (config) => config.key == apiName, + orElse: () => throw ConfigurationError( + 'No GraphQL API endpoint found matching apiName $apiName.', + ), + ) + .value; + } else { + if (_dataConfig.length > 1) { + throw ConfigurationError( + 'Multiple GraphQL API endpoints defined. Pass apiName parameter to specify ' + 'which one to use.', + ); + } + config = _dataConfig.values.first; + apiName = _dataConfig.keys.first; + } + return EndpointConfig( + apiName, + AWSApiConfig( + region: config.awsRegion, + endpoint: config.url, + endpointType: EndpointType.graphQL, + authorizationType: config.defaultAuthorizationType, + apiKey: config.apiKey, + ), + ); + } + if (type == EndpointType.rest) { + if (_restConfig == null) { + throw ConfigurationError( + 'No REST API endpoint found.', + ); + } + RestApiOutputs config; + if (apiName != null) { + config = _restConfig.entries + .firstWhere( + (config) => config.key == apiName, + orElse: () => throw ConfigurationError( + 'No REST API endpoint found matching apiName $apiName.', + ), + ) + .value; + } else { + if (_restConfig.length > 1) { + throw ConfigurationError( + 'Multiple REST API endpoints defined. Pass apiName parameter to specify ' + 'which one to use.', + ); + } + config = _restConfig.values.first; + apiName = _restConfig.keys.first; + } + return EndpointConfig( + apiName, + AWSApiConfig( + region: config.awsRegion, + endpoint: config.url, + endpointType: EndpointType.rest, + authorizationType: config.authorizationType, + apiKey: config.apiKey, + ), + ); + } + throw ConfigurationError( + 'Endpoint type $type is not supported.', + ); + } + WebSocketBloc _webSocketBloc({String? apiName}) { - final endpoint = _apiConfig.getEndpoint( - type: EndpointType.graphQL, - apiName: apiName, + final endpoint = _getEndpointConfig( + EndpointType.graphQL, + apiName, ); return _webSocketBlocPool[endpoint.name] ??= createWebSocketBloc(endpoint) @@ -188,9 +291,9 @@ class AmplifyAPIDart extends APIPluginInterface with AWSDebuggable { } Uri _getGraphQLUri(String? apiName) { - final endpoint = _apiConfig.getEndpoint( - type: EndpointType.graphQL, - apiName: apiName, + final endpoint = _getEndpointConfig( + EndpointType.graphQL, + apiName, ); return endpoint.getUri(); } @@ -200,9 +303,9 @@ class AmplifyAPIDart extends APIPluginInterface with AWSDebuggable { String? apiName, Map? queryParameters, ) { - final endpoint = _apiConfig.getEndpoint( - type: EndpointType.rest, - apiName: apiName, + final endpoint = _getEndpointConfig( + EndpointType.rest, + apiName, ); return endpoint.getUri(path: path, queryParameters: queryParameters); } diff --git a/packages/api/amplify_api_dart/lib/src/util/amplify_api_config.dart b/packages/api/amplify_api_dart/lib/src/util/amplify_api_config.dart index d36119064e..0ad17e1473 100644 --- a/packages/api/amplify_api_dart/lib/src/util/amplify_api_config.dart +++ b/packages/api/amplify_api_dart/lib/src/util/amplify_api_config.dart @@ -2,13 +2,14 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; -import 'package:collection/collection.dart'; import 'package:meta/meta.dart'; const _slash = '/'; /// Allows formatting the URL from the config with new paths/query params. @internal + +// TODO(nikahsn): refactor EndpointConfig to not use AWSApiConfig type class EndpointConfig with AWSEquatable { // ignore: public_member_api_docs const EndpointConfig(this.name, this.config); @@ -46,33 +47,3 @@ class EndpointConfig with AWSEquatable { return path.split(_slash); } } - -/// Allows getting desired endpoint more easily. -@internal -extension AWSApiPluginConfigHelpers on AWSApiPluginConfig { - /// Finds the first endpoint matching the type and apiName. - EndpointConfig getEndpoint({ - required EndpointType type, - String? apiName, - }) { - final typeConfigs = - entries.where((config) => config.value.endpointType == type); - if (apiName != null) { - final config = typeConfigs.firstWhere( - (config) => config.key == apiName, - orElse: () => throw ConfigurationError( - 'No API endpoint found matching apiName $apiName.', - ), - ); - return EndpointConfig(config.key, config.value); - } - final onlyConfig = typeConfigs.singleOrNull; - if (onlyConfig == null) { - throw ConfigurationError( - 'Multiple API endpoints defined. Pass apiName parameter to specify ' - 'which one to use.', - ); - } - return EndpointConfig(onlyConfig.key, onlyConfig.value); - } -} diff --git a/packages/api/amplify_api_dart/pubspec.yaml b/packages/api/amplify_api_dart/pubspec.yaml index e3e926ec7e..b29283a13b 100644 --- a/packages/api/amplify_api_dart/pubspec.yaml +++ b/packages/api/amplify_api_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_api_dart description: The Amplify API category plugin in Dart-only, supporting GraphQL and REST operations. -version: 0.5.1 +version: 0.5.2 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/api/amplify_api_dart issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -9,7 +9,7 @@ environment: sdk: ^3.3.0 dependencies: - amplify_core: ">=2.1.0 <2.2.0" + amplify_core: ">=2.2.0 <2.3.0" async: ^2.10.0 aws_common: ">=0.7.0 <0.8.0" collection: ^1.15.0 diff --git a/packages/api/amplify_api_dart/test/graphql_test.dart b/packages/api/amplify_api_dart/test/graphql_test.dart index 1c14641b0b..bf1e9d0ed9 100644 --- a/packages/api/amplify_api_dart/test/graphql_test.dart +++ b/packages/api/amplify_api_dart/test/graphql_test.dart @@ -14,84 +14,13 @@ import 'package:aws_common/testing.dart'; import 'package:collection/collection.dart'; import 'package:test/test.dart'; +import 'mocks.dart'; import 'test_data/fake_amplify_configuration.dart'; import 'test_models/ModelProvider.dart'; import 'util.dart'; final _deepEquals = const DeepCollectionEquality().equals; -// Success Mocks -const _expectedQuerySuccessResponseBody = { - 'data': { - 'listBlogs': { - 'items': [ - { - 'id': 'TEST_ID', - 'name': 'Test App Blog', - 'createdAt': '2022-06-28T17:36:52.460Z', - } - ], - }, - }, -}; - -final _modelQueryId = uuid(); -final _expectedModelQueryResult = { - 'data': { - 'getBlog': { - 'createdAt': '2021-07-21T22:23:33.707Z', - 'id': _modelQueryId, - 'name': 'Test App Blog', - }, - }, -}; -const _expectedMutateSuccessResponseBody = { - 'data': { - 'createBlog': { - 'id': 'TEST_ID', - 'name': 'Test App Blog', - 'createdAt': '2022-07-06T18:42:26.126Z', - }, - }, -}; - -// Error Mocks -const _errorMessage = 'Unable to parse GraphQL query.'; -const _errorLocations = [ - {'line': 2, 'column': 3}, - {'line': 4, 'column': 5}, -]; -const _errorPath = ['a', 1, 'b']; -const _errorExtensions = { - 'a': 'blah', - 'b': {'c': 'd'}, -}; -const _errorType = 'DynamoDB:ConditionalCheckFailedException'; -const _errorInfo = {'a': 'b'}; -const _expectedErrorResponseBody = { - 'data': null, - 'errors': [ - { - 'message': _errorMessage, - 'locations': _errorLocations, - 'path': _errorPath, - 'extensions': _errorExtensions, - 'errorType': _errorType, - 'errorInfo': _errorInfo, - }, - ], -}; - -const _authErrorMessage = 'Not authorized'; -const _expectedAuthErrorResponseBody = { - 'data': null, - 'errors': [ - { - 'message': _authErrorMessage, - }, - ], -}; - final mockHttpClient = MockAWSHttpClient((request, _) async { if (request.headers[xApiKey] != 'abc123' && request.headers[AWSHeaders.authorization] == testFunctionToken) { @@ -99,7 +28,7 @@ final mockHttpClient = MockAWSHttpClient((request, _) async { // does not work for this query. return AWSHttpResponse( statusCode: 401, - body: utf8.encode(json.encode(_expectedAuthErrorResponseBody)), + body: utf8.encode(json.encode(expectedAuthErrorResponseBody)), ); } if (request.headers[xApiKey] != 'abc123') { @@ -110,25 +39,32 @@ final mockHttpClient = MockAWSHttpClient((request, _) async { if (body.contains('getBlog')) { return AWSHttpResponse( statusCode: 200, - body: utf8.encode(json.encode(_expectedModelQueryResult)), + body: utf8.encode(json.encode(expectedModelQueryResult)), ); } if (body.contains('TestMutate')) { return AWSHttpResponse( statusCode: 400, - body: utf8.encode(json.encode(_expectedMutateSuccessResponseBody)), + body: utf8.encode(json.encode(expectedMutateSuccessResponseBody)), ); } if (body.contains('TestError')) { return AWSHttpResponse( statusCode: 400, - body: utf8.encode(json.encode(_expectedErrorResponseBody)), + body: utf8.encode(json.encode(expectedErrorResponseBody)), + ); + } + if (body.contains('createModelWithCustomType')) { + return AWSHttpResponse( + statusCode: 200, + body: utf8 + .encode(json.encode(expectedModelWithCustomTypeSuccessResponseBody)), ); } return AWSHttpResponse( statusCode: 400, - body: utf8.encode((json.encode(_expectedQuerySuccessResponseBody))), + body: utf8.encode((json.encode(expectedQuerySuccessResponseBody))), ); }); @@ -195,7 +131,7 @@ void main() { final operation = Amplify.API.query(request: req); final res = await operation.response; - final expected = json.encode(_expectedQuerySuccessResponseBody['data']); + final expected = json.encode(expectedQuerySuccessResponseBody['data']); expect(res.data, equals(expected)); expect(res.errors, isEmpty); @@ -219,7 +155,7 @@ void main() { final operation = Amplify.API.query(request: req); final res = await operation.response; - final expected = json.encode(_expectedQuerySuccessResponseBody['data']); + final expected = json.encode(expectedQuerySuccessResponseBody['data']); expect(res.data, equals(expected)); expect(res.errors, isEmpty); @@ -242,7 +178,23 @@ void main() { final operation = Amplify.API.mutate(request: req); final res = await operation.response; - final expected = json.encode(_expectedMutateSuccessResponseBody['data']); + final expected = json.encode(expectedMutateSuccessResponseBody['data']); + + expect(res.data, equals(expected)); + expect(res.errors, isEmpty); + }); + + test('Mutate returns proper response.data for custom types', () async { + final req = GraphQLRequest( + document: modelWithCustomTypeDocument, + variables: modelWithCustomTypeVariables, + ); + + final operation = Amplify.API.mutate(request: req); + final res = await operation.response; + + final expected = + json.encode(expectedModelWithCustomTypeSuccessResponseBody['data']); expect(res.data, equals(expected)); expect(res.errors, isEmpty); @@ -255,7 +207,7 @@ void main() { const expectedDoc = 'query getBlog(\$id: ID!) { getBlog(id: \$id) { $blogSelectionSet } }'; const decodePath = 'getBlog'; - final blog = Blog(id: _modelQueryId, name: 'Lorem ipsum $_modelQueryId'); + final blog = Blog(id: modelQueryId, name: 'Lorem ipsum $modelQueryId'); final req = ModelQueries.get(Blog.classType, blog.modelIdentifier); final operation = Amplify.API.query(request: req); @@ -263,15 +215,49 @@ void main() { // request asserts expect(req.document, expectedDoc); - expect(_deepEquals(req.variables, {'id': _modelQueryId}), isTrue); + expect(_deepEquals(req.variables, {'id': modelQueryId}), isTrue); expect(req.modelType, Blog.classType); expect(req.decodePath, decodePath); // response asserts expect(res.data, isA()); - expect(res.data?.id, _modelQueryId); + expect(res.data?.id, modelQueryId); + expect(res.errors, isEmpty); + }); + + test( + 'Mutation.create returns proper response.data for Models with custom types', + () async { + const expectedDoc = modelWithCustomTypeDocument; + const decodePath = 'createModelWithCustomType'; + final req = ModelMutations.create( + modelWithCustomType, + ); + + final operation = Amplify.API.query(request: req); + final res = await operation.response; + + // request asserts + expect(req.document, expectedDoc); + expect(_deepEquals(req.variables, modelWithCustomTypeVariables), isTrue); + expect(req.modelType, ModelWithCustomType.classType); + expect(req.decodePath, decodePath); + // response asserts + expect(res.data, isA()); + expect(res.data?.id, modelCustomTypeId); + + final data = res.data!; + expect( + data.customTypeValue, + equals(modelWithCustomType.customTypeValue), + ); + expect( + data.listOfCustomTypeValue, + equals(modelWithCustomType.listOfCustomTypeValue), + ); expect(res.errors, isEmpty); }); }); + const graphQLDocument = '''subscription MySubscription { onCreateBlog { id @@ -550,15 +536,15 @@ void main() { final res = await operation.response; const errorExpected = GraphQLResponseError( - message: _errorMessage, + message: errorMessage, locations: [ GraphQLResponseErrorLocation(2, 3), GraphQLResponseErrorLocation(4, 5), ], - path: [..._errorPath], - extensions: {..._errorExtensions}, - errorType: _errorType, - errorInfo: _errorInfo, + path: [...errorPath], + extensions: {...errorExtensions}, + errorType: errorType, + errorInfo: errorInfo, ); expect(res.data, equals(null)); @@ -585,7 +571,7 @@ void main() { final res = await operation.response; const errorExpected = GraphQLResponseError( - message: _authErrorMessage, + message: authErrorMessage, ); expect(res.data, equals(null)); diff --git a/packages/api/amplify_api_dart/test/mocks.dart b/packages/api/amplify_api_dart/test/mocks.dart new file mode 100644 index 0000000000..239ca2ffe9 --- /dev/null +++ b/packages/api/amplify_api_dart/test/mocks.dart @@ -0,0 +1,347 @@ +import 'package:amplify_core/amplify_core.dart'; + +import 'test_models/ModelProvider.dart'; + +// Mock requests +const modelWithCustomTypeDocument = + r'mutation createModelWithCustomType($input: CreateModelWithCustomTypeInput!, $condition: ModelModelWithCustomTypeConditionInput) { createModelWithCustomType(input: $input, condition: $condition) { id customTypeValue { stringValue listOfStringValue intValue listOfIntValue floatValue listOfFloatValue booleanValue listOfBooleanValue awsDateValue listOfAWSDateValue awsDateTimeValue listOfAWSDateTimeValue awsTimeValue listOfAWSTimeValue awsTimestampValue listOfAWSTimestampValue awsEmailValue listOfAWSEmailValue awsJsonValue listOfAWSJsonValue awsPhoneValue listOfAWSPhoneValue awsURLValue listOfAWSURLValue awsIPAddressValue listOfAWSIPAddressValue enumValue listOfEnumValue customTypeValue { foo } listOfCustomTypeValue { foo } } listOfCustomTypeValue { stringValue listOfStringValue intValue listOfIntValue floatValue listOfFloatValue booleanValue listOfBooleanValue awsDateValue listOfAWSDateValue awsDateTimeValue listOfAWSDateTimeValue awsTimeValue listOfAWSTimeValue awsTimestampValue listOfAWSTimestampValue awsEmailValue listOfAWSEmailValue awsJsonValue listOfAWSJsonValue awsPhoneValue listOfAWSPhoneValue awsURLValue listOfAWSURLValue awsIPAddressValue listOfAWSIPAddressValue enumValue listOfEnumValue customTypeValue { foo } listOfCustomTypeValue { foo } } createdAt updatedAt } }'; +final modelCustomTypeId = uuid(); +final modelWithCustomTypeVariables = { + 'input': { + 'id': modelCustomTypeId, + 'customTypeValue': { + 'stringValue': 'foo', + 'listOfStringValue': ['foo', 'bar'], + 'intValue': 42, + 'listOfIntValue': [1, 2, 3], + 'floatValue': 3.14, + 'listOfFloatValue': [3.14, 6.28], + 'booleanValue': true, + 'listOfBooleanValue': [true, false], + 'awsDateValue': '2021-07-07', + 'listOfAWSDateValue': ['2021-07-07', '2021-07-08'], + 'awsDateTimeValue': '2021-07-07T20:20:20.000000000Z', + 'listOfAWSDateTimeValue': [ + '2021-07-07T20:20:20.000000000Z', + '2021-07-08T20:20:20.000000000Z', + ], + 'awsTimeValue': '20:20:20Z', + 'listOfAWSTimeValue': ['20:20:20Z', '21:21:21Z'], + 'awsTimestampValue': 1625660420, + 'listOfAWSTimestampValue': [1625660420, 1625746820], + 'awsEmailValue': 'example@amazon.com', + 'listOfAWSEmailValue': [ + 'example+foo@amazon.com', + 'example+bar@amazon.com', + ], + 'awsJsonValue': '{"a":1,"b":3,"string":234}', + 'listOfAWSJsonValue': [ + '{"a":1,"b":3,"string":234}', + '{"a":2,"b":4,"string":567}', + ], + 'awsPhoneValue': '2234567890', + 'listOfAWSPhoneValue': ['2234567890', '2234567891'], + 'awsURLValue': 'https://aws.amazon.com', + 'listOfAWSURLValue': ['https://aws.amazon.com', 'https://flutter.dev'], + 'awsIPAddressValue': '1.0.0.1', + 'listOfAWSIPAddressValue': ['1.0.0.1', '1.0.0.2'], + 'enumValue': 'yes', + 'listOfEnumValue': ['yes', 'no'], + 'customTypeValue': { + 'foo': 'bar', + }, + 'listOfCustomTypeValue': [ + { + 'foo': 'bar', + }, + { + 'foo': 'baz', + } + ], + }, + 'listOfCustomTypeValue': [ + { + 'stringValue': 'foo', + 'listOfStringValue': ['foo', 'bar'], + 'intValue': 42, + 'listOfIntValue': [1, 2, 3], + 'floatValue': 3.14, + 'listOfFloatValue': [3.14, 6.28], + 'booleanValue': true, + 'listOfBooleanValue': [true, false], + 'awsDateValue': '2021-07-07', + 'listOfAWSDateValue': ['2021-07-07', '2021-07-08'], + 'awsDateTimeValue': '2021-07-07T20:20:20.000000000Z', + 'listOfAWSDateTimeValue': [ + '2021-07-07T20:20:20.000000000Z', + '2021-07-08T20:20:20.000000000Z', + ], + 'awsTimeValue': '20:20:20Z', + 'listOfAWSTimeValue': ['20:20:20Z', '21:21:21Z'], + 'awsTimestampValue': 1625660420, + 'listOfAWSTimestampValue': [1625660420, 1625746820], + 'awsEmailValue': 'example@amazon.com', + 'listOfAWSEmailValue': [ + 'example+foo@amazon.com', + 'example+bar@amazon.com', + ], + 'awsJsonValue': '{"a":1,"b":3,"string":234}', + 'listOfAWSJsonValue': [ + '{"a":1,"b":3,"string":234}', + '{"a":2,"b":4,"string":567}', + ], + 'awsPhoneValue': '2234567890', + 'listOfAWSPhoneValue': ['2234567890', '2234567891'], + 'awsURLValue': 'https://aws.amazon.com', + 'listOfAWSURLValue': ['https://aws.amazon.com', 'https://flutter.dev'], + 'awsIPAddressValue': '1.0.0.1', + 'listOfAWSIPAddressValue': ['1.0.0.1', '1.0.0.2'], + 'enumValue': 'yes', + 'listOfEnumValue': ['yes', 'no'], + 'customTypeValue': { + 'foo': 'bar', + }, + 'listOfCustomTypeValue': [ + { + 'foo': 'bar', + }, + { + 'foo': 'baz', + } + ], + } + ], + }, +}; + +// Success Mocks +const expectedQuerySuccessResponseBody = { + 'data': { + 'listBlogs': { + 'items': [ + { + 'id': 'TEST_ID', + 'name': 'Test App Blog', + 'createdAt': '2022-06-28T17:36:52.460Z', + } + ], + }, + }, +}; + +final modelQueryId = uuid(); +final expectedModelQueryResult = { + 'data': { + 'getBlog': { + 'createdAt': '2021-07-21T22:23:33.707Z', + 'id': modelQueryId, + 'name': 'Test App Blog', + }, + }, +}; +const expectedMutateSuccessResponseBody = { + 'data': { + 'createBlog': { + 'id': 'TEST_ID', + 'name': 'Test App Blog', + 'createdAt': '2022-07-06T18:42:26.126Z', + }, + }, +}; +final expectedModelWithCustomTypeSuccessResponseBody = { + 'data': { + 'createModelWithCustomType': { + 'id': modelCustomTypeId, + 'customTypeValue': { + 'stringValue': 'foo', + 'listOfStringValue': ['foo', 'bar'], + 'intValue': 42, + 'listOfIntValue': [1, 2, 3], + 'floatValue': 3.14, + 'listOfFloatValue': [3.14, 6.28], + 'booleanValue': true, + 'listOfBooleanValue': [true, false], + 'awsDateValue': '2021-07-07', + 'listOfAWSDateValue': ['2021-07-07', '2021-07-08'], + 'awsDateTimeValue': '2021-07-07T20:20:20.000000000Z', + 'listOfAWSDateTimeValue': [ + '2021-07-07T20:20:20.000000000Z', + '2021-07-08T20:20:20.000000000Z', + ], + 'awsTimeValue': '20:20:20Z', + 'listOfAWSTimeValue': ['20:20:20Z', '21:21:21Z'], + 'awsTimestampValue': 1625660420, + 'listOfAWSTimestampValue': [1625660420, 1625746820], + 'awsEmailValue': 'example@amazon.com', + 'listOfAWSEmailValue': [ + 'example+foo@amazon.com', + 'example+bar@amazon.com', + ], + 'awsJsonValue': '{"a":1,"b":3,"string":234}', + 'listOfAWSJsonValue': [ + '{"a":1,"b":3,"string":234}', + '{"a":2,"b":4,"string":567}', + ], + 'awsPhoneValue': '2234567890', + 'listOfAWSPhoneValue': ['2234567890', '2234567891'], + 'awsURLValue': 'https://aws.amazon.com', + 'listOfAWSURLValue': ['https://aws.amazon.com', 'https://flutter.dev'], + 'awsIPAddressValue': '1.0.0.1', + 'listOfAWSIPAddressValue': ['1.0.0.1', '1.0.0.2'], + 'enumValue': 'yes', + 'listOfEnumValue': ['yes', 'no'], + 'customTypeValue': {'foo': 'bar'}, + 'listOfCustomTypeValue': [ + {'foo': 'bar'}, + {'foo': 'baz'}, + ], + }, + 'listOfCustomTypeValue': [ + { + 'stringValue': 'foo', + 'listOfStringValue': ['foo', 'bar'], + 'intValue': 42, + 'listOfIntValue': [1, 2, 3], + 'floatValue': 3.14, + 'listOfFloatValue': [3.14, 6.28], + 'booleanValue': true, + 'listOfBooleanValue': [true, false], + 'awsDateValue': '2021-07-07', + 'listOfAWSDateValue': ['2021-07-07', '2021-07-08'], + 'awsDateTimeValue': '2021-07-07T20:20:20.000000000Z', + 'listOfAWSDateTimeValue': [ + '2021-07-07T20:20:20.000000000Z', + '2021-07-08T20:20:20.000000000Z', + ], + 'awsTimeValue': '20:20:20Z', + 'listOfAWSTimeValue': ['20:20:20Z', '21:21:21Z'], + 'awsTimestampValue': 1625660420, + 'listOfAWSTimestampValue': [1625660420, 1625746820], + 'awsEmailValue': 'example@amazon.com', + 'listOfAWSEmailValue': [ + 'example+foo@amazon.com', + 'example+bar@amazon.com', + ], + 'awsJsonValue': '{"a":1,"b":3,"string":234}', + 'listOfAWSJsonValue': [ + '{"a":1,"b":3,"string":234}', + '{"a":2,"b":4,"string":567}', + ], + 'awsPhoneValue': '2234567890', + 'listOfAWSPhoneValue': ['2234567890', '2234567891'], + 'awsURLValue': 'https://aws.amazon.com', + 'listOfAWSURLValue': [ + 'https://aws.amazon.com', + 'https://flutter.dev', + ], + 'awsIPAddressValue': '1.0.0.1', + 'listOfAWSIPAddressValue': ['1.0.0.1', '1.0.0.2'], + 'enumValue': 'yes', + 'listOfEnumValue': ['yes', 'no'], + 'customTypeValue': {'foo': 'bar'}, + 'listOfCustomTypeValue': [ + {'foo': 'bar'}, + {'foo': 'baz'}, + ], + } + ], + 'createdAt': '2024-05-14T22:00:30.605Z', + 'updatedAt': '2024-05-14T22:00:30.605Z', + }, + }, +}; + +// Error Mocks +const errorMessage = 'Unable to parse GraphQL query.'; +const errorLocations = [ + {'line': 2, 'column': 3}, + {'line': 4, 'column': 5}, +]; +const errorPath = ['a', 1, 'b']; +const errorExtensions = { + 'a': 'blah', + 'b': {'c': 'd'}, +}; +const errorType = 'DynamoDB:ConditionalCheckFailedException'; +const errorInfo = {'a': 'b'}; +const expectedErrorResponseBody = { + 'data': null, + 'errors': [ + { + 'message': errorMessage, + 'locations': errorLocations, + 'path': errorPath, + 'extensions': errorExtensions, + 'errorType': errorType, + 'errorInfo': errorInfo, + }, + ], +}; + +const authErrorMessage = 'Not authorized'; +const expectedAuthErrorResponseBody = { + 'data': null, + 'errors': [ + { + 'message': authErrorMessage, + }, + ], +}; + +/// Models +final customTypesSubModel1 = CustomTypeWithAppsyncScalarTypes( + stringValue: 'foo', + listOfStringValue: ['foo', 'bar'], + intValue: 42, + listOfIntValue: [1, 2, 3], + floatValue: 3.14, + listOfFloatValue: [3.14, 6.28], + booleanValue: true, + listOfBooleanValue: [true, false], + awsDateValue: TemporalDate.fromString('2021-07-07'), + listOfAWSDateValue: [ + TemporalDate.fromString('2021-07-07'), + TemporalDate.fromString('2021-07-08'), + ], + awsDateTimeValue: TemporalDateTime.fromString('2021-07-07T20:20:20Z'), + listOfAWSDateTimeValue: [ + TemporalDateTime.fromString('2021-07-07T20:20:20Z'), + TemporalDateTime.fromString('2021-07-08T20:20:20Z'), + ], + awsTimeValue: TemporalTime.fromString('20:20:20Z'), + listOfAWSTimeValue: [ + TemporalTime.fromString('20:20:20Z'), + TemporalTime.fromString('21:21:21Z'), + ], + awsTimestampValue: TemporalTimestamp.fromSeconds(1625660420), + listOfAWSTimestampValue: [ + TemporalTimestamp.fromSeconds(1625660420), + TemporalTimestamp.fromSeconds(1625746820), + ], + awsEmailValue: 'example@amazon.com', + listOfAWSEmailValue: ['example+foo@amazon.com', 'example+bar@amazon.com'], + awsJsonValue: '{"a":1,"b":3,"string":234}', + listOfAWSJsonValue: [ + '{"a":1,"b":3,"string":234}', + '{"a":2,"b":4,"string":567}', + ], + awsPhoneValue: '2234567890', + listOfAWSPhoneValue: ['2234567890', '2234567891'], + awsURLValue: 'https://aws.amazon.com', + listOfAWSURLValue: ['https://aws.amazon.com', 'https://flutter.dev'], + awsIPAddressValue: '1.0.0.1', + listOfAWSIPAddressValue: ['1.0.0.1', '1.0.0.2'], + enumValue: EnumField.yes, + listOfEnumValue: [EnumField.yes, EnumField.no], + customTypeValue: SimpleCustomType(foo: 'bar'), + listOfCustomTypeValue: [ + SimpleCustomType(foo: 'bar'), + SimpleCustomType(foo: 'baz'), + ], +); +final customTypesSubModel2 = customTypesSubModel1.copyWith(); +final modelWithCustomType = ModelWithCustomType( + id: modelCustomTypeId, + customTypeValue: customTypesSubModel1, + listOfCustomTypeValue: [customTypesSubModel2], +); diff --git a/packages/api/amplify_api_dart/test/plugin_configuration_test.dart b/packages/api/amplify_api_dart/test/plugin_configuration_test.dart index d1c37016e8..dae096aabe 100644 --- a/packages/api/amplify_api_dart/test/plugin_configuration_test.dart +++ b/packages/api/amplify_api_dart/test/plugin_configuration_test.dart @@ -61,12 +61,17 @@ void main() { APIAuthorizationType.iam.authProviderToken, TestIamAuthProvider(), ); + // TODO(nikahsn): update to use AmplifyOutputs config final config = AmplifyConfig.fromJson( jsonDecode(amplifyconfig) as Map, ); + // ignore: invalid_use_of_internal_member + final amplifyOutputs = config.toAmplifyOutputs(); final configIamWithApiKey = AmplifyConfig.fromJson( jsonDecode(amplifyconfigwithapikey) as Map, ); + // ignore: invalid_use_of_internal_member + final amplifyOutputsIamWithApiKey = configIamWithApiKey.toAmplifyOutputs(); group('AmplifyAPI plugin configuration', () { test( @@ -75,7 +80,7 @@ void main() { final plugin = AmplifyAPIDart(); await plugin.configure( authProviderRepo: authProviderRepo, - config: config, + config: amplifyOutputs, ); final apiKeyAuthProvider = authProviderRepo.getAuthProvider( APIAuthorizationType.apiKey.authProviderToken, @@ -89,7 +94,7 @@ void main() { final plugin = AmplifyAPIDart(); await plugin.configure( authProviderRepo: authProviderRepo, - config: configIamWithApiKey, + config: amplifyOutputsIamWithApiKey, ); final apiKeyAuthProvider = authProviderRepo.getAuthProvider( APIAuthorizationType.apiKey.authProviderToken, @@ -104,7 +109,7 @@ void main() { ); await plugin.configure( authProviderRepo: authProviderRepo, - config: config, + config: amplifyOutputs, ); final oidcAuthProvider = authProviderRepo .getAuthProvider(APIAuthorizationType.oidc.authProviderToken); @@ -124,7 +129,7 @@ void main() { ); await plugin.configure( authProviderRepo: authProviderRepo, - config: config, + config: amplifyOutputs, ); final functionAuthProvider = authProviderRepo .getAuthProvider(APIAuthorizationType.function.authProviderToken); @@ -143,7 +148,7 @@ void main() { ); await plugin.configure( authProviderRepo: authProviderRepo, - config: config, + config: amplifyOutputs, ); const graphQLDocument = '''query TestQuery { @@ -169,7 +174,7 @@ void main() { ); await plugin.configure( authProviderRepo: authProviderRepo, - config: config, + config: amplifyOutputs, ); await plugin.get('/items').response; diff --git a/packages/api/amplify_api_dart/test/rest_methods_test.dart b/packages/api/amplify_api_dart/test/rest_methods_test.dart index 82728ce9fe..3d3bad58fd 100644 --- a/packages/api/amplify_api_dart/test/rest_methods_test.dart +++ b/packages/api/amplify_api_dart/test/rest_methods_test.dart @@ -40,11 +40,14 @@ void main() { APIAuthorizationType.iam.authProviderToken, TestIamAuthProvider(), ); + // TODO(nikahsn): update to use AmplifyOutputs config final config = AmplifyConfig.fromJson( jsonDecode(amplifyconfig) as Map, ); + // ignore: invalid_use_of_internal_member + final amplifyOutputs = config.toAmplifyOutputs(); await apiPlugin.configure( - config: config, + config: amplifyOutputs, authProviderRepo: authProviderRepo, ); diff --git a/packages/api/amplify_api_dart/test/test_models/CustomTypeWithAppsyncScalarTypes.dart b/packages/api/amplify_api_dart/test/test_models/CustomTypeWithAppsyncScalarTypes.dart index 1152c1b48b..52dd4d8d5b 100644 --- a/packages/api/amplify_api_dart/test/test_models/CustomTypeWithAppsyncScalarTypes.dart +++ b/packages/api/amplify_api_dart/test/test_models/CustomTypeWithAppsyncScalarTypes.dart @@ -738,14 +738,17 @@ class CustomTypeWithAppsyncScalarTypes { .toList() : null, _customTypeValue = json['customTypeValue'] != null - ? SimpleCustomType.fromJson( - new Map.from(json['customTypeValue'])) + ? json['customTypeValue']['serializedData'] != null + ? SimpleCustomType.fromJson(new Map.from( + json['customTypeValue']['serializedData'])) + : SimpleCustomType.fromJson( + new Map.from(json['customTypeValue'])) : null, _listOfCustomTypeValue = json['listOfCustomTypeValue'] is List ? (json['listOfCustomTypeValue'] as List) .where((e) => e != null) - .map((e) => - SimpleCustomType.fromJson(new Map.from(e))) + .map((e) => SimpleCustomType.fromJson( + new Map.from(e['serializedData'] ?? e))) .toList() : null; diff --git a/packages/api/amplify_api_dart/test/test_models/ModelWithCustomType.dart b/packages/api/amplify_api_dart/test/test_models/ModelWithCustomType.dart index bd5099344c..8387940e6d 100644 --- a/packages/api/amplify_api_dart/test/test_models/ModelWithCustomType.dart +++ b/packages/api/amplify_api_dart/test/test_models/ModelWithCustomType.dart @@ -152,14 +152,18 @@ class ModelWithCustomType extends amplify_core.Model { ModelWithCustomType.fromJson(Map json) : id = json['id'], _customTypeValue = json['customTypeValue'] != null - ? CustomTypeWithAppsyncScalarTypes.fromJson( - new Map.from(json['customTypeValue'])) + ? json['customTypeValue']['serializedData'] != null + ? CustomTypeWithAppsyncScalarTypes.fromJson( + new Map.from( + json['customTypeValue']['serializedData'])) + : CustomTypeWithAppsyncScalarTypes.fromJson( + new Map.from(json['customTypeValue'])) : null, _listOfCustomTypeValue = json['listOfCustomTypeValue'] is List ? (json['listOfCustomTypeValue'] as List) .where((e) => e != null) .map((e) => CustomTypeWithAppsyncScalarTypes.fromJson( - new Map.from(e))) + new Map.from(e['serializedData'] ?? e))) .toList() : null, _createdAt = json['createdAt'] != null diff --git a/packages/auth/amplify_auth_cognito/CHANGELOG.md b/packages/auth/amplify_auth_cognito/CHANGELOG.md index 2a59833fdf..a3cf284181 100644 --- a/packages/auth/amplify_auth_cognito/CHANGELOG.md +++ b/packages/auth/amplify_auth_cognito/CHANGELOG.md @@ -1,3 +1,8 @@ +## 2.2.0 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 - Minor bug fixes and improvements diff --git a/packages/auth/amplify_auth_cognito/example/.gitignore b/packages/auth/amplify_auth_cognito/example/.gitignore index f03b3a8d77..f42b7a85f3 100644 --- a/packages/auth/amplify_auth_cognito/example/.gitignore +++ b/packages/auth/amplify_auth_cognito/example/.gitignore @@ -62,3 +62,5 @@ amplifytools.xcconfig .secret-* **.sample #amplify-do-not-edit-end + +amplify_outputs.dart diff --git a/packages/auth/amplify_auth_cognito/example/integration_test/sign_out_test.dart b/packages/auth/amplify_auth_cognito/example/integration_test/sign_out_test.dart index dfab6c6f43..81053ace8e 100644 --- a/packages/auth/amplify_auth_cognito/example/integration_test/sign_out_test.dart +++ b/packages/auth/amplify_auth_cognito/example/integration_test/sign_out_test.dart @@ -51,11 +51,11 @@ void main() { // ignore: invalid_use_of_internal_member final config = await Amplify.asyncConfig; - final authConfig = config.auth!.awsPlugin!.cognitoUserPool!.default$!; + final authConfig = config.auth!; client = AWSHttpClient() ..supportedProtocols = SupportedProtocols.http1; cognitoClient = cognito_idp.CognitoIdentityProviderClient( - region: authConfig.region, + region: authConfig.awsRegion, ); addTearDown(client.close); diff --git a/packages/auth/amplify_auth_cognito/lib/src/auth_plugin_impl.dart b/packages/auth/amplify_auth_cognito/lib/src/auth_plugin_impl.dart index c303fe10cb..7b9889f309 100644 --- a/packages/auth/amplify_auth_cognito/lib/src/auth_plugin_impl.dart +++ b/packages/auth/amplify_auth_cognito/lib/src/auth_plugin_impl.dart @@ -77,7 +77,7 @@ class AmplifyAuthCognito extends AmplifyAuthCognitoDart with AWSDebuggable { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { // Dependencies for AnalyticsMetadataType diff --git a/packages/auth/amplify_auth_cognito/pubspec.yaml b/packages/auth/amplify_auth_cognito/pubspec.yaml index 76d6c807b8..0ebf75b57a 100644 --- a/packages/auth/amplify_auth_cognito/pubspec.yaml +++ b/packages/auth/amplify_auth_cognito/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_auth_cognito description: The Amplify Flutter Auth category plugin using the AWS Cognito provider. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/auth/amplify_auth_cognito issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -19,12 +19,12 @@ platforms: web: dependencies: - amplify_analytics_pinpoint: ">=2.1.0 <2.2.0" - amplify_analytics_pinpoint_dart: ">=0.4.1 <0.5.0" - amplify_auth_cognito_dart: ">=0.11.1 <0.12.0" - amplify_core: ">=2.1.0 <2.2.0" - amplify_flutter: ">=2.1.0 <2.2.0" - amplify_secure_storage: ">=0.5.2 <0.6.0" + amplify_analytics_pinpoint: ">=2.2.0 <2.3.0" + amplify_analytics_pinpoint_dart: ">=0.4.2 <0.5.0" + amplify_auth_cognito_dart: ">=0.11.2 <0.12.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_flutter: ">=2.2.0 <2.3.0" + amplify_secure_storage: ">=0.5.3 <0.6.0" async: ^2.10.0 flutter: sdk: flutter diff --git a/packages/auth/amplify_auth_cognito_dart/CHANGELOG.md b/packages/auth/amplify_auth_cognito_dart/CHANGELOG.md index 74022ecf68..c3dda3b7ed 100644 --- a/packages/auth/amplify_auth_cognito_dart/CHANGELOG.md +++ b/packages/auth/amplify_auth_cognito_dart/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.11.2 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 0.11.1 - Minor bug fixes and improvements diff --git a/packages/auth/amplify_auth_cognito_dart/example/.gitignore b/packages/auth/amplify_auth_cognito_dart/example/.gitignore index 3fad10705a..ea74202396 100644 --- a/packages/auth/amplify_auth_cognito_dart/example/.gitignore +++ b/packages/auth/amplify_auth_cognito_dart/example/.gitignore @@ -28,3 +28,5 @@ amplifytools.xcconfig .secret-* **.sample #amplify-do-not-edit-end + +amplify_outputs.dart diff --git a/packages/auth/amplify_auth_cognito_dart/example/web/components/app_component.dart b/packages/auth/amplify_auth_cognito_dart/example/web/components/app_component.dart index 695ef32d79..90fe967c2d 100644 --- a/packages/auth/amplify_auth_cognito_dart/example/web/components/app_component.dart +++ b/packages/auth/amplify_auth_cognito_dart/example/web/components/app_component.dart @@ -54,7 +54,7 @@ class AppState { /// main app component class AppComponent extends StatefulComponent { AppState appState = AppState(); - late AmplifyConfig config; + late AmplifyOutputs config; String? _error; @@ -189,7 +189,7 @@ class AppComponent extends StatefulComponent { ); }, ), - if (config.auth!.awsPlugin!.auth!.default$!.oAuth != null) + if (config.auth!.oauth != null) ButtonComponent( id: 'hostedUiLogin', innerHtml: 'Login with Hosted UI', diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/auth_plugin_impl.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/auth_plugin_impl.dart index 608fd09bf0..0ebc16cec8 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/auth_plugin_impl.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/auth_plugin_impl.dart @@ -212,7 +212,7 @@ class AmplifyAuthCognitoDart extends AuthPluginInterface @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { if (config == null) { diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_confirm_user_attribute_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_confirm_user_attribute_plugin_options.g.dart index ee8636e482..7cfb2cfbdc 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_confirm_user_attribute_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_confirm_user_attribute_plugin_options.g.dart @@ -9,7 +9,14 @@ part of 'cognito_confirm_user_attribute_plugin_options.dart'; CognitoConfirmUserAttributePluginOptions _$CognitoConfirmUserAttributePluginOptionsFromJson( Map json) => - CognitoConfirmUserAttributePluginOptions(); + $checkedCreate( + 'CognitoConfirmUserAttributePluginOptions', + json, + ($checkedConvert) { + final val = CognitoConfirmUserAttributePluginOptions(); + return val; + }, + ); Map _$CognitoConfirmUserAttributePluginOptionsToJson( CognitoConfirmUserAttributePluginOptions instance) => diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_fetch_user_attributes_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_fetch_user_attributes_plugin_options.g.dart index b8d9b17024..dbafe4fb8d 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_fetch_user_attributes_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_fetch_user_attributes_plugin_options.g.dart @@ -9,7 +9,14 @@ part of 'cognito_fetch_user_attributes_plugin_options.dart'; CognitoFetchUserAttributesPluginOptions _$CognitoFetchUserAttributesPluginOptionsFromJson( Map json) => - CognitoFetchUserAttributesPluginOptions(); + $checkedCreate( + 'CognitoFetchUserAttributesPluginOptions', + json, + ($checkedConvert) { + final val = CognitoFetchUserAttributesPluginOptions(); + return val; + }, + ); Map _$CognitoFetchUserAttributesPluginOptionsToJson( CognitoFetchUserAttributesPluginOptions instance) => diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_send_user_attribute_verification_code_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_send_user_attribute_verification_code_plugin_options.g.dart index 1b681a0876..3fd5fa70f8 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_send_user_attribute_verification_code_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_send_user_attribute_verification_code_plugin_options.g.dart @@ -9,11 +9,19 @@ part of 'cognito_send_user_attribute_verification_code_plugin_options.dart'; CognitoSendUserAttributeVerificationCodePluginOptions _$CognitoSendUserAttributeVerificationCodePluginOptionsFromJson( Map json) => - CognitoSendUserAttributeVerificationCodePluginOptions( - clientMetadata: - (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), + $checkedCreate( + 'CognitoSendUserAttributeVerificationCodePluginOptions', + json, + ($checkedConvert) { + final val = CognitoSendUserAttributeVerificationCodePluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + ); + return val; + }, ); Map diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_update_user_attribute_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_update_user_attribute_plugin_options.g.dart index c04dd58504..ef3097f86f 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_update_user_attribute_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_update_user_attribute_plugin_options.g.dart @@ -9,11 +9,19 @@ part of 'cognito_update_user_attribute_plugin_options.dart'; CognitoUpdateUserAttributePluginOptions _$CognitoUpdateUserAttributePluginOptionsFromJson( Map json) => - CognitoUpdateUserAttributePluginOptions( - clientMetadata: - (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), + $checkedCreate( + 'CognitoUpdateUserAttributePluginOptions', + json, + ($checkedConvert) { + final val = CognitoUpdateUserAttributePluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + ); + return val; + }, ); Map _$CognitoUpdateUserAttributePluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_update_user_attributes_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_update_user_attributes_plugin_options.g.dart index 26089c86b2..d18072732d 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_update_user_attributes_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/attribute/cognito_update_user_attributes_plugin_options.g.dart @@ -9,11 +9,19 @@ part of 'cognito_update_user_attributes_plugin_options.dart'; CognitoUpdateUserAttributesPluginOptions _$CognitoUpdateUserAttributesPluginOptionsFromJson( Map json) => - CognitoUpdateUserAttributesPluginOptions( - clientMetadata: - (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), + $checkedCreate( + 'CognitoUpdateUserAttributesPluginOptions', + json, + ($checkedConvert) { + final val = CognitoUpdateUserAttributesPluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + ); + return val; + }, ); Map _$CognitoUpdateUserAttributesPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/auth_configuration.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/auth_configuration.dart index 74bdd1831a..ca3d3f52bb 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/auth_configuration.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/auth_configuration.dart @@ -10,6 +10,8 @@ import 'package:meta/meta.dart'; /// {@template amplify_auth_cognito.auth_configuration} /// Union class for auth configurations of the different types. /// {@endtemplate} + +// TODO(nikahsn): refactor AuthConfiguration to not use AmplifyConfig types class AuthConfiguration with AWSEquatable { const AuthConfiguration._({ this.userPoolConfig, @@ -18,6 +20,56 @@ class AuthConfiguration with AWSEquatable { this.pinpointConfig, }); + /// Parses [amplifyOutputs] into the appropriate [AuthConfiguration] type. + /// + /// {@macro amplify_auth_cognito.auth_configuration} + factory AuthConfiguration.fromAmplifyOutputs(AmplifyOutputs amplifyOutputs) { + final authOutputs = amplifyOutputs.auth; + if (authOutputs == null) { + throw ConfigurationError( + 'Invalid config: No Auth config found', + ); + } + CognitoUserPoolConfig? userPoolConfig; + if (authOutputs.userPoolId != null && + authOutputs.userPoolClientId != null) { + // ignore: invalid_use_of_internal_member + userPoolConfig = CognitoUserPoolConfig.fromAuthOutputs(authOutputs); + } + CognitoIdentityCredentialsProvider? identityPoolConfig; + if (authOutputs.identityPoolId != null) { + identityPoolConfig = CognitoIdentityCredentialsProvider( + poolId: authOutputs.identityPoolId!, + region: authOutputs.awsRegion, + ); + } + CognitoOAuthConfig? hostedUiConfig; + if (authOutputs.userPoolClientId != null && authOutputs.oauth != null) { + // ignore: invalid_use_of_internal_member + hostedUiConfig = CognitoOAuthConfig.fromAuthOutputs(authOutputs); + } + if (userPoolConfig == null && + identityPoolConfig == null && + hostedUiConfig == null) { + throw ConfigurationError( + 'Invalid config: No user pool or identity pool found', + ); + } + CognitoPinpointAnalyticsConfig? pinpointConfig; + if (amplifyOutputs.analytics?.amazonPinpoint != null) { + pinpointConfig = CognitoPinpointAnalyticsConfig( + appId: amplifyOutputs.analytics!.amazonPinpoint!.appId, + region: amplifyOutputs.analytics!.amazonPinpoint!.awsRegion, + ); + } + return AuthConfiguration._( + userPoolConfig: userPoolConfig, + identityPoolConfig: identityPoolConfig, + hostedUiConfig: hostedUiConfig, + pinpointConfig: pinpointConfig, + ); + } + /// Parses [config] into the appropriate [AuthConfiguration] type. /// /// {@macro amplify_auth_cognito.auth_configuration} diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/mfa/cognito_verify_totp_setup_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/mfa/cognito_verify_totp_setup_plugin_options.g.dart index 3b89501e07..8960279098 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/mfa/cognito_verify_totp_setup_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/mfa/cognito_verify_totp_setup_plugin_options.g.dart @@ -8,8 +8,16 @@ part of 'cognito_verify_totp_setup_plugin_options.dart'; CognitoVerifyTotpSetupPluginOptions _$CognitoVerifyTotpSetupPluginOptionsFromJson(Map json) => - CognitoVerifyTotpSetupPluginOptions( - friendlyDeviceName: json['friendlyDeviceName'] as String?, + $checkedCreate( + 'CognitoVerifyTotpSetupPluginOptions', + json, + ($checkedConvert) { + final val = CognitoVerifyTotpSetupPluginOptions( + friendlyDeviceName: + $checkedConvert('friendlyDeviceName', (v) => v as String?), + ); + return val; + }, ); Map _$CognitoVerifyTotpSetupPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_confirm_reset_password_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_confirm_reset_password_plugin_options.g.dart index 465c48282f..59289f61da 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_confirm_reset_password_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_confirm_reset_password_plugin_options.g.dart @@ -9,11 +9,19 @@ part of 'cognito_confirm_reset_password_plugin_options.dart'; CognitoConfirmResetPasswordPluginOptions _$CognitoConfirmResetPasswordPluginOptionsFromJson( Map json) => - CognitoConfirmResetPasswordPluginOptions( - clientMetadata: - (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), + $checkedCreate( + 'CognitoConfirmResetPasswordPluginOptions', + json, + ($checkedConvert) { + final val = CognitoConfirmResetPasswordPluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + ); + return val; + }, ); Map _$CognitoConfirmResetPasswordPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_reset_password_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_reset_password_plugin_options.g.dart index e2b6b6958d..9c50b24837 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_reset_password_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_reset_password_plugin_options.g.dart @@ -8,10 +8,19 @@ part of 'cognito_reset_password_plugin_options.dart'; CognitoResetPasswordPluginOptions _$CognitoResetPasswordPluginOptionsFromJson( Map json) => - CognitoResetPasswordPluginOptions( - clientMetadata: (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), + $checkedCreate( + 'CognitoResetPasswordPluginOptions', + json, + ($checkedConvert) { + final val = CognitoResetPasswordPluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + ); + return val; + }, ); Map _$CognitoResetPasswordPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_reset_password_result.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_reset_password_result.g.dart index 9ccfbe8682..3994d0e9e2 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_reset_password_result.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_reset_password_result.g.dart @@ -8,10 +8,17 @@ part of 'cognito_reset_password_result.dart'; CognitoResetPasswordResult _$CognitoResetPasswordResultFromJson( Map json) => - CognitoResetPasswordResult( - isPasswordReset: json['isPasswordReset'] as bool, - nextStep: - ResetPasswordStep.fromJson(json['nextStep'] as Map), + $checkedCreate( + 'CognitoResetPasswordResult', + json, + ($checkedConvert) { + final val = CognitoResetPasswordResult( + isPasswordReset: $checkedConvert('isPasswordReset', (v) => v as bool), + nextStep: $checkedConvert('nextStep', + (v) => ResetPasswordStep.fromJson(v as Map)), + ); + return val; + }, ); Map _$CognitoResetPasswordResultToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_update_password_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_update_password_plugin_options.g.dart index b01231b189..133e8125fe 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_update_password_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/password/cognito_update_password_plugin_options.g.dart @@ -8,7 +8,14 @@ part of 'cognito_update_password_plugin_options.dart'; CognitoUpdatePasswordPluginOptions _$CognitoUpdatePasswordPluginOptionsFromJson( Map json) => - CognitoUpdatePasswordPluginOptions(); + $checkedCreate( + 'CognitoUpdatePasswordPluginOptions', + json, + ($checkedConvert) { + final val = CognitoUpdatePasswordPluginOptions(); + return val; + }, + ); Map _$CognitoUpdatePasswordPluginOptionsToJson( CognitoUpdatePasswordPluginOptions instance) => diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_auth_user.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_auth_user.g.dart index 5ab047f36d..1c65f38ca2 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_auth_user.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_auth_user.g.dart @@ -7,11 +7,18 @@ part of 'cognito_auth_user.dart'; // ************************************************************************** CognitoAuthUser _$CognitoAuthUserFromJson(Map json) => - CognitoAuthUser( - userId: json['userId'] as String, - username: json['username'] as String, - signInDetails: CognitoSignInDetails.fromJson( - json['signInDetails'] as Map), + $checkedCreate( + 'CognitoAuthUser', + json, + ($checkedConvert) { + final val = CognitoAuthUser( + userId: $checkedConvert('userId', (v) => v as String), + username: $checkedConvert('username', (v) => v as String), + signInDetails: $checkedConvert('signInDetails', + (v) => CognitoSignInDetails.fromJson(v as Map)), + ); + return val; + }, ); Map _$CognitoAuthUserToJson(CognitoAuthUser instance) => diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_fetch_auth_session_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_fetch_auth_session_plugin_options.g.dart index 7a499ab8c5..877f68e0de 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_fetch_auth_session_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_fetch_auth_session_plugin_options.g.dart @@ -8,7 +8,14 @@ part of 'cognito_fetch_auth_session_plugin_options.dart'; CognitoFetchAuthSessionPluginOptions _$CognitoFetchAuthSessionPluginOptionsFromJson(Map json) => - CognitoFetchAuthSessionPluginOptions(); + $checkedCreate( + 'CognitoFetchAuthSessionPluginOptions', + json, + ($checkedConvert) { + final val = CognitoFetchAuthSessionPluginOptions(); + return val; + }, + ); Map _$CognitoFetchAuthSessionPluginOptionsToJson( CognitoFetchAuthSessionPluginOptions instance) => diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_get_current_user_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_get_current_user_plugin_options.g.dart index 4d6fbc8752..1fa04ec718 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_get_current_user_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_get_current_user_plugin_options.g.dart @@ -8,7 +8,14 @@ part of 'cognito_get_current_user_plugin_options.dart'; CognitoGetCurrentUserPluginOptions _$CognitoGetCurrentUserPluginOptionsFromJson( Map json) => - CognitoGetCurrentUserPluginOptions(); + $checkedCreate( + 'CognitoGetCurrentUserPluginOptions', + json, + ($checkedConvert) { + final val = CognitoGetCurrentUserPluginOptions(); + return val; + }, + ); Map _$CognitoGetCurrentUserPluginOptionsToJson( CognitoGetCurrentUserPluginOptions instance) => diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_sign_in_details.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_sign_in_details.g.dart index 0e7a88de9d..ee8064d2d8 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_sign_in_details.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_sign_in_details.g.dart @@ -34,10 +34,19 @@ final BuiltSet _$CognitoSignInMethodValues = CognitoSignInDetailsApiBased _$CognitoSignInDetailsApiBasedFromJson( Map json) => - CognitoSignInDetailsApiBased( - username: json['username'] as String, - authFlowType: _$JsonConverterFromJson( - json['authFlowType'], const _AuthFlowTypeSerializer().fromJson), + $checkedCreate( + 'CognitoSignInDetailsApiBased', + json, + ($checkedConvert) { + final val = CognitoSignInDetailsApiBased( + username: $checkedConvert('username', (v) => v as String), + authFlowType: $checkedConvert( + 'authFlowType', + (v) => _$JsonConverterFromJson( + v, const _AuthFlowTypeSerializer().fromJson)), + ); + return val; + }, ); Map _$CognitoSignInDetailsApiBasedToJson( @@ -73,10 +82,19 @@ Json? _$JsonConverterToJson( CognitoSignInDetailsHostedUi _$CognitoSignInDetailsHostedUiFromJson( Map json) => - CognitoSignInDetailsHostedUi( - provider: json['provider'] == null - ? null - : AuthProvider.fromJson(json['provider'] as Map), + $checkedCreate( + 'CognitoSignInDetailsHostedUi', + json, + ($checkedConvert) { + final val = CognitoSignInDetailsHostedUi( + provider: $checkedConvert( + 'provider', + (v) => v == null + ? null + : AuthProvider.fromJson(v as Map)), + ); + return val; + }, ); Map _$CognitoSignInDetailsHostedUiToJson( @@ -95,9 +113,17 @@ Map _$CognitoSignInDetailsHostedUiToJson( CognitoSignInDetailsFederated _$CognitoSignInDetailsFederatedFromJson( Map json) => - CognitoSignInDetailsFederated( - token: json['token'] as String, - provider: AuthProvider.fromJson(json['provider'] as Map), + $checkedCreate( + 'CognitoSignInDetailsFederated', + json, + ($checkedConvert) { + final val = CognitoSignInDetailsFederated( + token: $checkedConvert('token', (v) => v as String), + provider: $checkedConvert('provider', + (v) => AuthProvider.fromJson(v as Map)), + ); + return val; + }, ); Map _$CognitoSignInDetailsFederatedToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_user_pool_tokens.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_user_pool_tokens.g.dart index 90126b1443..cb043c9fe2 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_user_pool_tokens.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/cognito_user_pool_tokens.g.dart @@ -142,16 +142,25 @@ class CognitoUserPoolTokensBuilder CognitoUserPoolTokens _$CognitoUserPoolTokensFromJson( Map json) => - CognitoUserPoolTokens( - signInMethod: json['signInMethod'] == null - ? CognitoSignInMethod.default$ - : const _CognitoSignInMethodSerializer() - .fromJson(json['signInMethod'] as String), - accessToken: const _JsonWebTokenSerializer() - .fromJson(json['accessToken'] as String), - refreshToken: json['refreshToken'] as String, - idToken: - const _JsonWebTokenSerializer().fromJson(json['idToken'] as String), + $checkedCreate( + 'CognitoUserPoolTokens', + json, + ($checkedConvert) { + final val = CognitoUserPoolTokens( + signInMethod: $checkedConvert( + 'signInMethod', + (v) => v == null + ? CognitoSignInMethod.default$ + : const _CognitoSignInMethodSerializer() + .fromJson(v as String)), + accessToken: $checkedConvert('accessToken', + (v) => const _JsonWebTokenSerializer().fromJson(v as String)), + refreshToken: $checkedConvert('refreshToken', (v) => v as String), + idToken: $checkedConvert('idToken', + (v) => const _JsonWebTokenSerializer().fromJson(v as String)), + ); + return val; + }, ); Map _$CognitoUserPoolTokensToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_options.g.dart index 921e51c183..74de29c120 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_options.g.dart @@ -8,9 +8,16 @@ part of 'federate_to_identity_pool_options.dart'; FederateToIdentityPoolOptions _$FederateToIdentityPoolOptionsFromJson( Map json) => - FederateToIdentityPoolOptions( - developerProvidedIdentityId: - json['developerProvidedIdentityId'] as String?, + $checkedCreate( + 'FederateToIdentityPoolOptions', + json, + ($checkedConvert) { + final val = FederateToIdentityPoolOptions( + developerProvidedIdentityId: $checkedConvert( + 'developerProvidedIdentityId', (v) => v as String?), + ); + return val; + }, ); Map _$FederateToIdentityPoolOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_request.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_request.g.dart index fb806fa847..e8668ad2e1 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_request.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_request.g.dart @@ -8,13 +8,23 @@ part of 'federate_to_identity_pool_request.dart'; FederateToIdentityPoolRequest _$FederateToIdentityPoolRequestFromJson( Map json) => - FederateToIdentityPoolRequest( - token: json['token'] as String, - provider: _authProviderFromJson(json['provider'] as String), - options: json['options'] == null - ? null - : FederateToIdentityPoolOptions.fromJson( - json['options'] as Map), + $checkedCreate( + 'FederateToIdentityPoolRequest', + json, + ($checkedConvert) { + final val = FederateToIdentityPoolRequest( + token: $checkedConvert('token', (v) => v as String), + provider: $checkedConvert( + 'provider', (v) => _authProviderFromJson(v as String)), + options: $checkedConvert( + 'options', + (v) => v == null + ? null + : FederateToIdentityPoolOptions.fromJson( + v as Map)), + ); + return val; + }, ); Map _$FederateToIdentityPoolRequestToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_result.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_result.g.dart index 930a452720..082ac6ece4 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_result.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/session/federate_to_identity_pool_result.g.dart @@ -8,10 +8,17 @@ part of 'federate_to_identity_pool_result.dart'; FederateToIdentityPoolResult _$FederateToIdentityPoolResultFromJson( Map json) => - FederateToIdentityPoolResult( - identityId: json['identityId'] as String, - credentials: - AWSCredentials.fromJson(json['credentials'] as Map), + $checkedCreate( + 'FederateToIdentityPoolResult', + json, + ($checkedConvert) { + final val = FederateToIdentityPoolResult( + identityId: $checkedConvert('identityId', (v) => v as String), + credentials: $checkedConvert('credentials', + (v) => AWSCredentials.fromJson(v as Map)), + ); + return val; + }, ); Map _$FederateToIdentityPoolResultToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_confirm_sign_in_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_confirm_sign_in_plugin_options.g.dart index a4479535f3..ca2f11b894 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_confirm_sign_in_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_confirm_sign_in_plugin_options.g.dart @@ -8,14 +8,26 @@ part of 'cognito_confirm_sign_in_plugin_options.dart'; CognitoConfirmSignInPluginOptions _$CognitoConfirmSignInPluginOptionsFromJson( Map json) => - CognitoConfirmSignInPluginOptions( - clientMetadata: (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), - userAttributes: _$JsonConverterFromJson, - Map>(json['userAttributes'], - const CognitoUserAttributeMapConverter().fromJson), - friendlyDeviceName: json['friendlyDeviceName'] as String?, + $checkedCreate( + 'CognitoConfirmSignInPluginOptions', + json, + ($checkedConvert) { + final val = CognitoConfirmSignInPluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + userAttributes: $checkedConvert( + 'userAttributes', + (v) => _$JsonConverterFromJson, + Map>( + v, const CognitoUserAttributeMapConverter().fromJson)), + friendlyDeviceName: + $checkedConvert('friendlyDeviceName', (v) => v as String?), + ); + return val; + }, ); Map _$CognitoConfirmSignInPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_sign_in_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_sign_in_plugin_options.g.dart index 7cf95cfd65..f2bb4c3c05 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_sign_in_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_sign_in_plugin_options.g.dart @@ -8,13 +8,23 @@ part of 'cognito_sign_in_plugin_options.dart'; CognitoSignInPluginOptions _$CognitoSignInPluginOptionsFromJson( Map json) => - CognitoSignInPluginOptions( - authFlowType: $enumDecodeNullable( - _$AuthenticationFlowTypeEnumMap, json['authFlowType']), - clientMetadata: (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ) ?? - const {}, + $checkedCreate( + 'CognitoSignInPluginOptions', + json, + ($checkedConvert) { + final val = CognitoSignInPluginOptions( + authFlowType: $checkedConvert('authFlowType', + (v) => $enumDecodeNullable(_$AuthenticationFlowTypeEnumMap, v)), + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => + (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + ) ?? + const {}), + ); + return val; + }, ); Map _$CognitoSignInPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_sign_in_with_web_ui_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_sign_in_with_web_ui_plugin_options.g.dart index 8e3f5a0ea1..3ebc7c5915 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_sign_in_with_web_ui_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signin/cognito_sign_in_with_web_ui_plugin_options.g.dart @@ -8,10 +8,18 @@ part of 'cognito_sign_in_with_web_ui_plugin_options.dart'; CognitoSignInWithWebUIPluginOptions _$CognitoSignInWithWebUIPluginOptionsFromJson(Map json) => - CognitoSignInWithWebUIPluginOptions( - isPreferPrivateSession: - json['isPreferPrivateSession'] as bool? ?? false, - browserPackageName: json['browserPackageName'] as String?, + $checkedCreate( + 'CognitoSignInWithWebUIPluginOptions', + json, + ($checkedConvert) { + final val = CognitoSignInWithWebUIPluginOptions( + isPreferPrivateSession: $checkedConvert( + 'isPreferPrivateSession', (v) => v as bool? ?? false), + browserPackageName: + $checkedConvert('browserPackageName', (v) => v as String?), + ); + return val; + }, ); Map _$CognitoSignInWithWebUIPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signout/cognito_sign_out_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signout/cognito_sign_out_plugin_options.g.dart index f953473a16..efc6803763 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signout/cognito_sign_out_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signout/cognito_sign_out_plugin_options.g.dart @@ -8,7 +8,14 @@ part of 'cognito_sign_out_plugin_options.dart'; CognitoSignOutPluginOptions _$CognitoSignOutPluginOptionsFromJson( Map json) => - CognitoSignOutPluginOptions(); + $checkedCreate( + 'CognitoSignOutPluginOptions', + json, + ($checkedConvert) { + final val = CognitoSignOutPluginOptions(); + return val; + }, + ); Map _$CognitoSignOutPluginOptionsToJson( CognitoSignOutPluginOptions instance) => diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_confirm_sign_up_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_confirm_sign_up_plugin_options.g.dart index 8543e48d40..71f2c82488 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_confirm_sign_up_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_confirm_sign_up_plugin_options.g.dart @@ -8,11 +8,21 @@ part of 'cognito_confirm_sign_up_plugin_options.dart'; CognitoConfirmSignUpPluginOptions _$CognitoConfirmSignUpPluginOptionsFromJson( Map json) => - CognitoConfirmSignUpPluginOptions( - clientMetadata: (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ) ?? - const {}, + $checkedCreate( + 'CognitoConfirmSignUpPluginOptions', + json, + ($checkedConvert) { + final val = CognitoConfirmSignUpPluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => + (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + ) ?? + const {}), + ); + return val; + }, ); Map _$CognitoConfirmSignUpPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_resend_sign_up_code_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_resend_sign_up_code_plugin_options.g.dart index 5eb703ce57..626dc10535 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_resend_sign_up_code_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_resend_sign_up_code_plugin_options.g.dart @@ -8,12 +8,21 @@ part of 'cognito_resend_sign_up_code_plugin_options.dart'; CognitoResendSignUpCodePluginOptions _$CognitoResendSignUpCodePluginOptionsFromJson(Map json) => - CognitoResendSignUpCodePluginOptions( - clientMetadata: - (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ) ?? - const {}, + $checkedCreate( + 'CognitoResendSignUpCodePluginOptions', + json, + ($checkedConvert) { + final val = CognitoResendSignUpCodePluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => + (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + ) ?? + const {}), + ); + return val; + }, ); Map _$CognitoResendSignUpCodePluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_sign_up_plugin_options.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_sign_up_plugin_options.g.dart index 109e8dff92..1e20a391f2 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_sign_up_plugin_options.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/model/signup/cognito_sign_up_plugin_options.g.dart @@ -8,13 +8,24 @@ part of 'cognito_sign_up_plugin_options.dart'; CognitoSignUpPluginOptions _$CognitoSignUpPluginOptionsFromJson( Map json) => - CognitoSignUpPluginOptions( - clientMetadata: (json['clientMetadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), - validationData: (json['validationData'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ), + $checkedCreate( + 'CognitoSignUpPluginOptions', + json, + ($checkedConvert) { + final val = CognitoSignUpPluginOptions( + clientMetadata: $checkedConvert( + 'clientMetadata', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + validationData: $checkedConvert( + 'validationData', + (v) => (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + )), + ); + return val; + }, ); Map _$CognitoSignUpPluginOptionsToJson( diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/state/event/configuration_event.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/state/event/configuration_event.dart index a576c1f790..d12d0fe724 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/state/event/configuration_event.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/state/event/configuration_event.dart @@ -22,11 +22,11 @@ sealed class ConfigurationEvent const ConfigurationEvent._(); /// {@macro amplify_auth_cognito.configuration_event.configure} - const factory ConfigurationEvent.configure(AmplifyConfig config) = Configure; + const factory ConfigurationEvent.configure(AmplifyOutputs config) = Configure; /// {@macro amplify_auth_cognito.configuration_event.configure_succeeded} const factory ConfigurationEvent.configureSucceeded( - CognitoPluginConfig config, + AmplifyOutputs config, ) = ConfigureSucceeded; @override @@ -45,7 +45,7 @@ final class Configure extends ConfigurationEvent { const Configure(this.config) : super._(); /// The user's Amplify configuration. - final AmplifyConfig config; + final AmplifyOutputs config; @override ConfigurationEventType get type => ConfigurationEventType.configure; @@ -79,7 +79,7 @@ final class ConfigureSucceeded extends ConfigurationEvent { const ConfigureSucceeded(this.config) : super._(); /// The Cognito plugin configuration. - final CognitoPluginConfig config; + final AmplifyOutputs config; @override ConfigurationEventType get type => ConfigurationEventType.configureSucceeded; diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/configuration_state_machine.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/configuration_state_machine.dart index 80632a62e9..af8eaabb55 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/configuration_state_machine.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/configuration_state_machine.dart @@ -64,12 +64,12 @@ final class ConfigurationStateMachine /// State machine callback for the [Configure] event. Future onConfigure(Configure event) async { - final cognitoConfig = event.config.auth?.awsPlugin; - if (cognitoConfig == null) { + final authOutputs = event.config.auth; + if (authOutputs == null) { throw ConfigurationError('No Cognito plugin config available'); } - addInstance(cognitoConfig); - final config = AuthConfiguration.fromConfig(cognitoConfig); + addInstance(authOutputs); + final config = AuthConfiguration.fromAmplifyOutputs(event.config); addInstance(config); final waiters = >[]; @@ -107,14 +107,14 @@ final class ConfigurationStateMachine waiters.add(manager.loadCredentials()); - await _waitForConfiguration(cognitoConfig, waiters); + await _waitForConfiguration(event.config, waiters); // Setup AnalyticsMetadataType await _registerAnalyticsMetadata(config); } Future _waitForConfiguration( - CognitoPluginConfig config, + AmplifyOutputs config, List> futures, ) async { await Future.wait(futures, eagerError: true); diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/state/state/auth_state.g.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/state/state/auth_state.g.dart index 6e6f1f62ef..8087e4b411 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/state/state/auth_state.g.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/state/state/auth_state.g.dart @@ -7,20 +7,30 @@ part of 'auth_state.dart'; // ************************************************************************** CredentialStoreData _$CredentialStoreDataFromJson(Map json) => - CredentialStoreData( - identityId: json['identityId'] as String?, - awsCredentials: json['awsCredentials'] == null - ? null - : AWSCredentials.fromJson( - json['awsCredentials'] as Map), - userPoolTokens: json['userPoolTokens'] == null - ? null - : CognitoUserPoolTokens.fromJson( - json['userPoolTokens'] as Map), - signInDetails: json['signInDetails'] == null - ? null - : CognitoSignInDetails.fromJson( - json['signInDetails'] as Map), + $checkedCreate( + 'CredentialStoreData', + json, + ($checkedConvert) { + final val = CredentialStoreData( + identityId: $checkedConvert('identityId', (v) => v as String?), + awsCredentials: $checkedConvert( + 'awsCredentials', + (v) => v == null + ? null + : AWSCredentials.fromJson(v as Map)), + userPoolTokens: $checkedConvert( + 'userPoolTokens', + (v) => v == null + ? null + : CognitoUserPoolTokens.fromJson(v as Map)), + signInDetails: $checkedConvert( + 'signInDetails', + (v) => v == null + ? null + : CognitoSignInDetails.fromJson(v as Map)), + ); + return val; + }, ); Map _$CredentialStoreDataToJson(CredentialStoreData instance) { diff --git a/packages/auth/amplify_auth_cognito_dart/lib/src/state/state/configuration_state.dart b/packages/auth/amplify_auth_cognito_dart/lib/src/state/state/configuration_state.dart index ade718ee38..7a1a074ebf 100644 --- a/packages/auth/amplify_auth_cognito_dart/lib/src/state/state/configuration_state.dart +++ b/packages/auth/amplify_auth_cognito_dart/lib/src/state/state/configuration_state.dart @@ -34,7 +34,7 @@ sealed class ConfigurationState extends AuthState { const factory ConfigurationState.configuring() = Configuring; /// {@macro amplify_auth_cognito.configuration_state.configured} - const factory ConfigurationState.configured(CognitoPluginConfig config) = + const factory ConfigurationState.configured(AmplifyOutputs config) = Configured; /// {@macro amplify_auth_cognito.configuration_state.configure_failure} @@ -83,7 +83,7 @@ final class Configured extends ConfigurationState with SuccessState { const Configured(this.config); /// The configured plugin config. - final CognitoPluginConfig config; + final AmplifyOutputs config; @override ConfigurationStateType get type => ConfigurationStateType.configured; diff --git a/packages/auth/amplify_auth_cognito_dart/pubspec.yaml b/packages/auth/amplify_auth_cognito_dart/pubspec.yaml index 46949761b4..cad6206142 100644 --- a/packages/auth/amplify_auth_cognito_dart/pubspec.yaml +++ b/packages/auth/amplify_auth_cognito_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_auth_cognito_dart description: A Dart-only implementation of the Amplify Auth plugin for Cognito. -version: 0.11.1 +version: 0.11.2 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/next/packages/auth/amplify_auth_cognito_dart issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -9,8 +9,8 @@ environment: sdk: ^3.3.0 dependencies: - amplify_analytics_pinpoint_dart: ">=0.4.1 <0.5.0" - amplify_core: ">=2.1.0 <2.2.0" + amplify_analytics_pinpoint_dart: ">=0.4.2 <0.5.0" + amplify_core: ">=2.2.0 <2.3.0" amplify_secure_storage_dart: ">=0.5.0 <0.6.0" async: ^2.10.0 aws_common: ">=0.7.0 <0.8.0" diff --git a/packages/auth/amplify_auth_cognito_test/lib/common/mock_config.dart b/packages/auth/amplify_auth_cognito_test/lib/common/mock_config.dart index 41871af7f5..e0ebba2771 100644 --- a/packages/auth/amplify_auth_cognito_test/lib/common/mock_config.dart +++ b/packages/auth/amplify_auth_cognito_test/lib/common/mock_config.dart @@ -25,7 +25,7 @@ const hostedUiConfig = CognitoOAuthConfig( signOutRedirectUri: redirectUri, webDomain: webDomain, ); - +// TODO(nikahsn): update to use AmplifyOutputs config final userPoolOnlyConfig = AmplifyConfig( auth: AuthConfig.cognito( userPoolConfig: const CognitoUserPoolConfig( @@ -34,7 +34,8 @@ final userPoolOnlyConfig = AmplifyConfig( region: testRegion, ), ), -); +).toAmplifyOutputs(); + final mockConfig = AmplifyConfig( auth: AuthConfig.cognito( userPoolConfig: const CognitoUserPoolConfig( @@ -48,7 +49,7 @@ final mockConfig = AmplifyConfig( ), hostedUiConfig: hostedUiConfig, ), -); +).toAmplifyOutputs(); final mockConfigWithPinpoint = AmplifyConfig( auth: AuthConfig.cognito( @@ -57,12 +58,17 @@ final mockConfigWithPinpoint = AmplifyConfig( appClientId: testAppClientId, region: testRegion, ), - pinpointAnalyticsConfig: const CognitoPinpointAnalyticsConfig( - appId: testPinpointAppId, - region: testRegion, - ), ), -); + analytics: const AnalyticsConfig( + plugins: { + 'awsPinpointAnalyticsPlugin': PinpointPluginConfig( + pinpointAnalytics: + PinpointAnalytics(appId: testPinpointAppId, region: testRegion), + pinpointTargeting: PinpointTargeting(region: testRegion), + ), + }, + ), +).toAmplifyOutputs(); final accessToken = JsonWebToken( header: const JsonWebHeader(algorithm: Algorithm.hmacSha256), @@ -98,7 +104,7 @@ const deviceKey = 'deviceKey'; const deviceGroupKey = 'deviceGroupKey'; const devicePassword = 'devicePassword'; -final authConfig = AuthConfiguration.fromConfig(mockConfig.auth!.awsPlugin!); +final authConfig = AuthConfiguration.fromAmplifyOutputs(mockConfig); final userPoolConfig = authConfig.userPoolConfig!; final identityPoolConfig = authConfig.identityPoolConfig!; final userPoolKeys = CognitoUserPoolKeys(userPoolConfig); diff --git a/packages/auth/amplify_auth_cognito_test/test/plugin/delete_user_test.dart b/packages/auth/amplify_auth_cognito_test/test/plugin/delete_user_test.dart index 6cafea2ffc..4fb4fdf006 100644 --- a/packages/auth/amplify_auth_cognito_test/test/plugin/delete_user_test.dart +++ b/packages/auth/amplify_auth_cognito_test/test/plugin/delete_user_test.dart @@ -20,7 +20,7 @@ import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart'; import 'package:test/test.dart'; void main() { - final authConfig = AuthConfiguration.fromConfig(mockConfig.auth!.awsPlugin!); + final authConfig = AuthConfiguration.fromAmplifyOutputs(mockConfig); final userPoolConfig = authConfig.userPoolConfig!; final identityPoolConfig = authConfig.identityPoolConfig!; final userPoolKeys = CognitoUserPoolKeys(userPoolConfig); diff --git a/packages/auth/amplify_auth_cognito_test/test/plugin/reset_password_test.dart b/packages/auth/amplify_auth_cognito_test/test/plugin/reset_password_test.dart index 48e543f073..d1d4ebe6e1 100644 --- a/packages/auth/amplify_auth_cognito_test/test/plugin/reset_password_test.dart +++ b/packages/auth/amplify_auth_cognito_test/test/plugin/reset_password_test.dart @@ -17,7 +17,7 @@ import 'package:test/test.dart'; // Follows resetPassword test cases: // https://github.com/aws-amplify/amplify-android/tree/main/aws-auth-cognito/src/test/resources/feature-test/testsuites/resetPassword void main() { - final authConfig = AuthConfiguration.fromConfig(mockConfig.auth!.awsPlugin!); + final authConfig = AuthConfiguration.fromAmplifyOutputs(mockConfig); final userPoolConfig = authConfig.userPoolConfig!; final identityPoolConfig = authConfig.identityPoolConfig!; final userPoolKeys = CognitoUserPoolKeys(userPoolConfig); diff --git a/packages/auth/amplify_auth_cognito_test/test/state/configuration_state_machine_test.dart b/packages/auth/amplify_auth_cognito_test/test/state/configuration_state_machine_test.dart index f707d9a2dc..83725d0003 100644 --- a/packages/auth/amplify_auth_cognito_test/test/state/configuration_state_machine_test.dart +++ b/packages/auth/amplify_auth_cognito_test/test/state/configuration_state_machine_test.dart @@ -13,7 +13,7 @@ import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart'; import 'package:stream_transform/stream_transform.dart'; import 'package:test/test.dart'; -const badConfig = AmplifyConfig(); +const badConfig = AmplifyOutputs(version: '1'); void main() { late CognitoAuthStateMachine stateMachine; diff --git a/packages/auth/amplify_auth_cognito_test/test/state/fetch_auth_session_state_machine_test.dart b/packages/auth/amplify_auth_cognito_test/test/state/fetch_auth_session_state_machine_test.dart index 896aa0c0e4..93acde47d4 100644 --- a/packages/auth/amplify_auth_cognito_test/test/state/fetch_auth_session_state_machine_test.dart +++ b/packages/auth/amplify_auth_cognito_test/test/state/fetch_auth_session_state_machine_test.dart @@ -20,7 +20,7 @@ void main() { group('FetchAuthSessionStateMachine', () { late CognitoAuthStateMachine stateMachine; late SecureStorageInterface secureStorage; - late AmplifyConfig config; + late AmplifyOutputs config; late CognitoAuthSession session; final newAccessToken = createJwt( @@ -46,7 +46,7 @@ void main() { const newAccessKeyId = 'newAccessKeyId'; const newSecretAccessKey = 'newSecretAccessKey'; - Future configureAmplify(AmplifyConfig config) async { + Future configureAmplify(AmplifyOutputs config) async { stateMachine.dispatch(ConfigurationEvent.configure(config)).ignore(); await stateMachine.stream.whereType().first; } diff --git a/packages/authenticator/amplify_authenticator/CHANGELOG.md b/packages/authenticator/amplify_authenticator/CHANGELOG.md index e4565d9ce9..11c19ed43d 100644 --- a/packages/authenticator/amplify_authenticator/CHANGELOG.md +++ b/packages/authenticator/amplify_authenticator/CHANGELOG.md @@ -1,3 +1,8 @@ +## 2.1.0 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.0.1 - Minor bug fixes and improvements diff --git a/packages/authenticator/amplify_authenticator/README.md b/packages/authenticator/amplify_authenticator/README.md index 2b7ceda882..ed2e7b527d 100644 --- a/packages/authenticator/amplify_authenticator/README.md +++ b/packages/authenticator/amplify_authenticator/README.md @@ -12,9 +12,9 @@ To get started, add the Authenticator to a project which has the [Auth category] ```yaml dependencies: - amplify_auth_cognito: ^1.0.0 - amplify_authenticator: ^1.0.0 - amplify_flutter: ^1.0.0 + amplify_auth_cognito: ^2.0.0 + amplify_authenticator: ^2.0.0 + amplify_flutter: ^2.0.0 ``` Then, wrap your app's logged in component with an `Authenticator` widget, and you're good to go. You can use the `SignOutButton` to sign out the user from anywhere in your app. @@ -27,7 +27,7 @@ import 'package:amplify_authenticator/amplify_authenticator.dart'; import 'package:amplify_flutter/amplify_flutter.dart'; import 'package:flutter/material.dart'; -import 'amplifyconfiguration.dart'; +import 'amplify_outputs.dart'; void main() { runApp(const MyApp()); @@ -50,7 +50,7 @@ class _MyAppState extends State { Future _configureAmplify() async { try { await Amplify.addPlugin(AmplifyAuthCognito()); - await Amplify.configure(amplifyconfig); + await Amplify.configure(amplifyConfig); } on Exception catch (e) { print('Could not configure Amplify: $e'); } diff --git a/packages/authenticator/amplify_authenticator/example/.gitignore b/packages/authenticator/amplify_authenticator/example/.gitignore index 62d18fe117..58fbe860e7 100644 --- a/packages/authenticator/amplify_authenticator/example/.gitignore +++ b/packages/authenticator/amplify_authenticator/example/.gitignore @@ -66,3 +66,5 @@ amplifytools.xcconfig .secret-* **.sample #amplify-do-not-edit-end + +amplify_outputs.dart diff --git a/packages/authenticator/amplify_authenticator/lib/amplify_authenticator.dart b/packages/authenticator/amplify_authenticator/lib/amplify_authenticator.dart index ea281bf7a5..d53a76ac5a 100644 --- a/packages/authenticator/amplify_authenticator/lib/amplify_authenticator.dart +++ b/packages/authenticator/amplify_authenticator/lib/amplify_authenticator.dart @@ -41,8 +41,6 @@ export 'package:amplify_auth_cognito/amplify_auth_cognito.dart' export 'package:amplify_authenticator/src/utils/dial_code.dart' show DialCode; export 'package:amplify_authenticator/src/utils/dial_code_options.dart' show DialCodeOptions; -export 'package:amplify_flutter/amplify_flutter.dart' - show PasswordProtectionSettings, PasswordPolicyCharacters; export 'src/enums/enums.dart' show AuthenticatorStep, Gender; export 'src/l10n/auth_strings_resolver.dart' hide ButtonResolverKeyType; @@ -107,7 +105,7 @@ export 'src/widgets/form_field.dart' /// import 'package:amplify_flutter/amplify_flutter.dart'; /// import 'package:flutter/material.dart'; /// -/// import 'amplifyconfiguration.dart'; +/// import 'amplify_outputs.dart'; /// /// void main() { /// runApp(const MyApp()); @@ -130,7 +128,7 @@ export 'src/widgets/form_field.dart' /// Future _configureAmplify() async { /// try { /// await Amplify.addPlugin(AmplifyAuthCognito()); -/// await Amplify.configure(amplifyconfig); +/// await Amplify.configure(amplifyConfig); /// } on Exception catch (e) { /// print('Could not configure Amplify: $e'); /// } @@ -177,7 +175,7 @@ export 'src/widgets/form_field.dart' /// ### Forms /// /// The Authenticator uses your app's Cognito configuration (as defined in your -/// `amplifyconfiguration.dart` file) to determine which fields are required. +/// `amplify_outputs.dart` file) to determine which fields are required. /// However, you may optionally add on additional fields using a custom form /// component. For example, to collect your user's address information on the s /// ign up form, use the [SignUpForm.custom] constructor: @@ -510,7 +508,7 @@ class _AuthenticatorState extends State { late final StreamSubscription _infoSub; late final StreamSubscription _successSub; - AmplifyConfig? _config; + AmplifyOutputs? _config; late List _missingConfigValues; bool _configInitialized = false; @@ -643,20 +641,20 @@ class _AuthenticatorState extends State { }); } - List missingConfigValues(AmplifyConfig? config) { + List missingConfigValues(AmplifyOutputs? config) { final missingValues = []; - final cognitoPlugin = config?.auth?.awsPlugin?.auth?.default$; + final cognitoPlugin = config?.auth; if (cognitoPlugin == null) { - return const ['auth.plugins.Auth.Default']; + return const ['auth']; } if (cognitoPlugin.usernameAttributes == null) { - missingValues.add('usernameAttributes'); + missingValues.add('username_attributes'); } - if (cognitoPlugin.signupAttributes == null) { - missingValues.add('signupAttributes'); + if (cognitoPlugin.standardRequiredAttributes == null) { + missingValues.add('standard_required_attributes'); } - if (cognitoPlugin.passwordProtectionSettings == null) { - missingValues.add('passwordProtectionSettings'); + if (cognitoPlugin.passwordPolicy == null) { + missingValues.add('password_policy'); } return missingValues; } @@ -669,7 +667,7 @@ class _AuthenticatorState extends State { 'Encountered problem(s) building the Authenticator due to an invalid config. See below for more info.', ), ErrorDescription( - '\nYour amplifyconfiguration.dart file is missing the following required attributes:' + '\nYour amplifyconfiguration.dart or amplify_outputs.dart file is missing the following required attributes:' '\n - ${_missingConfigValues.join('\n - ')}', ), ErrorDescription( @@ -680,7 +678,7 @@ class _AuthenticatorState extends State { '\nPlease refer to the amplify flutter documentation for more info on how to resolve this and the full list of required attributes.', ), ErrorDescription( - '\nOnce you have added the missing values to your amplifyconfiguration.dart file, you will need to restart your app.', + '\nOnce you have added the missing values to your amplifyconfiguration.dart or amplify_outputs.dart file, you will need to restart your app.', ), ]); } @@ -689,7 +687,7 @@ class _AuthenticatorState extends State { key: keyInheritedAuthBloc, authBloc: _stateMachineBloc, child: InheritedConfig( - amplifyConfig: _config, + amplifyOutputs: _config, padding: widget.padding, child: InheritedAuthenticatorState( key: keyInheritedAuthenticatorState, diff --git a/packages/authenticator/amplify_authenticator/lib/src/l10n/input_resolver.dart b/packages/authenticator/amplify_authenticator/lib/src/l10n/input_resolver.dart index 1641e7acb6..ad9eed1b0c 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/l10n/input_resolver.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/l10n/input_resolver.dart @@ -1,9 +1,9 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import 'package:amplify_authenticator/amplify_authenticator.dart'; import 'package:amplify_authenticator/src/l10n/authenticator_localizations.dart'; import 'package:amplify_authenticator/src/l10n/resolver.dart'; +import 'package:amplify_authenticator/src/utils/unmet_password_requirements.dart'; import 'package:flutter/material.dart'; enum InputField { @@ -50,7 +50,7 @@ enum InputResolverKeyType { class InputResolverKey { const InputResolverKey.passwordRequirementsUnmet( - PasswordProtectionSettings requirements, + UnmetPasswordRequirements requirements, ) : this._( InputResolverKeyType.passwordRequirements, field: InputField.password, @@ -64,7 +64,7 @@ class InputResolverKey { final InputResolverKeyType type; final InputField field; - final PasswordProtectionSettings? unmetPasswordRequirements; + final UnmetPasswordRequirements? unmetPasswordRequirements; static const usernameTitle = InputResolverKey._( InputResolverKeyType.title, @@ -502,10 +502,10 @@ class InputResolver extends Resolver { /// defined in the amplify configuration. String passwordRequires( BuildContext context, - PasswordProtectionSettings requirements, + UnmetPasswordRequirements requirements, ) { - final minLength = requirements.passwordPolicyMinLength; - final characterReqs = requirements.passwordPolicyCharacters; + final minLength = requirements.minLength; + final characterReqs = requirements.characterRequirements; if (minLength == null && (characterReqs.isEmpty)) { return ''; } diff --git a/packages/authenticator/amplify_authenticator/lib/src/mixins/authenticator_username_field.dart b/packages/authenticator/amplify_authenticator/lib/src/mixins/authenticator_username_field.dart index 620bbad5a6..b8187ed981 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/mixins/authenticator_username_field.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/mixins/authenticator_username_field.dart @@ -259,7 +259,7 @@ mixin AuthenticatorUsernameField on AuthenticatorComponentState { late final Set usernameAttributes = () { - final authConfig = config.amplifyConfig?.auth?.awsPlugin?.auth?.default$; + final authConfig = config.amplifyOutputs?.auth; return {...?authConfig?.usernameAttributes}; }(); diff --git a/packages/authenticator/amplify_authenticator/lib/src/services/amplify_auth_service.dart b/packages/authenticator/amplify_authenticator/lib/src/services/amplify_auth_service.dart index 333d33a512..f28b4828b8 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/services/amplify_auth_service.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/services/amplify_auth_service.dart @@ -68,7 +68,7 @@ abstract class AuthService { required CognitoUserAttributeKey userAttributeKey, required String confirmationCode, }); - Future waitForConfiguration(); + Future waitForConfiguration(); Future rememberDevice(); @@ -324,7 +324,7 @@ class AmplifyAuthService } @override - Future waitForConfiguration() async { + Future waitForConfiguration() async { final timer = Timer.periodic(const Duration(seconds: 10), (timer) { logger.warn( 'Amplify is taking longer than expected to configure.' diff --git a/packages/authenticator/amplify_authenticator/lib/src/state/inherited_config.dart b/packages/authenticator/amplify_authenticator/lib/src/state/inherited_config.dart index e1e7b5db27..e29c5129b2 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/state/inherited_config.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/state/inherited_config.dart @@ -8,12 +8,12 @@ import 'package:flutter/material.dart'; class InheritedConfig extends InheritedWidget { const InheritedConfig({ super.key, - required this.amplifyConfig, + required this.amplifyOutputs, required this.padding, required super.child, }); - final AmplifyConfig? amplifyConfig; + final AmplifyOutputs? amplifyOutputs; final EdgeInsets padding; static InheritedConfig of(BuildContext context) { @@ -37,9 +37,9 @@ class InheritedConfig extends InheritedWidget { @override bool updateShouldNotify(InheritedConfig oldWidget) { - final updatedConfig = oldWidget.amplifyConfig != amplifyConfig; + final updatedConfig = oldWidget.amplifyOutputs != amplifyOutputs; if (updatedConfig) { - if (oldWidget.amplifyConfig == null) { + if (oldWidget.amplifyOutputs == null) { return true; } throw FlutterError.fromParts([ @@ -58,7 +58,7 @@ class InheritedConfig extends InheritedWidget { void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); properties - ..add(DiagnosticsProperty('config', amplifyConfig)) + ..add(DiagnosticsProperty('config', amplifyOutputs)) ..add(DiagnosticsProperty('padding', padding)); } } diff --git a/packages/authenticator/amplify_authenticator/lib/src/utils/unmet_password_requirements.dart b/packages/authenticator/amplify_authenticator/lib/src/utils/unmet_password_requirements.dart new file mode 100644 index 0000000000..9c2b117b8d --- /dev/null +++ b/packages/authenticator/amplify_authenticator/lib/src/utils/unmet_password_requirements.dart @@ -0,0 +1,16 @@ +class UnmetPasswordRequirements { + UnmetPasswordRequirements({ + this.minLength, + this.characterRequirements = const [], + }); + + int? minLength; + List characterRequirements; +} + +enum CharacterRequirements { + requiresLowercase, + requiresUppercase, + requiresNumbers, + requiresSymbols, +} diff --git a/packages/authenticator/amplify_authenticator/lib/src/utils/validators.dart b/packages/authenticator/amplify_authenticator/lib/src/utils/validators.dart index 942742cbaf..c322754903 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/utils/validators.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/utils/validators.dart @@ -2,6 +2,10 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_authenticator/amplify_authenticator.dart'; +import 'package:amplify_authenticator/src/utils/unmet_password_requirements.dart'; +import 'package:amplify_core/amplify_core.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/auth/password_policy.dart'; import 'package:amplify_flutter/amplify_flutter.dart'; import 'package:flutter/material.dart'; @@ -56,28 +60,11 @@ FormFieldValidator usernameValidator({ }; } -extension PasswordPolicyCharactersX on PasswordPolicyCharacters { - @visibleForTesting - bool meetsRequirement(String value) { - switch (this) { - case PasswordPolicyCharacters.requiresLowercase: - return value.contains(_lowercase); - case PasswordPolicyCharacters.requiresUppercase: - return value.contains(_uppercase); - case PasswordPolicyCharacters.requiresNumbers: - return value.contains(_numeric); - case PasswordPolicyCharacters.requiresSymbols: - return value.contains(_symbols); - } - } -} - FormFieldValidator Function(BuildContext) validateNewPassword({ - required AmplifyConfig? amplifyConfig, + required AmplifyOutputs? amplifyOutputs, required InputResolver inputResolver, }) { - final passwordProtectionSettings = amplifyConfig - ?.auth?.awsPlugin?.auth?.default$?.passwordProtectionSettings; + final passwordPolicies = amplifyOutputs?.auth?.passwordPolicy; return (BuildContext context) => (String? password) { if (password == null || password.isEmpty) { return inputResolver.resolve( @@ -86,31 +73,23 @@ FormFieldValidator Function(BuildContext) validateNewPassword({ ); } password = password.trim(); - if (passwordProtectionSettings == null) { + if (passwordPolicies == null) { return null; } - final unmetReqs = []; - - final minLength = passwordProtectionSettings.passwordPolicyMinLength; + final minLength = passwordPolicies.minLength; final meetsMinLengthRequirement = minLength == null || password.length >= minLength; - final passwordPolicies = - passwordProtectionSettings.passwordPolicyCharacters; - for (final policy in passwordPolicies) { - if (!policy.meetsRequirement(password)) { - unmetReqs.add(policy); - } - } + final unmetCharacterReqs = + _getUnmetCharacterRequirements(password, passwordPolicies); final error = inputResolver.resolve( context, InputResolverKey.passwordRequirementsUnmet( - PasswordProtectionSettings( - passwordPolicyMinLength: - meetsMinLengthRequirement ? null : minLength, - passwordPolicyCharacters: unmetReqs, + UnmetPasswordRequirements( + minLength: meetsMinLengthRequirement ? null : minLength, + characterRequirements: unmetCharacterReqs, ), ), ); @@ -118,6 +97,26 @@ FormFieldValidator Function(BuildContext) validateNewPassword({ }; } +List _getUnmetCharacterRequirements( + String password, + PasswordPolicy? policy, +) { + final unmetReqs = []; + if ((policy?.requireLowercase ?? false) && !password.contains(_lowercase)) { + unmetReqs.add(CharacterRequirements.requiresLowercase); + } + if ((policy?.requireUppercase ?? false) && !password.contains(_uppercase)) { + unmetReqs.add(CharacterRequirements.requiresUppercase); + } + if ((policy?.requireNumbers ?? false) && !password.contains(_numeric)) { + unmetReqs.add(CharacterRequirements.requiresNumbers); + } + if ((policy?.requireSymbols ?? false) && !password.contains(_symbols)) { + unmetReqs.add(CharacterRequirements.requiresSymbols); + } + return unmetReqs; +} + FormFieldValidator validatePasswordConfirmation( String Function() getPassword, { required BuildContext context, diff --git a/packages/authenticator/amplify_authenticator/lib/src/version.dart b/packages/authenticator/amplify_authenticator/lib/src/version.dart index 6884ff8834..ea63946428 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/version.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/version.dart @@ -1,2 +1,2 @@ // Generated code. Do not modify. -const packageVersion = '2.0.1'; +const packageVersion = '2.1.0'; diff --git a/packages/authenticator/amplify_authenticator/lib/src/widgets/button.dart b/packages/authenticator/amplify_authenticator/lib/src/widgets/button.dart index 04e7a1b425..c2c92e87bb 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/widgets/button.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/widgets/button.dart @@ -53,6 +53,8 @@ abstract class AuthenticatorButtonState> final focusNode = FocusNode(); late final ValueChanged focusChanged = + // TODO(Jordan-Nelson): Update to `WidgetState` when min Flutter version is 3.22 or higher + // ignore: deprecated_member_use updateMaterialState(MaterialState.focused); @override diff --git a/packages/authenticator/amplify_authenticator/lib/src/widgets/component.dart b/packages/authenticator/amplify_authenticator/lib/src/widgets/component.dart index 54f22f0e42..46d27c3caf 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/widgets/component.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/widgets/component.dart @@ -82,7 +82,7 @@ abstract class AuthenticatorComponentState ), ) ..add( - DiagnosticsProperty('config', config.amplifyConfig), + DiagnosticsProperty('config', config.amplifyOutputs), ); } } diff --git a/packages/authenticator/amplify_authenticator/lib/src/widgets/form.dart b/packages/authenticator/amplify_authenticator/lib/src/widgets/form.dart index 6d9acb32a0..301b61177c 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/widgets/form.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/widgets/form.dart @@ -13,6 +13,10 @@ import 'package:amplify_authenticator/src/widgets/button.dart'; import 'package:amplify_authenticator/src/widgets/component.dart'; import 'package:amplify_authenticator/src/widgets/form_field.dart'; import 'package:amplify_authenticator/src/widgets/social/social_button.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/auth/identity_provider.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/auth/mfa.dart'; import 'package:amplify_flutter/amplify_flutter.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -303,15 +307,10 @@ class _SignUpFormState extends AuthenticatorFormState { @override List runtimeFields(BuildContext context) { - final authConfig = InheritedConfig.of(context) - .amplifyConfig - ?.auth - ?.awsPlugin - ?.auth - ?.default$; + final authConfig = InheritedConfig.of(context).amplifyOutputs?.auth; final runtimeAttributes = { - ...?authConfig?.signupAttributes, - ...?authConfig?.verificationMechanisms, + ...?authConfig?.standardRequiredAttributes, + ...?authConfig?.userVerificationTypes, }; if (runtimeAttributes.isEmpty) { return const []; @@ -362,17 +361,17 @@ class _SignUpFormState extends AuthenticatorFormState { .whereType() .toList(); - final hasSmsMfa = authConfig?.mfaTypes?.contains(MfaType.sms) ?? false; + final hasSmsMfa = authConfig?.mfaMethods?.contains(MfaMethod.sms) ?? false; if (hasSmsMfa && selectedUsernameType != UsernameType.phoneNumber) { final mfaConfiguration = - authConfig?.mfaConfiguration ?? MfaConfiguration.off; + authConfig?.mfaConfiguration ?? MfaEnforcement.off; final hasSmsField = runtimeFields.any( (f) => f.field == SignUpField.phoneNumber, ); - if (!hasSmsField && mfaConfiguration != MfaConfiguration.off) { + if (!hasSmsField && mfaConfiguration != MfaEnforcement.off) { runtimeFields.add( SignUpFormField.phoneNumber( - required: mfaConfiguration == MfaConfiguration.on, + required: mfaConfiguration == MfaEnforcement.on, ), ); } @@ -436,21 +435,20 @@ class _SignInFormState extends AuthenticatorFormState { } final socialProviders = InheritedConfig.of(context) - .amplifyConfig + .amplifyOutputs ?.auth - ?.awsPlugin - ?.auth - ?.default$ - ?.socialProviders; + ?.oauth + ?.identityProviders; + if (socialProviders == null || socialProviders.isEmpty) { return const []; } // Sort Apple first based off their app guidelines. socialProviders.sort((a, b) { - if (a == SocialProvider.apple) { + if (a == IdentityProvider.apple) { return -1; - } else if (b == SocialProvider.apple) { + } else if (b == IdentityProvider.apple) { return 1; } return a.name.compareTo(b.name); @@ -460,13 +458,13 @@ class _SignInFormState extends AuthenticatorFormState { SocialSignInButtons( providers: socialProviders.map((e) { switch (e) { - case SocialProvider.facebook: + case IdentityProvider.facebook: return AuthProvider.facebook; - case SocialProvider.google: + case IdentityProvider.google: return AuthProvider.google; - case SocialProvider.amazon: + case IdentityProvider.amazon: return AuthProvider.amazon; - case SocialProvider.apple: + case IdentityProvider.apple: return AuthProvider.apple; } }).toList(), diff --git a/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/confirm_sign_in_form_field.dart b/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/confirm_sign_in_form_field.dart index 409faffa3f..d4b39d1d22 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/confirm_sign_in_form_field.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/confirm_sign_in_form_field.dart @@ -668,7 +668,7 @@ class _ConfirmSignInTextFieldState extends _ConfirmSignInFormFieldState ); case ConfirmSignInField.newPassword: return validateNewPassword( - amplifyConfig: config.amplifyConfig, + amplifyOutputs: config.amplifyOutputs, inputResolver: stringResolver.inputs, )(context); case ConfirmSignInField.confirmNewPassword: diff --git a/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/reset_password_form_field.dart b/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/reset_password_form_field.dart index 01d0dd854e..ffce3d19c8 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/reset_password_form_field.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/reset_password_form_field.dart @@ -140,7 +140,7 @@ class _ResetPasswordFormFieldState extends AuthenticatorFormFieldState< switch (widget.field) { case ResetPasswordField.newPassword: return validateNewPassword( - amplifyConfig: config.amplifyConfig, + amplifyOutputs: config.amplifyOutputs, inputResolver: stringResolver.inputs, )(context); case ResetPasswordField.passwordConfirmation: diff --git a/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/sign_up_form_field.dart b/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/sign_up_form_field.dart index 94b9e39517..d4e0687823 100644 --- a/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/sign_up_form_field.dart +++ b/packages/authenticator/amplify_authenticator/lib/src/widgets/form_fields/sign_up_form_field.dart @@ -587,7 +587,7 @@ class _SignUpTextFieldState extends _SignUpFormFieldState ); case SignUpField.password: return validateNewPassword( - amplifyConfig: config.amplifyConfig, + amplifyOutputs: config.amplifyOutputs, inputResolver: stringResolver.inputs, )(context); case SignUpField.passwordConfirmation: diff --git a/packages/authenticator/amplify_authenticator/pubspec.yaml b/packages/authenticator/amplify_authenticator/pubspec.yaml index c1ad120898..34e2317345 100644 --- a/packages/authenticator/amplify_authenticator/pubspec.yaml +++ b/packages/authenticator/amplify_authenticator/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_authenticator description: A prebuilt Sign In and Sign Up experience for the Amplify Auth category -version: 2.0.1 +version: 2.1.0 homepage: https://ui.docs.amplify.aws/flutter/connected-components/authenticator repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/authenticator/amplify_authenticator issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -10,9 +10,9 @@ environment: flutter: ">=3.19.0" dependencies: - amplify_auth_cognito: ">=2.1.0 <2.2.0" - amplify_core: ">=2.1.0 <2.2.0" - amplify_flutter: ">=2.1.0 <2.2.0" + amplify_auth_cognito: ">=2.2.0 <2.3.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_flutter: ">=2.2.0 <2.3.0" async: ^2.10.0 aws_common: ">=0.7.0 <0.8.0" collection: ^1.15.0 diff --git a/packages/authenticator/amplify_authenticator/test/sign_up_form_test.dart b/packages/authenticator/amplify_authenticator/test/sign_up_form_test.dart index abaca33389..21fc76fe60 100644 --- a/packages/authenticator/amplify_authenticator/test/sign_up_form_test.dart +++ b/packages/authenticator/amplify_authenticator/test/sign_up_form_test.dart @@ -1,13 +1,10 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import 'dart:convert'; - import 'package:amplify_auth_cognito/amplify_auth_cognito.dart'; import 'package:amplify_authenticator/amplify_authenticator.dart'; import 'package:amplify_authenticator/src/services/amplify_auth_service.dart'; import 'package:amplify_authenticator_test/amplify_authenticator_test.dart'; -import 'package:amplify_core/amplify_core.dart'; import 'package:amplify_integration_test/amplify_integration_test.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; @@ -169,9 +166,9 @@ void main() { 'displays message when password does not meet requirements', (tester) async { await tester.pumpWidget( - MockAuthenticatorApp( + const MockAuthenticatorApp( initialStep: AuthenticatorStep.signUp, - config: jsonEncode(passwordReqConfig.toJson()), + config: passwordReqConfig, ), ); await tester.pumpAndSettle(); @@ -261,8 +258,8 @@ void main() { // Enter email with trailing space await signUpPage.enterUsername('user@example.com '); - await signUpPage.enterPassword('Password123'); - await signUpPage.enterPasswordConfirmation('Password123'); + await signUpPage.enterPassword('Password123!@#%^'); + await signUpPage.enterPasswordConfirmation('Password123!@#%^'); await signUpPage.submitSignUp(); await tester.pumpAndSettle(); @@ -275,20 +272,31 @@ void main() { }); } -final passwordReqConfig = AmplifyConfig( - auth: AuthConfig.cognito( - usernameAttributes: const [CognitoUserAttributeKey.email], - signupAttributes: const [CognitoUserAttributeKey.email], - passwordProtectionSettings: const PasswordProtectionSettings( - passwordPolicyCharacters: [ - PasswordPolicyCharacters.requiresSymbols, - PasswordPolicyCharacters.requiresUppercase, - ], - passwordPolicyMinLength: 16, - ), - verificationMechanisms: const [CognitoUserAttributeKey.email], - socialProviders: const [], - mfaConfiguration: MfaConfiguration.off, - mfaTypes: const [MfaType.sms], - ), -); +const passwordReqConfig = '''{ + "auth": { + "user_pool_id": "", + "aws_region": "", + "user_pool_client_id": "", + "identity_pool_id": "", + "mfa_methods": [ + "SMS" + ], + "standard_required_attributes": [ + "email" + ], + "username_attributes": [ + "email" + ], + "user_verification_types": [ + "email" + ], + "mfa_configuration": "NONE", + "password_policy": { + "min_length": 16, + "require_uppercase": true, + "require_symbols": true + }, + "unauthenticated_identities_enabled": true + }, + "version": "1" +}'''; diff --git a/packages/authenticator/amplify_authenticator/test/sign_up_test.dart b/packages/authenticator/amplify_authenticator/test/sign_up_test.dart index 83e1973f67..ed3158272f 100644 --- a/packages/authenticator/amplify_authenticator/test/sign_up_test.dart +++ b/packages/authenticator/amplify_authenticator/test/sign_up_test.dart @@ -21,7 +21,7 @@ void main() { final signInPage = SignInPage(tester: tester); const email = 'test-user@example.com'; - const password = 'Password123'; + const password = 'Password123!@#%^'; await signInPage.navigateToSignUp(); diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_constrainedWidthGeometry.png index cac7177b71..937a53354f 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_desktopGeometry.png index ea420440f3..16f5b37b60 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_laptopGeometry.png index b4a3d55bfd..08af0ac8c0 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_miniGeometry.png index 9cc5c402d2..934b60b986 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_mobileGeometry.png index ea24f6bf54..3e4815c9c8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_tabletGeometry.png index 4ff65e0473..8018f912d7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_resetPasswordStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_constrainedWidthGeometry.png index 266d42975c..05d2ccea4d 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_desktopGeometry.png index 00dc9a386f..7bc717fbf9 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_laptopGeometry.png index 2b669e3cfc..9e0e7ed9dd 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_miniGeometry.png index 9741f43a43..376386ad57 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_mobileGeometry.png index 822bd9792b..9fe39d2260 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_tabletGeometry.png index 30380c85df..021a2d35f5 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signInStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_constrainedWidthGeometry.png index b5f7c7a54c..89bb42a86b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_desktopGeometry.png index ff1b2ce366..c9f2d58ddb 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_laptopGeometry.png index d68e59b16c..dca7b437ca 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_miniGeometry.png index 99a2cc261d..d1aa745b83 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_mobileGeometry.png index ca244ae2f0..5dedba10e9 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_tabletGeometry.png index c05c657518..c53f2840ce 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailConfig_signUpStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_constrainedWidthGeometry.png index e205c64f80..408b0a1c0d 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_desktopGeometry.png index a49b9acd83..e01a6f4ec7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_laptopGeometry.png index 019f21fe1f..9060cbac42 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_miniGeometry.png index 9de55fc84f..0b6c93d250 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_mobileGeometry.png index a02baad94d..96077bc796 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_tabletGeometry.png index 045ab53443..25f30d8cc6 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_resetPasswordStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_constrainedWidthGeometry.png index 767d7eb151..c35b26a60e 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_desktopGeometry.png index 2d5a2af1cb..1d738c304d 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_laptopGeometry.png index fab4b258cb..4a9a27ef28 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_miniGeometry.png index aff6c5a533..f5d9e60774 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_mobileGeometry.png index e89aa6c345..34fd8df7db 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_tabletGeometry.png index 99b09a3165..841c677672 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signInStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_constrainedWidthGeometry.png index 9c423fcc7e..4f4a3ccfe2 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_desktopGeometry.png index e3e5048767..b402603639 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_laptopGeometry.png index 3bac5dfbd5..728d660a00 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_miniGeometry.png index f3d6df6239..8b12778fd8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_mobileGeometry.png index 2a548c50ac..bd8e19186e 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_tabletGeometry.png index e66ed3c7ad..eab5a72e05 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_emailOrPhoneConfig_signUpStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_constrainedWidthGeometry.png index 5a3fbe3eb6..a3bae003e2 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_desktopGeometry.png index 150a5a5633..4ef27a1e0a 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_laptopGeometry.png index 16779e8f34..5be8892112 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_miniGeometry.png index 96f8cba915..eeb6b12276 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_mobileGeometry.png index c4d241540d..3bf3c8b5fe 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_tabletGeometry.png index 333eb6c379..2dc5f51079 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_resetPasswordStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_constrainedWidthGeometry.png index d902b118b3..2f445662f7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_desktopGeometry.png index e58bd6e1b6..708bb3eb22 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_laptopGeometry.png index 8b57ae2017..96f29680ba 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_miniGeometry.png index c287ca8be6..039821fd98 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_mobileGeometry.png index 0026876678..658d6233ba 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_tabletGeometry.png index 4a46b9b30c..3e35835c2c 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signInStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_constrainedWidthGeometry.png index d6e370f09f..95276acf26 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_desktopGeometry.png index 7aa0702cb1..6bbf2ae709 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_laptopGeometry.png index ebca648dfb..d1fc0b288f 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_miniGeometry.png index c91119d0ed..a60313b5a8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_mobileGeometry.png index bc0cafe59b..9c5136e174 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_tabletGeometry.png index 0f46b3b9ad..110dc5c672 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_phoneNumberConfig_signUpStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_constrainedWidthGeometry.png index 8c0eab7805..6b1a5da259 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_desktopGeometry.png index c1ca4559e6..b264f7da56 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_laptopGeometry.png index aa3a07f39f..398d07b4ac 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_miniGeometry.png index c189a9405b..c018f8fa44 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_mobileGeometry.png index 53ec2dfc65..de7690f15f 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_tabletGeometry.png index bc87b1428e..d3847ffe59 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_resetPasswordStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_constrainedWidthGeometry.png index 7fe57018b6..f4a7cf7fb8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_desktopGeometry.png index 33d63c21dd..43b91e78de 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_laptopGeometry.png index 66876f70e3..0c72d37ff7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_miniGeometry.png index e48eaf2239..f09cb0507c 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_mobileGeometry.png index a1c89e4d86..76528d6819 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_tabletGeometry.png index 84bcae3c25..b61e6da39a 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signInStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_constrainedWidthGeometry.png index b9db5d1cac..23655cc607 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_desktopGeometry.png index dc8bd7886a..f4b7b961fd 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_laptopGeometry.png index 4bdf5c5ce4..ac79bb3a47 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_miniGeometry.png index bf9ee7d184..58362bdb55 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_mobileGeometry.png index 30bbd98949..86d3f8e71e 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_tabletGeometry.png index 143965ba7f..9147e3e136 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_smsOrTotpConfig_signUpStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_constrainedWidthGeometry.png index cac7177b71..937a53354f 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_desktopGeometry.png index ea420440f3..16f5b37b60 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_laptopGeometry.png index b4a3d55bfd..08af0ac8c0 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_miniGeometry.png index 9cc5c402d2..934b60b986 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_mobileGeometry.png index ea24f6bf54..3e4815c9c8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_tabletGeometry.png index 4ff65e0473..8018f912d7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_resetPasswordStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_constrainedWidthGeometry.png index 03fa03d7e9..2cc4eb6197 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_desktopGeometry.png index eed82831ef..c6adc2e0fb 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_laptopGeometry.png index e95ac3d2d0..13bb4c2533 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_miniGeometry.png index 5c98e3205e..44fc59328a 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_mobileGeometry.png index e955b55c42..39d2d04e41 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_tabletGeometry.png index a14a873426..e18bc1028b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signInStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_constrainedWidthGeometry.png index b5f7c7a54c..89bb42a86b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_desktopGeometry.png index ff1b2ce366..c9f2d58ddb 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_laptopGeometry.png index d68e59b16c..dca7b437ca 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_miniGeometry.png index 99a2cc261d..d1aa745b83 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_mobileGeometry.png index ca244ae2f0..5dedba10e9 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_tabletGeometry.png index c05c657518..c53f2840ce 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_socialProviderConfig_signUpStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_constrainedWidthGeometry.png index 8c0eab7805..6b1a5da259 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_desktopGeometry.png index c1ca4559e6..b264f7da56 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_laptopGeometry.png index aa3a07f39f..398d07b4ac 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_miniGeometry.png index c189a9405b..c018f8fa44 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_mobileGeometry.png index 53ec2dfc65..de7690f15f 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_tabletGeometry.png index bc87b1428e..d3847ffe59 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_resetPasswordStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_constrainedWidthGeometry.png index 7fe57018b6..f4a7cf7fb8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_desktopGeometry.png index 33d63c21dd..43b91e78de 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_laptopGeometry.png index 66876f70e3..0c72d37ff7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_miniGeometry.png index e48eaf2239..f09cb0507c 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_mobileGeometry.png index a1c89e4d86..76528d6819 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_tabletGeometry.png index 84bcae3c25..b61e6da39a 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signInStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_constrainedWidthGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_constrainedWidthGeometry.png index 2606bf73de..52f56bb665 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_constrainedWidthGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_constrainedWidthGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_desktopGeometry.png index 1bc21ea6b7..d8fea1680a 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_desktopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_laptopGeometry.png index 6e5972e706..a3316f1035 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_miniGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_miniGeometry.png index 3f99a7bca1..cf63f99f42 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_miniGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_miniGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_mobileGeometry.png index e5453b3cbf..e299515d42 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_tabletGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_tabletGeometry.png index 8c5bf8cfd1..bf6237fb34 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_tabletGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/layout_usernameWithAttributesConfig_signUpStep_tabletGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..3389b06e83 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..0040e384c6 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..296bc43cf2 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..2b299b7edf Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index 99e417fc16..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 2136e983e1..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index f26e21c202..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 01b1948cf6..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmResetPasswordStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..41d2e0b442 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..0a4b2e8f33 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..8d55d6b79d Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..b94afd1eee Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index e820395f7c..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index b8f1e3e8c4..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index 0ffe1479f6..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 4f705ef1dd..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInCustomAuthStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..db781a42e2 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..5e84b9e084 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..161c0a8d60 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..5e5354e8e1 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index 0f03bf8865..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index ff0a4008ba..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index c9995b51ed..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 443f19ccbf..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInMfaStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..b760fb0881 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..35214ff5fd Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..c9a3ab6f03 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..7c4a6ed98b Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index fc34a12bd2..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index fb53b29686..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index f9c54d08d8..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index b4fdb90496..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInNewPasswordStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..d0bf1530b1 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..2bd7444883 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..1d0df0b345 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..ba6c53b97b Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index 69b0f9472f..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 06c89dc6a8..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index 8ab1b0e0a8..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 99423a4bb2..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignInWithTotpMfaCodeStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..da49f5eee3 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..7ada2ead20 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..d6baff5d40 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..d57a3b9751 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index cf2ed1e592..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index a47e12670d..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index 38df8b7a57..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index aec125287b..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmSignUpStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..09fdc357cc Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..beae482205 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..72b48b88aa Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..8698a85ea7 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index cd261cfaaa..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 3f90706599..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index f90cb185dd..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 573cd163d6..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_confirmVerifyUserStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..52d1b68ade Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..1c964fcf4a Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..97bbedadb4 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..2a3bd47fc1 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index 3dfa428126..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 53b955f1be..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index bb47959bbd..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 9aaa95788e..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithMfaSelectionStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..f6390059f2 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..b60c526277 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..e3ef085ca1 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..2c999eb837 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index ce369d64fa..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index b9a02eefb3..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index 636700c401..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 68cd3c4f21..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_continueSignInWithTotpSetupStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..c0535b59a5 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..a081dcf85b Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..7bc717fbf9 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..9fe39d2260 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index abc9be5bcb..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index bb3ebf3359..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index 00dc9a386f..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 822bd9792b..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_onboardingStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png index 0d72d74661..1d2b238996 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png index e461d81cb5..2ad218ec80 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png index 4aa5c68777..f96a24c52a 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png index 7cfe568baf..5e48dcd32f 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_darkMode_laptopGeometry.png index 832ed2a05e..0f815a14be 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_darkMode_mobileGeometry.png index d1607e914e..e565961066 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_lightMode_laptopGeometry.png index bb23a44466..e3b3598ce8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_lightMode_mobileGeometry.png index 9ca31cde1c..67d8da16fa 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_customTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png index 81318f4bd2..30d1001424 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png index 2a1cdf0000..a081dcf85b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png index 26e526d0f1..9e0e7ed9dd 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png index 5a64555b96..9fe39d2260 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png index ad463750e6..7492481470 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png index 8594ad114b..246bdb1352 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png index 93cbedc73d..1f31062eb5 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png index 9d7bf06b95..16285ea3e4 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_darkMode_laptopGeometry.png new file mode 100644 index 0000000000..9cdb87caa2 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..34e5c48e86 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_lightMode_laptopGeometry.png new file mode 100644 index 0000000000..89b091bb31 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..96c12232ab Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material2Theme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_darkMode_laptopGeometry.png deleted file mode 100644 index 5d1d15dcc9..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_darkMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index bb3ebf3359..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_lightMode_laptopGeometry.png deleted file mode 100644 index 2b669e3cfc..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_lightMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 822bd9792b..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signInStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png index 65a5be8354..2903e1a4ec 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png index ec7878f0d0..92d2106394 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png index deb58fbef0..ebe369fe4b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png index 32db853ea9..0275329e61 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_darkMode_laptopGeometry.png index ef83b04e20..123e0ae783 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_darkMode_mobileGeometry.png index 87c2d1b041..7f4529bbc3 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_lightMode_laptopGeometry.png index ed747606e3..9f157b29b4 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_lightMode_mobileGeometry.png index 5851d21d74..fcb8a5367e 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_customTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png index 8d742290bc..539aab2c3d 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png index 30d9bf2c14..2e950ed961 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png index ca90aea3e1..dca7b437ca 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png index cf9bbdf4e5..5dedba10e9 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png index 05324299c2..2db351c5fb 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png index f11b2684b2..8be38687ec 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png index bab8d5a5e0..db330b3632 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png index 0d8d65c697..1de4da223e 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png new file mode 100644 index 0000000000..0f750e428b Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..7b3e985abb Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png new file mode 100644 index 0000000000..1d7a063465 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..0c2dfb3902 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png deleted file mode 100644 index 53a5e2b1a2..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 935b086c93..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png deleted file mode 100644 index d68e59b16c..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index ca244ae2f0..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_darkMode_desktopGeometry.png new file mode 100644 index 0000000000..b5f72e06a1 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_darkMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..d6ce7b219b Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_lightMode_desktopGeometry.png new file mode 100644 index 0000000000..d97bd32b1e Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_lightMode_desktopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..b0b5bf8df7 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_darkMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_darkMode_desktopGeometry.png deleted file mode 100644 index 7909e78f7b..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_darkMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 55dc1a855b..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_lightMode_desktopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_lightMode_desktopGeometry.png deleted file mode 100644 index fd8f01f138..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_lightMode_desktopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 534a3349fe..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailConfig_verifyUserStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png index 0ad3424d8f..d3d67f79c8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png index f8970aaed3..628432ab53 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png index 0cd0e22a86..b76dfb5762 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png index ad7086128b..0722ce0fc9 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_darkMode_laptopGeometry.png index 0fa3114c49..587cc14bf7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_darkMode_mobileGeometry.png index 1b11c3a602..852cf8c85f 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_lightMode_laptopGeometry.png index be8d69d172..c2826c78fa 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_lightMode_mobileGeometry.png index 48df2e40df..a9d6eafcb7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_customTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png index c0a6282d9e..b3c6336cc2 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png index 9dd92e1c54..e53d2ad28a 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png index 90e5d42a07..4a9a27ef28 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png index 703f780cae..34fd8df7db 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png index 08199aa133..10b3eee11b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png index 29f806f141..22e776134b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png index 1986cf5afa..168b7d4798 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png index 6d7329dbc0..d2a2510967 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_darkMode_laptopGeometry.png new file mode 100644 index 0000000000..7347beeba2 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..d18c1c99c8 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_lightMode_laptopGeometry.png new file mode 100644 index 0000000000..02bf0b5d69 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..17c82adfb2 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material2Theme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_darkMode_laptopGeometry.png deleted file mode 100644 index 37031d4e35..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_darkMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index cb413fa546..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_lightMode_laptopGeometry.png deleted file mode 100644 index fab4b258cb..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_lightMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index e89aa6c345..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signInStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png index f5bd520272..f7cab452be 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png index 8a52b50dc9..495e5b211a 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png index c885e0f354..609b700d07 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png index decfc71580..64749ca46d 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_darkMode_laptopGeometry.png index 86f4b84d17..d201280b68 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_darkMode_mobileGeometry.png index 5b6449b8df..084742c477 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_lightMode_laptopGeometry.png index 67fd04413e..e6f0d233c4 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_lightMode_mobileGeometry.png index 582f19f5f8..9159fe6023 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_customTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png index 3b51b8aab3..d4c9c52929 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png index bd57a67b94..99753f2953 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png index 3a701536ce..728d660a00 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png index 7889981856..bd8e19186e 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png index 488e066ad7..f1176334f9 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png index 035f7dd1b4..42c275fa72 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png index 999bcc7a10..a4f33e3096 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png index 4407f9578c..dde577f31b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png new file mode 100644 index 0000000000..6890f175c6 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..90ef5715f0 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png new file mode 100644 index 0000000000..de5b2cfe28 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..1e7f7f7e7a Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png deleted file mode 100644 index 1399a285cf..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 50824ebbe3..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png deleted file mode 100644 index 3bac5dfbd5..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index 2a548c50ac..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_emailOrPhoneConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png index a6a0631db2..8dda33575d 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png index a700555f2c..db17c96656 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png index 79fff4fe60..ad0e04f1a7 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png index 7dc19ad37d..717edc8522 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customSwatchTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_darkMode_laptopGeometry.png index 80f8e334d5..ddef3eccaf 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_darkMode_mobileGeometry.png index e8212cdfb4..9821a23cd5 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_lightMode_laptopGeometry.png index 35d48cdb0c..d6b94174b8 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_lightMode_mobileGeometry.png index ae152c85d9..afd4a10926 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_customTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png index c1709dde76..c8b57e0483 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png index bf2c712956..9b21215b0b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png index 251d6dd3c0..13bb4c2533 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png index c1480ce003..39d2d04e41 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png index c449cc1e49..904aab7812 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png index f10017dd2a..39f5e40254 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png index 848004cdaf..dbf58e49e3 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png index aaf6f665a7..f3e3faaed0 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_highContrastTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_darkMode_laptopGeometry.png new file mode 100644 index 0000000000..eeb4527c9d Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..09991873ef Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_lightMode_laptopGeometry.png new file mode 100644 index 0000000000..583841e652 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..a3fe14f92e Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material2Theme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_darkMode_laptopGeometry.png deleted file mode 100644 index b17c6a037e..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_darkMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 5c61617743..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_lightMode_laptopGeometry.png deleted file mode 100644 index e95ac3d2d0..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_lightMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index e955b55c42..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signInStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png index 65a5be8354..2903e1a4ec 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png index ec7878f0d0..92d2106394 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png index deb58fbef0..ebe369fe4b 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png index 32db853ea9..0275329e61 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customSwatchTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_darkMode_laptopGeometry.png index ef83b04e20..123e0ae783 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_darkMode_mobileGeometry.png index 87c2d1b041..7f4529bbc3 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_lightMode_laptopGeometry.png index ed747606e3..9f157b29b4 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_lightMode_mobileGeometry.png index 5851d21d74..fcb8a5367e 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_customTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png index 8d742290bc..539aab2c3d 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png index 30d9bf2c14..2e950ed961 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png index ca90aea3e1..dca7b437ca 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png index cf9bbdf4e5..5dedba10e9 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_defaultMaterialTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png index 05324299c2..2db351c5fb 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png index f11b2684b2..8be38687ec 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png index bab8d5a5e0..db330b3632 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png index 0d8d65c697..1de4da223e 100644 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_highContrastTheme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png new file mode 100644 index 0000000000..0f750e428b Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_darkMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png new file mode 100644 index 0000000000..7b3e985abb Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_darkMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png new file mode 100644 index 0000000000..1d7a063465 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_lightMode_laptopGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png new file mode 100644 index 0000000000..0c2dfb3902 Binary files /dev/null and b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material2Theme_lightMode_mobileGeometry.png differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png deleted file mode 100644 index 53a5e2b1a2..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_darkMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png deleted file mode 100644 index 935b086c93..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_darkMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png deleted file mode 100644 index d68e59b16c..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_lightMode_laptopGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png b/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png deleted file mode 100644 index ca244ae2f0..0000000000 Binary files a/packages/authenticator/amplify_authenticator/test/ui/goldens/theme_socialProviderConfig_signUpStep_material3Theme_lightMode_mobileGeometry.png and /dev/null differ diff --git a/packages/authenticator/amplify_authenticator/test/ui/main_test.dart b/packages/authenticator/amplify_authenticator/test/ui/main_test.dart index 5692ed910b..1b59b4d6bf 100644 --- a/packages/authenticator/amplify_authenticator/test/ui/main_test.dart +++ b/packages/authenticator/amplify_authenticator/test/ui/main_test.dart @@ -1,14 +1,16 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import 'dart:io'; + import 'package:amplify_authenticator/amplify_authenticator.dart'; import 'package:amplify_authenticator_test/amplify_authenticator_test.dart'; -import 'package:amplify_authenticator_test/src/configs/email_config.dart'; -import 'package:amplify_authenticator_test/src/configs/email_or_phone_config.dart'; -import 'package:amplify_authenticator_test/src/configs/phone_config.dart'; -import 'package:amplify_authenticator_test/src/configs/sms_or_totp_config.dart'; -import 'package:amplify_authenticator_test/src/configs/social_providers_config.dart'; -import 'package:amplify_authenticator_test/src/configs/username_with_attributes.dart'; +import 'package:amplify_authenticator_test/src/amplify_outputs/email_config.dart'; +import 'package:amplify_authenticator_test/src/amplify_outputs/email_or_phone_config.dart'; +import 'package:amplify_authenticator_test/src/amplify_outputs/phone_config.dart'; +import 'package:amplify_authenticator_test/src/amplify_outputs/sms_or_totp_config.dart'; +import 'package:amplify_authenticator_test/src/amplify_outputs/social_providers_config.dart'; +import 'package:amplify_authenticator_test/src/amplify_outputs/username_with_attributes.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:golden_toolkit/golden_toolkit.dart'; @@ -55,28 +57,25 @@ enum ScreenGeometry { final double pixelRatio; } -// TODO(Jordan-Nelson): Update all themes to use material3 enum TestTheme { + material2(), defaultMaterial(), - material3(), highContrast(), customSwatch(), custom(); ThemeData get lightTheme { switch (this) { - case TestTheme.defaultMaterial: + case TestTheme.material2: return ThemeData.light(useMaterial3: false); - case TestTheme.material3: - return ThemeData.light(useMaterial3: true); + case TestTheme.defaultMaterial: + return ThemeData.light(); case TestTheme.highContrast: return ThemeData.from( - useMaterial3: false, colorScheme: const ColorScheme.highContrastLight(), ); case TestTheme.customSwatch: return ThemeData.from( - useMaterial3: false, colorScheme: ColorScheme.fromSwatch( primarySwatch: Colors.red, backgroundColor: Colors.white, @@ -85,7 +84,7 @@ enum TestTheme { indicatorColor: Colors.red, ); case TestTheme.custom: - return ThemeData.light(useMaterial3: false).copyWith( + return ThemeData.light().copyWith( tabBarTheme: const TabBarTheme( labelColor: Colors.amber, ), @@ -96,18 +95,16 @@ enum TestTheme { ThemeData get darkTheme { switch (this) { - case TestTheme.defaultMaterial: + case TestTheme.material2: return ThemeData.dark(useMaterial3: false); - case TestTheme.material3: - return ThemeData.dark(useMaterial3: true); + case TestTheme.defaultMaterial: + return ThemeData.dark(); case TestTheme.highContrast: return ThemeData.from( - useMaterial3: false, colorScheme: const ColorScheme.highContrastDark(), ); case TestTheme.customSwatch: return ThemeData.from( - useMaterial3: false, colorScheme: ColorScheme.fromSwatch( primarySwatch: Colors.red, backgroundColor: Colors.black, @@ -115,7 +112,7 @@ enum TestTheme { ), ); case TestTheme.custom: - return ThemeData.dark(useMaterial3: false).copyWith( + return ThemeData.dark().copyWith( tabBarTheme: const TabBarTheme( labelColor: Colors.amber, ), @@ -146,156 +143,165 @@ void main() { await loadAppFonts(); }); - group('UI Tests', () { - setUp(binding.platformDispatcher.clearPlatformBrightnessTestValue); - - // Tests the layout for each config/step/geometry. - group('layout', () { - testMatrix3( - TestConfig.values, - [ - AuthenticatorStep.signIn, - AuthenticatorStep.signUp, - AuthenticatorStep.resetPassword, - ], - ScreenGeometry.values, - ( - TestConfig testConfig, - AuthenticatorStep step, - ScreenGeometry geometry, - ) { - final configName = '${testConfig.name}Config'; - final stepName = '${step.name}Step'; - final geometryName = '${geometry.name}Geometry'; - final testName = 'layout_${configName}_${stepName}_$geometryName'; + group( + 'UI Tests', + () { + setUp(binding.platformDispatcher.clearPlatformBrightnessTestValue); - setUp(() { - // TODO(Jordan-Nelson): Migrate to WidgetTester - // ignore: deprecated_member_use - binding.window.devicePixelRatioTestValue = geometry.pixelRatio; - // ignore: deprecated_member_use - binding.window.physicalSizeTestValue = geometry.size; - }); + // Tests the layout for each config/step/geometry. + group('layout', () { + testMatrix3( + TestConfig.values, + [ + AuthenticatorStep.signIn, + AuthenticatorStep.signUp, + AuthenticatorStep.resetPassword, + ], + ScreenGeometry.values, + ( + TestConfig testConfig, + AuthenticatorStep step, + ScreenGeometry geometry, + ) { + final configName = '${testConfig.name}Config'; + final stepName = '${step.name}Step'; + final geometryName = '${geometry.name}Geometry'; + final testName = 'layout_${configName}_${stepName}_$geometryName'; - testWidgets('matches snapshot', (WidgetTester tester) async { - await tester.pumpWidget( - MockAuthenticatorApp( - initialStep: step, - config: testConfig.config, - lightTheme: TestTheme.material3.lightTheme, - ), - ); - await tester.pumpAndSettle(); - await expectGoldenMatches(authenticatorFinder, '$testName.png'); - }); - }, - ); - }); + setUp(() { + // TODO(Jordan-Nelson): Migrate to WidgetTester + // ignore: deprecated_member_use + binding.window.devicePixelRatioTestValue = geometry.pixelRatio; + // ignore: deprecated_member_use + binding.window.physicalSizeTestValue = geometry.size; + }); - // Tests the theme/brightness for a limited set of configs/geometries. - group('theme', () { - testMatrix5( - [TestConfig.email, TestConfig.socialProvider, TestConfig.emailOrPhone], - [AuthenticatorStep.signIn, AuthenticatorStep.signUp], - TestTheme.values, - Brightness.values, - [ScreenGeometry.mobile, ScreenGeometry.laptop], - ( - TestConfig testConfig, - AuthenticatorStep step, - TestTheme theme, - Brightness brightness, - ScreenGeometry geometry, - ) { - final configName = '${testConfig.name}Config'; - final themeName = '${theme.name}Theme'; - final brightnessName = '${brightness.name}Mode'; - final stepName = '${step.name}Step'; - final geometryName = '${geometry.name}Geometry'; - final testName = - 'theme_${configName}_${stepName}_${themeName}_${brightnessName}_$geometryName'; + testWidgets('matches snapshot', (WidgetTester tester) async { + await tester.pumpWidget( + MockAuthenticatorApp( + initialStep: step, + config: testConfig.config, + lightTheme: TestTheme.defaultMaterial.lightTheme, + ), + ); + await tester.pumpAndSettle(); + await expectGoldenMatches(authenticatorFinder, '$testName.png'); + }); + }, + ); + }); - setUp(() { - binding.platformDispatcher.platformBrightnessTestValue = brightness; + // Tests the theme/brightness for a limited set of configs/geometries. + group('theme', () { + testMatrix5( + [ + TestConfig.email, + TestConfig.socialProvider, + TestConfig.emailOrPhone, + ], + [AuthenticatorStep.signIn, AuthenticatorStep.signUp], + TestTheme.values, + Brightness.values, + [ScreenGeometry.mobile, ScreenGeometry.laptop], + ( + TestConfig testConfig, + AuthenticatorStep step, + TestTheme theme, + Brightness brightness, + ScreenGeometry geometry, + ) { + final configName = '${testConfig.name}Config'; + final themeName = '${theme.name}Theme'; + final brightnessName = '${brightness.name}Mode'; + final stepName = '${step.name}Step'; + final geometryName = '${geometry.name}Geometry'; + final testName = + 'theme_${configName}_${stepName}_${themeName}_${brightnessName}_$geometryName'; - // TODO(Jordan-Nelson): Migrate to WidgetTester - // ignore: deprecated_member_use - binding.window.devicePixelRatioTestValue = geometry.pixelRatio; - // ignore: deprecated_member_use - binding.window.physicalSizeTestValue = geometry.size; - }); + setUp(() { + binding.platformDispatcher.platformBrightnessTestValue = + brightness; - testWidgets('matches snapshot', (WidgetTester tester) async { - await tester.pumpWidget( - MockAuthenticatorApp( - initialStep: step, - lightTheme: theme.lightTheme, - darkTheme: theme.darkTheme, - config: testConfig.config, - ), - ); - await tester.pumpAndSettle(); - await expectGoldenMatches(authenticatorFinder, '$testName.png'); - }); - }, - ); - }); + // TODO(Jordan-Nelson): Migrate to WidgetTester + // ignore: deprecated_member_use + binding.window.devicePixelRatioTestValue = geometry.pixelRatio; + // ignore: deprecated_member_use + binding.window.physicalSizeTestValue = geometry.size; + }); - // Tests remaining AuthenticatorSteps on email config, with material 3, dark & light mode, mobile & desktop. - group('reference', () { - /// These steps have been tested in other groups. - const skipSteps = [ - AuthenticatorStep.signIn, - AuthenticatorStep.signUp, - AuthenticatorStep.resetPassword, - AuthenticatorStep.loading, - ]; - testMatrix5( - [TestConfig.email], - [...AuthenticatorStep.values] - ..removeWhere((x) => skipSteps.contains(x)), - [TestTheme.material3], - Brightness.values, - [ScreenGeometry.mobile, ScreenGeometry.desktop], - ( - TestConfig testConfig, - AuthenticatorStep step, - TestTheme theme, - Brightness brightness, - ScreenGeometry geometry, - ) { - final configName = '${testConfig.name}Config'; - final themeName = '${theme.name}Theme'; - final brightnessName = '${brightness.name}Mode'; - final stepName = '${step.name}Step'; - final geometryName = '${geometry.name}Geometry'; - final testName = - 'theme_${configName}_${stepName}_${themeName}_${brightnessName}_$geometryName'; + testWidgets('matches snapshot', (WidgetTester tester) async { + await tester.pumpWidget( + MockAuthenticatorApp( + initialStep: step, + lightTheme: theme.lightTheme, + darkTheme: theme.darkTheme, + config: testConfig.config, + ), + ); + await tester.pumpAndSettle(); + await expectGoldenMatches(authenticatorFinder, '$testName.png'); + }); + }, + ); + }); - setUp(() { - binding.platformDispatcher.platformBrightnessTestValue = brightness; + // Tests remaining AuthenticatorSteps on email config, with default theme, dark & light mode, mobile & desktop. + group('reference', () { + /// These steps have been tested in other groups. + const skipSteps = [ + AuthenticatorStep.signIn, + AuthenticatorStep.signUp, + AuthenticatorStep.resetPassword, + AuthenticatorStep.loading, + ]; + testMatrix5( + [TestConfig.email], + [...AuthenticatorStep.values] + ..removeWhere((x) => skipSteps.contains(x)), + [TestTheme.defaultMaterial], + Brightness.values, + [ScreenGeometry.mobile, ScreenGeometry.desktop], + ( + TestConfig testConfig, + AuthenticatorStep step, + TestTheme theme, + Brightness brightness, + ScreenGeometry geometry, + ) { + final configName = '${testConfig.name}Config'; + final themeName = '${theme.name}Theme'; + final brightnessName = '${brightness.name}Mode'; + final stepName = '${step.name}Step'; + final geometryName = '${geometry.name}Geometry'; + final testName = + 'theme_${configName}_${stepName}_${themeName}_${brightnessName}_$geometryName'; - // TODO(Jordan-Nelson): Migrate to WidgetTester - // ignore: deprecated_member_use - binding.window.devicePixelRatioTestValue = geometry.pixelRatio; - // ignore: deprecated_member_use - binding.window.physicalSizeTestValue = geometry.size; - }); + setUp(() { + binding.platformDispatcher.platformBrightnessTestValue = + brightness; + }); - testWidgets('matches snapshot', (WidgetTester tester) async { - await tester.pumpWidget( - MockAuthenticatorApp( - initialStep: step, - lightTheme: theme.lightTheme, - darkTheme: theme.darkTheme, - config: testConfig.config, - ), - ); - await tester.pumpAndSettle(); - await expectGoldenMatches(authenticatorFinder, '$testName.png'); - }); - }, - ); - }); - }); + testWidgets('matches snapshot', (WidgetTester tester) async { + tester.view.devicePixelRatio = geometry.pixelRatio; + tester.view.physicalSize = geometry.size; + await tester.pumpWidget( + MockAuthenticatorApp( + initialStep: step, + lightTheme: theme.lightTheme, + darkTheme: theme.darkTheme, + config: testConfig.config, + ), + ); + await tester.pumpAndSettle(); + await expectGoldenMatches(authenticatorFinder, '$testName.png'); + }); + }, + ); + }); + }, + // Tests are not expected to pass on Flutter 3.19 (Dart 3.3.x) + // Snapshots were generated with flutter 3.22 which contains + // UI differences from 3.19. + skip: Platform.version.startsWith('3.3'), + ); } diff --git a/packages/authenticator/amplify_authenticator_test/example/.gitignore b/packages/authenticator/amplify_authenticator_test/example/.gitignore index 24476c5d1e..2226cff9f5 100644 --- a/packages/authenticator/amplify_authenticator_test/example/.gitignore +++ b/packages/authenticator/amplify_authenticator_test/example/.gitignore @@ -42,3 +42,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +amplify_outputs.dart diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/email_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/email_config.dart new file mode 100644 index 0000000000..fecab138cf --- /dev/null +++ b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/email_config.dart @@ -0,0 +1,30 @@ +const emailConfig = '''{ + "version": "1", + "auth": { + "aws_region": "", + "user_pool_id": "", + "user_pool_client_id": "", + "identity_pool_id": "", + "password_policy": { + "min_length": 8, + "require_numbers": false, + "require_lowercase": false, + "require_uppercase": false, + "require_symbols": false + }, + "standard_required_attributes": [ + "email" + ], + "username_attributes": [ + "email" + ], + "user_verification_types": [ + "email" + ], + "unauthenticated_identities_enabled": true, + "mfa_configuration": "NONE", + "mfa_methods": [ + "SMS" + ] + } +}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/email_or_phone_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/email_or_phone_config.dart new file mode 100644 index 0000000000..ad5ef29355 --- /dev/null +++ b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/email_or_phone_config.dart @@ -0,0 +1,32 @@ +const emailOrPhoneConfig = '''{ + "version": "1", + "auth": { + "aws_region": "us-east-1", + "user_pool_id": "us-east-1_xxxx", + "user_pool_client_id": "xxxx", + "identity_pool_id": "us-east-1:xxxx", + "password_policy": { + "min_length": 8, + "require_numbers": false, + "require_lowercase": false, + "require_uppercase": false, + "require_symbols": false + }, + "standard_required_attributes": [ + "email", + "phone_number" + ], + "username_attributes": [ + "email", + "phone_number" + ], + "user_verification_types": [ + "email" + ], + "unauthenticated_identities_enabled": true, + "mfa_configuration": "REQUIRED", + "mfa_methods": [ + "SMS" + ] + } +}'''; \ No newline at end of file diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/phone_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/phone_config.dart new file mode 100644 index 0000000000..4363b1e721 --- /dev/null +++ b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/phone_config.dart @@ -0,0 +1,30 @@ +const phoneNumberConfig = '''{ + "version": "1", + "auth": { + "aws_region": "", + "user_pool_id": "", + "user_pool_client_id": "", + "identity_pool_id": "", + "password_policy": { + "min_length": 8, + "require_numbers": false, + "require_lowercase": false, + "require_uppercase": false, + "require_symbols": false + }, + "standard_required_attributes": [ + "email" + ], + "username_attributes": [ + "phone_number" + ], + "user_verification_types": [ + "email" + ], + "unauthenticated_identities_enabled": true, + "mfa_configuration": "NONE", + "mfa_methods": [ + "SMS" + ] + } +}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/sms_or_totp_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/sms_or_totp_config.dart new file mode 100644 index 0000000000..e073adcce5 --- /dev/null +++ b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/sms_or_totp_config.dart @@ -0,0 +1,29 @@ +const smsOrTotpConfig = '''{ + "version": "1", + "auth": { + "aws_region": "", + "user_pool_id": "", + "user_pool_client_id": "", + "identity_pool_id": "", + "password_policy": { + "min_length": 8, + "require_numbers": false, + "require_lowercase": false, + "require_uppercase": false, + "require_symbols": false + }, + "standard_required_attributes": [ + "email" + ], + "username_attributes": [], + "user_verification_types": [ + "email" + ], + "unauthenticated_identities_enabled": true, + "mfa_configuration": "REQUIRED", + "mfa_methods": [ + "TOTP", + "SMS" + ] + } +}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/social_providers_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/social_providers_config.dart new file mode 100644 index 0000000000..f7f2397f15 --- /dev/null +++ b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/social_providers_config.dart @@ -0,0 +1,53 @@ +const socialProviderConfig = '''{ + "version": "1", + "auth": { + "aws_region": "", + "user_pool_id": "", + "user_pool_client_id": "", + "identity_pool_id": "", + "password_policy": { + "min_length": 8, + "require_numbers": false, + "require_lowercase": false, + "require_uppercase": false, + "require_symbols": false + }, + "oauth": { + "identity_providers": [ + "SIGN_IN_WITH_APPLE", + "LOGIN_WITH_AMAZON", + "FACEBOOK", + "GOOGLE" + ], + "domain": "", + "scopes": [ + "phone", + "email", + "openid", + "profile", + "aws.cognito.signin.user.admin" + ], + "redirect_sign_in_uri": [ + "" + ], + "redirect_sign_out_uri": [ + "" + ], + "response_type": "code" + }, + "standard_required_attributes": [ + "email" + ], + "username_attributes": [ + "email" + ], + "user_verification_types": [ + "email" + ], + "unauthenticated_identities_enabled": true, + "mfa_configuration": "NONE", + "mfa_methods": [ + "SMS" + ] + } +}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/username_with_attributes.dart b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/username_with_attributes.dart new file mode 100644 index 0000000000..801d5e5e79 --- /dev/null +++ b/packages/authenticator/amplify_authenticator_test/lib/src/amplify_outputs/username_with_attributes.dart @@ -0,0 +1,30 @@ +const usernameWithAttributesConfig = '''{ + "version": "1", + "auth": { + "aws_region": "", + "user_pool_id": "", + "user_pool_client_id": "", + "identity_pool_id": "", + "password_policy": { + "min_length": 8, + "require_numbers": false, + "require_lowercase": false, + "require_uppercase": false, + "require_symbols": false + }, + "standard_required_attributes": [ + "email", + "preferred_username", + "birthdate" + ], + "username_attributes": [], + "user_verification_types": [ + "email" + ], + "unauthenticated_identities_enabled": true, + "mfa_configuration": "NONE", + "mfa_methods": [ + "SMS" + ] + } +}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/configs/email_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/configs/email_config.dart deleted file mode 100644 index cac07012b3..0000000000 --- a/packages/authenticator/amplify_authenticator_test/lib/src/configs/email_config.dart +++ /dev/null @@ -1,53 +0,0 @@ -const emailConfig = ''' { - "UserAgent": "aws-amplify-cli/2.0", - "Version": "1.0", - "auth": { - "plugins": { - "awsCognitoAuthPlugin": { - "UserAgent": "aws-amplify-cli/0.1.0", - "Version": "0.1.0", - "IdentityManager": { - "Default": {} - }, - "CredentialsProvider": { - "CognitoIdentity": { - "Default": { - "PoolId": "", - "Region": "" - } - } - }, - "CognitoUserPool": { - "Default": { - "PoolId": "", - "AppClientId": "", - "Region": "" - } - }, - "Auth": { - "Default": { - "authenticationFlowType": "USER_SRP_AUTH", - "socialProviders": [], - "usernameAttributes": [ - "EMAIL" - ], - "signupAttributes": [ - "EMAIL" - ], - "passwordProtectionSettings": { - "passwordPolicyMinLength": 8, - "passwordPolicyCharacters": [] - }, - "mfaConfiguration": "OFF", - "mfaTypes": [ - "SMS" - ], - "verificationMechanisms": [ - "EMAIL" - ] - } - } - } - } - } -}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/configs/email_or_phone_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/configs/email_or_phone_config.dart deleted file mode 100644 index 83d0e9441d..0000000000 --- a/packages/authenticator/amplify_authenticator_test/lib/src/configs/email_or_phone_config.dart +++ /dev/null @@ -1,55 +0,0 @@ -const emailOrPhoneConfig = ''' { - "UserAgent": "aws-amplify-cli/2.0", - "Version": "1.0", - "auth": { - "plugins": { - "awsCognitoAuthPlugin": { - "UserAgent": "aws-amplify-cli/0.1.0", - "Version": "0.1.0", - "IdentityManager": { - "Default": {} - }, - "CredentialsProvider": { - "CognitoIdentity": { - "Default": { - "PoolId": "us-east-1:xxxx", - "Region": "us-east-1" - } - } - }, - "CognitoUserPool": { - "Default": { - "PoolId": "us-east-1_xxxx", - "AppClientId": "xxxx", - "Region": "us-east-1" - } - }, - "Auth": { - "Default": { - "authenticationFlowType": "USER_SRP_AUTH", - "socialProviders": [], - "usernameAttributes": [ - "EMAIL", - "PHONE_NUMBER" - ], - "signupAttributes": [ - "EMAIL", - "PHONE_NUMBER" - ], - "passwordProtectionSettings": { - "passwordPolicyMinLength": 8, - "passwordPolicyCharacters": [] - }, - "mfaConfiguration": "ON", - "mfaTypes": [ - "SMS" - ], - "verificationMechanisms": [ - "EMAIL" - ] - } - } - } - } - } -}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/configs/phone_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/configs/phone_config.dart deleted file mode 100644 index b90ec8aa25..0000000000 --- a/packages/authenticator/amplify_authenticator_test/lib/src/configs/phone_config.dart +++ /dev/null @@ -1,53 +0,0 @@ -const phoneNumberConfig = ''' { - "UserAgent": "aws-amplify-cli/2.0", - "Version": "1.0", - "auth": { - "plugins": { - "awsCognitoAuthPlugin": { - "UserAgent": "aws-amplify-cli/0.1.0", - "Version": "0.1.0", - "IdentityManager": { - "Default": {} - }, - "CredentialsProvider": { - "CognitoIdentity": { - "Default": { - "PoolId": "", - "Region": "" - } - } - }, - "CognitoUserPool": { - "Default": { - "PoolId": "", - "AppClientId": "", - "Region": "" - } - }, - "Auth": { - "Default": { - "authenticationFlowType": "USER_SRP_AUTH", - "socialProviders": [], - "usernameAttributes": [ - "PHONE_NUMBER" - ], - "signupAttributes": [ - "EMAIL" - ], - "passwordProtectionSettings": { - "passwordPolicyMinLength": 8, - "passwordPolicyCharacters": [] - }, - "mfaConfiguration": "OFF", - "mfaTypes": [ - "SMS" - ], - "verificationMechanisms": [ - "EMAIL" - ] - } - } - } - } - } -}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/configs/sms_or_totp_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/configs/sms_or_totp_config.dart deleted file mode 100644 index 1f02e87a1a..0000000000 --- a/packages/authenticator/amplify_authenticator_test/lib/src/configs/sms_or_totp_config.dart +++ /dev/null @@ -1,51 +0,0 @@ -const smsOrTotpConfig = ''' { - "UserAgent": "aws-amplify-cli/2.0", - "Version": "1.0", - "auth": { - "plugins": { - "awsCognitoAuthPlugin": { - "UserAgent": "aws-amplify-cli/0.1.0", - "Version": "0.1.0", - "IdentityManager": { - "Default": {} - }, - "CredentialsProvider": { - "CognitoIdentity": { - "Default": { - "PoolId": "", - "Region": "" - } - } - }, - "CognitoUserPool": { - "Default": { - "PoolId": "", - "AppClientId": "", - "Region": "" - } - }, - "Auth": { - "Default": { - "authenticationFlowType": "USER_SRP_AUTH", - "usernameAttributes": [], - "signupAttributes": [ - "EMAIL" - ], - "passwordProtectionSettings": { - "passwordPolicyMinLength": 8, - "passwordPolicyCharacters": [] - }, - "mfaConfiguration": "ON", - "mfaTypes": [ - "TOTP", - "SMS" - ], - "verificationMechanisms": [ - "EMAIL" - ] - } - } - } - } - } -}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/configs/social_providers_config.dart b/packages/authenticator/amplify_authenticator_test/lib/src/configs/social_providers_config.dart deleted file mode 100644 index 30afc7b8cb..0000000000 --- a/packages/authenticator/amplify_authenticator_test/lib/src/configs/social_providers_config.dart +++ /dev/null @@ -1,71 +0,0 @@ -const socialProviderConfig = ''' { - "UserAgent": "aws-amplify-cli/2.0", - "Version": "1.0", - "auth": { - "plugins": { - "awsCognitoAuthPlugin": { - "UserAgent": "aws-amplify-cli/0.1.0", - "Version": "0.1.0", - "IdentityManager": { - "Default": {} - }, - "CredentialsProvider": { - "CognitoIdentity": { - "Default": { - "PoolId": "", - "Region": "" - } - } - }, - "CognitoUserPool": { - "Default": { - "PoolId": "", - "AppClientId": "", - "Region": "" - } - }, - "Auth": { - "Default": { - "OAuth": { - "WebDomain": "", - "AppClientId": "", - "SignInRedirectURI": "", - "SignOutRedirectURI": "", - "Scopes": [ - "phone", - "email", - "openid", - "profile", - "aws.cognito.signin.user.admin" - ] - }, - "authenticationFlowType": "USER_SRP_AUTH", - "socialProviders": [ - "APPLE", - "AMAZON", - "FACEBOOK", - "GOOGLE" - ], - "usernameAttributes": [ - "EMAIL" - ], - "signupAttributes": [ - "EMAIL" - ], - "passwordProtectionSettings": { - "passwordPolicyMinLength": 8, - "passwordPolicyCharacters": [] - }, - "mfaConfiguration": "OFF", - "mfaTypes": [ - "SMS" - ], - "verificationMechanisms": [ - "EMAIL" - ] - } - } - } - } - } -}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/configs/username_with_attributes.dart b/packages/authenticator/amplify_authenticator_test/lib/src/configs/username_with_attributes.dart deleted file mode 100644 index b20088bb2d..0000000000 --- a/packages/authenticator/amplify_authenticator_test/lib/src/configs/username_with_attributes.dart +++ /dev/null @@ -1,53 +0,0 @@ -const usernameWithAttributesConfig = ''' { - "UserAgent": "aws-amplify-cli/2.0", - "Version": "1.0", - "auth": { - "plugins": { - "awsCognitoAuthPlugin": { - "UserAgent": "aws-amplify-cli/0.1.0", - "Version": "0.1.0", - "IdentityManager": { - "Default": {} - }, - "CredentialsProvider": { - "CognitoIdentity": { - "Default": { - "PoolId": "", - "Region": "" - } - } - }, - "CognitoUserPool": { - "Default": { - "PoolId": "", - "AppClientId": "", - "Region": "" - } - }, - "Auth": { - "Default": { - "authenticationFlowType": "USER_SRP_AUTH", - "socialProviders": [], - "usernameAttributes": [], - "signupAttributes": [ - "EMAIL", - "PREFERRED_USERNAME", - "BIRTHDATE" - ], - "passwordProtectionSettings": { - "passwordPolicyMinLength": 8, - "passwordPolicyCharacters": [] - }, - "mfaConfiguration": "OFF", - "mfaTypes": [ - "SMS" - ], - "verificationMechanisms": [ - "EMAIL" - ] - } - } - } - } - } -}'''; diff --git a/packages/authenticator/amplify_authenticator_test/lib/src/mock_authenticator_app.dart b/packages/authenticator/amplify_authenticator_test/lib/src/mock_authenticator_app.dart index 651d3452e7..51f4a84830 100644 --- a/packages/authenticator/amplify_authenticator_test/lib/src/mock_authenticator_app.dart +++ b/packages/authenticator/amplify_authenticator_test/lib/src/mock_authenticator_app.dart @@ -7,7 +7,7 @@ import 'package:amplify_authenticator/amplify_authenticator.dart'; import 'package:amplify_authenticator/src/blocs/auth/auth_bloc.dart'; import 'package:amplify_authenticator/src/services/amplify_auth_service.dart'; import 'package:amplify_authenticator_test/amplify_authenticator_test.dart'; -import 'package:amplify_authenticator_test/src/configs/email_config.dart'; +import 'package:amplify_authenticator_test/src/amplify_outputs/email_config.dart'; import 'package:amplify_flutter/amplify_flutter.dart'; import 'package:amplify_integration_test/amplify_integration_test.dart'; import 'package:flutter/material.dart'; diff --git a/packages/common/amplify_db_common/CHANGELOG.md b/packages/common/amplify_db_common/CHANGELOG.md index 7c07edbdc9..fbf2d7954c 100644 --- a/packages/common/amplify_db_common/CHANGELOG.md +++ b/packages/common/amplify_db_common/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.4.2 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 0.4.1 - Minor bug fixes and improvements diff --git a/packages/common/amplify_db_common/example/.gitignore b/packages/common/amplify_db_common/example/.gitignore index 24476c5d1e..2226cff9f5 100644 --- a/packages/common/amplify_db_common/example/.gitignore +++ b/packages/common/amplify_db_common/example/.gitignore @@ -42,3 +42,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +amplify_outputs.dart diff --git a/packages/common/amplify_db_common/pubspec.yaml b/packages/common/amplify_db_common/pubspec.yaml index de0fd60454..1d4e42c61c 100644 --- a/packages/common/amplify_db_common/pubspec.yaml +++ b/packages/common/amplify_db_common/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_db_common description: Common utilities for working with databases such as SQLite. -version: 0.4.1 +version: 0.4.2 homepage: https://github.com/aws-amplify/amplify-flutter/tree/main repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/common/amplify_db_common issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -10,7 +10,7 @@ environment: flutter: ">=3.19.0" dependencies: - amplify_db_common_dart: ">=0.4.2 <0.5.0" + amplify_db_common_dart: ">=0.4.3 <0.5.0" drift: ">=2.14.0 <2.15.0" flutter: sdk: flutter diff --git a/packages/common/amplify_db_common_dart/CHANGELOG.md b/packages/common/amplify_db_common_dart/CHANGELOG.md index e72d1aad83..4b2c74fd6a 100644 --- a/packages/common/amplify_db_common_dart/CHANGELOG.md +++ b/packages/common/amplify_db_common_dart/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.3 + +- Minor bug fixes and improvements + ## 0.4.2 - Minor bug fixes and improvements diff --git a/packages/common/amplify_db_common_dart/pubspec.yaml b/packages/common/amplify_db_common_dart/pubspec.yaml index d8220e33e3..d669ac8036 100644 --- a/packages/common/amplify_db_common_dart/pubspec.yaml +++ b/packages/common/amplify_db_common_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_db_common_dart description: Common utilities for working with databases such as sqlite. Used throughout Amplify packages. -version: 0.4.2 +version: 0.4.3 homepage: https://github.com/aws-amplify/amplify-flutter/tree/main repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/common/amplify_db_common_dart issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -9,7 +9,7 @@ environment: sdk: ^3.3.0 dependencies: - amplify_core: ">=2.1.0 <2.2.0" + amplify_core: ">=2.2.0 <2.3.0" async: ^2.10.0 aws_common: ">=0.7.0 <0.8.0" drift: ">=2.14.0 <2.15.0" diff --git a/packages/notifications/push/amplify_push_notifications/CHANGELOG.md b/packages/notifications/push/amplify_push_notifications/CHANGELOG.md index 1a8675bab5..6a47b55e74 100644 --- a/packages/notifications/push/amplify_push_notifications/CHANGELOG.md +++ b/packages/notifications/push/amplify_push_notifications/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.2.0 + +### Fixes +- fix(notifications): allow offline configuration + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 - Minor bug fixes and improvements diff --git a/packages/notifications/push/amplify_push_notifications/android/build.gradle b/packages/notifications/push/amplify_push_notifications/android/build.gradle index 7b2d5bb67e..5ddf57a8e6 100644 --- a/packages/notifications/push/amplify_push_notifications/android/build.gradle +++ b/packages/notifications/push/amplify_push_notifications/android/build.gradle @@ -65,7 +65,7 @@ android { dependencies { api "com.google.firebase:firebase-messaging:23.2.0" // Import support library for Amplify push utils - implementation 'com.amplifyframework:aws-push-notifications-pinpoint-common:2.15.0' + implementation 'com.amplifyframework:aws-push-notifications-pinpoint-common:2.19.1' implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1" implementation project(path: ':flutter_plugin_android_lifecycle') implementation 'androidx.test:core-ktx:1.5.0' diff --git a/packages/notifications/push/amplify_push_notifications/example/.gitignore b/packages/notifications/push/amplify_push_notifications/example/.gitignore index 24476c5d1e..2226cff9f5 100644 --- a/packages/notifications/push/amplify_push_notifications/example/.gitignore +++ b/packages/notifications/push/amplify_push_notifications/example/.gitignore @@ -42,3 +42,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +amplify_outputs.dart diff --git a/packages/notifications/push/amplify_push_notifications/lib/src/amplify_push_notifications_impl.dart b/packages/notifications/push/amplify_push_notifications/lib/src/amplify_push_notifications_impl.dart index eaf8faba52..9105e011f9 100644 --- a/packages/notifications/push/amplify_push_notifications/lib/src/amplify_push_notifications_impl.dart +++ b/packages/notifications/push/amplify_push_notifications/lib/src/amplify_push_notifications_impl.dart @@ -205,10 +205,10 @@ abstract class AmplifyPushNotifications @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { - final notificationsConfig = config?.notifications?.awsPlugin; + final notificationsConfig = config?.notifications; if (notificationsConfig == null) { throw const PushNotificationException( 'No Pinpoint plugin config available', diff --git a/packages/notifications/push/amplify_push_notifications/pubspec.yaml b/packages/notifications/push/amplify_push_notifications/pubspec.yaml index f457fc95bd..f1e16298f2 100644 --- a/packages/notifications/push/amplify_push_notifications/pubspec.yaml +++ b/packages/notifications/push/amplify_push_notifications/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_push_notifications description: The Amplify Flutter Push Notifications package implementing features agnostic of an AWS Service such as Pinpoint. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -9,8 +9,8 @@ environment: flutter: ">=3.19.0" dependencies: - amplify_core: ">=2.1.0 <2.2.0" - amplify_secure_storage: ">=0.5.2 <0.6.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_secure_storage: ">=0.5.3 <0.6.0" async: ^2.10.0 flutter: sdk: flutter diff --git a/packages/notifications/push/amplify_push_notifications/test/amplify_push_notifications_impl_test.dart b/packages/notifications/push/amplify_push_notifications/test/amplify_push_notifications_impl_test.dart index 4982136ffa..a170e8e03f 100644 --- a/packages/notifications/push/amplify_push_notifications/test/amplify_push_notifications_impl_test.dart +++ b/packages/notifications/push/amplify_push_notifications/test/amplify_push_notifications_impl_test.dart @@ -54,9 +54,11 @@ void main() { ..addInstance(mockPushNotificationsHostApi) ..addInstance(mockAmplifySecureStorage); + // TODO(nikahsn): update to use AmplifyOutputs config final config = AmplifyConfig.fromJson( jsonDecode(amplifyconfig) as Map, - ); + // ignore: invalid_use_of_internal_member + ).toAmplifyOutputs(); setUp(() { plugin = TestAmplifyPushNotifications( @@ -202,9 +204,11 @@ void main() { group('Config failure cases', () { test('should throw exception when configuring if there is no appId present', () async { + // TODO(nikahsn): update to use AmplifyOutputs config final config = AmplifyConfig.fromJson( jsonDecode(noPushAppIdAmplifyConfig) as Map, - ); + // ignore: invalid_use_of_internal_member + ).toAmplifyOutputs(); expect( () async => plugin.configure( authProviderRepo: authProviderRepo, diff --git a/packages/notifications/push/amplify_push_notifications/test/amplify_push_notifications_impl_test.mocks.dart b/packages/notifications/push/amplify_push_notifications/test/amplify_push_notifications_impl_test.mocks.dart index 7b11a92877..a484147ca5 100644 --- a/packages/notifications/push/amplify_push_notifications/test/amplify_push_notifications_impl_test.mocks.dart +++ b/packages/notifications/push/amplify_push_notifications/test/amplify_push_notifications_impl_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in amplify_push_notifications/test/amplify_push_notifications_impl_test.dart. // Do not manually edit this file. @@ -6,20 +6,25 @@ import 'dart:async' as _i5; import 'package:amplify_core/amplify_core.dart' as _i4; +import 'package:amplify_core/src/config/amplify_outputs/notifications/notifications_outputs.dart' + as _i6; import 'package:amplify_push_notifications/src/native_push_notifications_plugin.g.dart' as _i2; import 'package:amplify_push_notifications/src/push_notifications_flutter_api.dart' - as _i7; + as _i9; import 'package:amplify_secure_storage/src/amplify_secure_storage.vm.dart' - as _i6; + as _i7; import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i8; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -77,6 +82,7 @@ class MockPushNotificationsHostApi extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future<_i2.GetPermissionStatusResult> getPermissionStatus() => (super.noSuchMethod( @@ -93,6 +99,7 @@ class MockPushNotificationsHostApi extends _i1.Mock ), )), ) as _i5.Future<_i2.GetPermissionStatusResult>); + @override _i5.Future requestPermissions( _i2.PermissionsOptions? arg_withPermissionOptions) => @@ -103,6 +110,7 @@ class MockPushNotificationsHostApi extends _i1.Mock ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future?> getLaunchNotification() => (super.noSuchMethod( @@ -112,6 +120,7 @@ class MockPushNotificationsHostApi extends _i1.Mock ), returnValue: _i5.Future?>.value(), ) as _i5.Future?>); + @override _i5.Future getBadgeCount() => (super.noSuchMethod( Invocation.method( @@ -120,6 +129,7 @@ class MockPushNotificationsHostApi extends _i1.Mock ), returnValue: _i5.Future.value(0), ) as _i5.Future); + @override _i5.Future setBadgeCount(int? arg_withBadgeCount) => (super.noSuchMethod( @@ -130,6 +140,7 @@ class MockPushNotificationsHostApi extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future registerCallbackFunction(int? arg_callbackHandle) => (super.noSuchMethod( @@ -153,7 +164,7 @@ class MockServiceProviderClient extends _i1.Mock @override _i5.Future init({ - required _i4.NotificationsPinpointPluginConfig? config, + required _i6.NotificationsOutputs? config, required _i4.AmplifyAuthProviderRepository? authProviderRepo, }) => (super.noSuchMethod( @@ -168,6 +179,7 @@ class MockServiceProviderClient extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future registerDevice(String? deviceToken) => (super.noSuchMethod( Invocation.method( @@ -177,6 +189,7 @@ class MockServiceProviderClient extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future recordNotificationEvent({ required _i4.PinpointEventType? eventType, @@ -194,6 +207,7 @@ class MockServiceProviderClient extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future identifyUser({ required String? userId, @@ -217,7 +231,7 @@ class MockServiceProviderClient extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockAmplifySecureStorage extends _i1.Mock - implements _i6.AmplifySecureStorage { + implements _i7.AmplifySecureStorage { MockAmplifySecureStorage() { _i1.throwOnMissingStub(this); } @@ -230,11 +244,16 @@ class MockAmplifySecureStorage extends _i1.Mock Invocation.getter(#config), ), ) as _i3.AmplifySecureStorageConfig); + @override String get runtimeTypeName => (super.noSuchMethod( Invocation.getter(#runtimeTypeName), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#runtimeTypeName), + ), ) as String); + @override _i4.AWSLogger get logger => (super.noSuchMethod( Invocation.getter(#logger), @@ -243,6 +262,7 @@ class MockAmplifySecureStorage extends _i1.Mock Invocation.getter(#logger), ), ) as _i4.AWSLogger); + @override _i5.Future delete({required String? key}) => (super.noSuchMethod( Invocation.method( @@ -253,6 +273,7 @@ class MockAmplifySecureStorage extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future read({required String? key}) => (super.noSuchMethod( Invocation.method( @@ -262,6 +283,7 @@ class MockAmplifySecureStorage extends _i1.Mock ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future write({ required String? key, @@ -279,6 +301,7 @@ class MockAmplifySecureStorage extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future removeAll() => (super.noSuchMethod( Invocation.method( @@ -294,7 +317,7 @@ class MockAmplifySecureStorage extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockAmplifyPushNotificationsFlutterApi extends _i1.Mock - implements _i7.AmplifyPushNotificationsFlutterApi { + implements _i9.AmplifyPushNotificationsFlutterApi { MockAmplifyPushNotificationsFlutterApi() { _i1.throwOnMissingStub(this); } @@ -304,6 +327,7 @@ class MockAmplifyPushNotificationsFlutterApi extends _i1.Mock Invocation.getter(#eventQueue), returnValue: <_i4.PushNotificationMessage>[], ) as List<_i4.PushNotificationMessage>); + @override set onNullifyLaunchNotificationCallback(void Function()? callback) => super.noSuchMethod( @@ -313,6 +337,7 @@ class MockAmplifyPushNotificationsFlutterApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override set serviceProviderClient(_i4.ServiceProviderClient? serviceProviderClient) => super.noSuchMethod( @@ -322,6 +347,7 @@ class MockAmplifyPushNotificationsFlutterApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void registerOnReceivedInBackgroundCallback( _i4.OnRemoteMessageCallback? callback) => @@ -332,6 +358,7 @@ class MockAmplifyPushNotificationsFlutterApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override _i5.Future onNotificationReceivedInBackground( Map? payload) => @@ -343,6 +370,7 @@ class MockAmplifyPushNotificationsFlutterApi extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override void nullifyLaunchNotification() => super.noSuchMethod( Invocation.method( diff --git a/packages/notifications/push/amplify_push_notifications_pinpoint/CHANGELOG.md b/packages/notifications/push/amplify_push_notifications_pinpoint/CHANGELOG.md index d871775cb0..2f76f14813 100644 --- a/packages/notifications/push/amplify_push_notifications_pinpoint/CHANGELOG.md +++ b/packages/notifications/push/amplify_push_notifications_pinpoint/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.2.0 + +### Fixes +- fix(notifications): allow offline configuration + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 - Minor bug fixes and improvements diff --git a/packages/notifications/push/amplify_push_notifications_pinpoint/example/.gitignore b/packages/notifications/push/amplify_push_notifications_pinpoint/example/.gitignore index 81995e1f44..70c51a3d82 100644 --- a/packages/notifications/push/amplify_push_notifications_pinpoint/example/.gitignore +++ b/packages/notifications/push/amplify_push_notifications_pinpoint/example/.gitignore @@ -64,3 +64,5 @@ amplifytools.xcconfig .secret-* **.sample #amplify-do-not-edit-end + +amplify_outputs.dart diff --git a/packages/notifications/push/amplify_push_notifications_pinpoint/lib/src/pinpoint_provider.dart b/packages/notifications/push/amplify_push_notifications_pinpoint/lib/src/pinpoint_provider.dart index 7703fcfee4..9ed9639d94 100644 --- a/packages/notifications/push/amplify_push_notifications_pinpoint/lib/src/pinpoint_provider.dart +++ b/packages/notifications/push/amplify_push_notifications_pinpoint/lib/src/pinpoint_provider.dart @@ -12,6 +12,8 @@ import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/analyt // ignore: implementation_imports import 'package:amplify_analytics_pinpoint_dart/src/sdk/src/pinpoint/model/channel_type.dart'; import 'package:amplify_core/amplify_core.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/notifications/notifications_outputs.dart'; import 'package:amplify_push_notifications_pinpoint/src/event_info_type.dart'; import 'package:amplify_secure_storage/amplify_secure_storage.dart'; import 'package:flutter/widgets.dart'; @@ -54,7 +56,7 @@ class PinpointProvider implements ServiceProviderClient { @override Future init({ - required NotificationsPinpointPluginConfig config, + required NotificationsOutputs config, required AmplifyAuthProviderRepository authProviderRepo, @visibleForTesting AnalyticsClient? analyticsClient, }) async { @@ -68,8 +70,8 @@ class PinpointProvider implements ServiceProviderClient { 'No AWSIamAmplifyAuthProvider available. Is Auth category added and configured?', ); } - final region = config.region; - final appId = config.appId; + final region = config.awsRegion; + final appId = config.amazonPinpointAppId; final secureStorageFactory = AmplifySecureStorage.factoryFrom(); @@ -168,21 +170,25 @@ class PinpointProvider implements ServiceProviderClient { @override Future registerDevice(String deviceToken) async { + if (!_isInitialized) { + _logger.error( + 'Pinpoint provider not configured.', + ); + return; + } + _analyticsClient.endpointClient.address = deviceToken; + final channelType = _getChannelType(); + _analyticsClient.endpointClient.channelType = channelType; + _analyticsClient.endpointClient.optOut = 'NONE'; try { - if (!_isInitialized) { - _logger.error( - 'Pinpoint provider not configured.', - ); - return; - } - _analyticsClient.endpointClient.address = deviceToken; - final channelType = _getChannelType(); - _analyticsClient.endpointClient.channelType = channelType; - _analyticsClient.endpointClient.optOut = 'NONE'; await _withUserAgent( () async => _analyticsClient.endpointClient.updateEndpoint(), ); - } on AWSHttpException catch (e) { + // This is allow offline configuration. + // `EndpointClient.updateEndpoint()` catches all exception and convert + // them to `AnalyticsException`. + // `AnalyticsException` converts `AWSHttpException` to `NetworkException`. + } on NetworkException catch (e) { _logger.error('Network problem when registering device: ', e); } } diff --git a/packages/notifications/push/amplify_push_notifications_pinpoint/pubspec.yaml b/packages/notifications/push/amplify_push_notifications_pinpoint/pubspec.yaml index f86715b847..cda3f8998d 100644 --- a/packages/notifications/push/amplify_push_notifications_pinpoint/pubspec.yaml +++ b/packages/notifications/push/amplify_push_notifications_pinpoint/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_push_notifications_pinpoint description: The Amplify Flutter Push Notifications category plugin using the AWS Pinpoint provider. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -14,13 +14,13 @@ platforms: android: dependencies: - amplify_analytics_pinpoint: ">=2.1.0 <2.2.0" - amplify_analytics_pinpoint_dart: ">=0.4.1 <0.5.0" - amplify_auth_cognito: ">=2.1.0 <2.2.0" - amplify_core: ">=2.1.0 <2.2.0" - amplify_flutter: ">=2.1.0 <2.2.0" - amplify_push_notifications: ">=2.1.0 <2.2.0" - amplify_secure_storage: ">=0.5.2 <0.6.0" + amplify_analytics_pinpoint: ">=2.2.0 <2.3.0" + amplify_analytics_pinpoint_dart: ">=0.4.2 <0.5.0" + amplify_auth_cognito: ">=2.2.0 <2.3.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_flutter: ">=2.2.0 <2.3.0" + amplify_push_notifications: ">=2.2.0 <2.3.0" + amplify_secure_storage: ">=0.5.3 <0.6.0" flutter: sdk: flutter flutter_plugin_android_lifecycle: ^2.0.9 diff --git a/packages/notifications/push/amplify_push_notifications_pinpoint/test/pinpoint_provider_test.dart b/packages/notifications/push/amplify_push_notifications_pinpoint/test/pinpoint_provider_test.dart index f5384def1e..1baaa9ccc7 100644 --- a/packages/notifications/push/amplify_push_notifications_pinpoint/test/pinpoint_provider_test.dart +++ b/packages/notifications/push/amplify_push_notifications_pinpoint/test/pinpoint_provider_test.dart @@ -5,6 +5,8 @@ import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/analytics_client.dart'; import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/endpoint_client/endpoint_client.dart'; import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/event_client/event_client.dart'; +import 'package:amplify_core/src/config/amplify_outputs/notifications/amazon_pinpoint_channel.dart'; +import 'package:amplify_core/src/config/amplify_outputs/notifications/notifications_outputs.dart'; import 'package:amplify_flutter/amplify_flutter.dart'; import 'package:amplify_push_notifications_pinpoint/src/pinpoint_provider.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -30,9 +32,10 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); final pinpointProvider = PinpointProvider(); final mockAmplifyAuthProviderRepository = MockAmplifyAuthProviderRepository(); - const notificationsPinpointConfig = NotificationsPinpointPluginConfig( - appId: 'APP_ID', - region: 'REGION', + const notificationsPinpointConfig = NotificationsOutputs( + amazonPinpointAppId: 'APP_ID', + awsRegion: 'REGION', + channels: [AmazonPinpointChannel.fcm, AmazonPinpointChannel.apns], ); final awsIamAmplifyAuthProvider = MockAWSIamAmplifyAuthProvider(); final mockAnalyticsClient = MockAnalyticsClient(); @@ -274,6 +277,48 @@ void main() { verify(mockEndpointClient.updateEndpoint); }); + test('registerDevice should run successfully when device is offline', + () async { + when( + () => mockAmplifyAuthProviderRepository.getAuthProvider( + APIAuthorizationType.iam.authProviderToken, + ), + ).thenReturn(awsIamAmplifyAuthProvider); + when( + () => mockAnalyticsClient.init( + pinpointAppId: any(named: 'pinpointAppId'), + region: any(named: 'region'), + authProvider: any(named: 'authProvider'), + ), + ).thenAnswer((realInvocation) async {}); + + final mockEndpointClient = MockEndpointClient(); + + when(mockEndpointClient.updateEndpoint) + .thenThrow(const NetworkException('message')); + + when( + () => mockAnalyticsClient.endpointClient, + ).thenReturn(mockEndpointClient); + + await expectLater( + pinpointProvider.init( + config: notificationsPinpointConfig, + authProviderRepo: mockAmplifyAuthProviderRepository, + analyticsClient: mockAnalyticsClient, + ), + completes, + ); + + expect( + pinpointProvider.registerDevice( + '', + ), + completes, + ); + verify(mockEndpointClient.updateEndpoint); + }); + test('recordEvent should run successfully', () async { when( () => mockAmplifyAuthProviderRepository.getAuthProvider( diff --git a/packages/secure_storage/amplify_secure_storage/CHANGELOG.md b/packages/secure_storage/amplify_secure_storage/CHANGELOG.md index f7bfb6c0da..dee34680ef 100644 --- a/packages/secure_storage/amplify_secure_storage/CHANGELOG.md +++ b/packages/secure_storage/amplify_secure_storage/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.5.3 + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 0.5.2 - Minor bug fixes and improvements diff --git a/packages/secure_storage/amplify_secure_storage/example/.gitignore b/packages/secure_storage/amplify_secure_storage/example/.gitignore index a8e938c083..5cee744cbb 100644 --- a/packages/secure_storage/amplify_secure_storage/example/.gitignore +++ b/packages/secure_storage/amplify_secure_storage/example/.gitignore @@ -45,3 +45,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +amplify_outputs.dart diff --git a/packages/secure_storage/amplify_secure_storage/pubspec.yaml b/packages/secure_storage/amplify_secure_storage/pubspec.yaml index 854f4bff8b..36f5a68064 100644 --- a/packages/secure_storage/amplify_secure_storage/pubspec.yaml +++ b/packages/secure_storage/amplify_secure_storage/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_secure_storage description: A package for storing secrets, intended for use in Amplify libraries. -version: 0.5.2 +version: 0.5.3 homepage: https://github.com/aws-amplify/amplify-flutter/tree/main repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/secure_storage/amplify_secure_storage issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues diff --git a/packages/storage/amplify_storage_s3/CHANGELOG.md b/packages/storage/amplify_storage_s3/CHANGELOG.md index ad49155801..0fc344976d 100644 --- a/packages/storage/amplify_storage_s3/CHANGELOG.md +++ b/packages/storage/amplify_storage_s3/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.2.0 + +### Fixes +- fix: wait for in progress multi part uploads to cancel for `pause` and `cancel` + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 2.1.0 - Minor bug fixes and improvements diff --git a/packages/storage/amplify_storage_s3/example/.gitignore b/packages/storage/amplify_storage_s3/example/.gitignore index 24476c5d1e..2226cff9f5 100644 --- a/packages/storage/amplify_storage_s3/example/.gitignore +++ b/packages/storage/amplify_storage_s3/example/.gitignore @@ -42,3 +42,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +amplify_outputs.dart diff --git a/packages/storage/amplify_storage_s3/example/integration_test/upload_file_test.dart b/packages/storage/amplify_storage_s3/example/integration_test/upload_file_test.dart index b87ff27ace..3d3c09f9c5 100644 --- a/packages/storage/amplify_storage_s3/example/integration_test/upload_file_test.dart +++ b/packages/storage/amplify_storage_s3/example/integration_test/upload_file_test.dart @@ -278,58 +278,110 @@ void main() { }); group('pause, resume, cancel', () { - const size = 1024 * 1024 * 6; - const chars = 'qwertyuiopasdfghjklzxcvbnm'; - final content = List.generate(size, (i) => chars[i % 25]).join(); - testWidgets('can pause', (_) async { - final fileId = uuid(); - final path = 'public/upload-file-pause-$fileId'; - final filePath = await createFile(path: fileId, content: content); - addTearDownPath(StoragePath.fromString(path)); - final operation = Amplify.Storage.uploadFile( - localFile: AWSFile.fromPath(filePath), - path: StoragePath.fromString(path), - ); - await operation.pause(); - unawaited( - operation.result.then( - (value) => fail('should not complete after pause'), - ), + /// file sizes in mb + const fileSizes = [ + 1, // non multi part upload + 6, // small multi part upload (2 parts) + 50, // large multi part upload (10 parts) + ]; + for (final fileSize in fileSizes) { + final size = 1024 * 1024 * fileSize; + const chars = 'qwertyuiopasdfghjklzxcvbnm'; + final content = List.generate(size, (i) => chars[i % 25]).join(); + testWidgets( + 'can pause (file size: $fileSize mb)', + (_) async { + final fileId = uuid(); + final path = 'public/upload-file-pause-$fileId'; + final filePath = await createFile(path: fileId, content: content); + StorageTransferState? state; + addTearDownPath(StoragePath.fromString(path)); + final operation = Amplify.Storage.uploadFile( + localFile: AWSFile.fromPath(filePath), + path: StoragePath.fromString(path), + onProgress: (progress) { + state = progress.state; + }, + ); + await operation.pause(); + // pause is only supported for multi part uploads (over 5 mb) + // calling .pause() should not throw, but the operation will not + // actually pause. + if (fileSize > 5) { + unawaited( + operation.result.then( + (value) => fail('should not complete after pause'), + ), + ); + await Future.delayed(const Duration(seconds: 15)); + expect(state, StorageTransferState.paused); + await expectLater( + () => Amplify.Storage.downloadData( + path: StoragePath.fromString(path), + ).result, + throwsA(isA()), + ); + } + }, ); - await Future.delayed(const Duration(seconds: 15)); - }); - testWidgets('can resume', (_) async { - final fileId = uuid(); - final path = 'public/upload-file-resume-$fileId'; - final filePath = await createFile(path: fileId, content: content); - addTearDownPath(StoragePath.fromString(path)); - final operation = Amplify.Storage.uploadFile( - localFile: AWSFile.fromPath(filePath), - path: StoragePath.fromString(path), + testWidgets( + 'can resume (file size: $fileSize mb)', + (_) async { + final fileId = uuid(); + final path = 'public/upload-file-resume-$fileId'; + final filePath = await createFile(path: fileId, content: content); + final state = StreamController(); + addTearDownPath(StoragePath.fromString(path)); + final operation = Amplify.Storage.uploadFile( + localFile: AWSFile.fromPath(filePath), + path: StoragePath.fromString(path), + onProgress: (progress) { + state.sink.add(progress.state); + }, + ); + await operation.pause(); + await operation.resume(); + final nextProgressState = await state.stream.first; + expect(nextProgressState, StorageTransferState.inProgress); + final result = await operation.result; + expect(result.uploadedItem.path, path); + final downloadResult = await Amplify.Storage.downloadData( + path: StoragePath.fromString(path), + ).result; + expect(downloadResult.bytes, content.codeUnits); + await state.close(); + }, ); - await operation.pause(); - await operation.resume(); - final result = await operation.result; - expect(result.uploadedItem.path, path); - }); - testWidgets('can cancel', (_) async { - final fileId = uuid(); - final path = 'public/upload-file-cancel-$fileId'; - final filePath = await createFile(path: fileId, content: content); - addTearDownPath(StoragePath.fromString(path)); - final operation = Amplify.Storage.uploadFile( - localFile: AWSFile.fromPath(filePath), - path: StoragePath.fromString(path), - ); - final expectException = expectLater( - () => operation.result, - throwsA(isA()), - ); - await operation.cancel(); - await expectException; - }); + testWidgets('can cancel (file size: $fileSize mb)', (_) async { + final fileId = uuid(); + final path = 'public/upload-file-cancel-$fileId'; + final filePath = await createFile(path: fileId, content: content); + StorageTransferState? state; + addTearDownPath(StoragePath.fromString(path)); + final operation = Amplify.Storage.uploadFile( + localFile: AWSFile.fromPath(filePath), + path: StoragePath.fromString(path), + onProgress: (progress) { + state = progress.state; + }, + ); + final expectException = expectLater( + () => operation.result, + throwsA(isA()), + ); + await operation.cancel(); + expect(state, StorageTransferState.canceled); + await expectException; + await expectLater( + () => Amplify.Storage.downloadData( + path: StoragePath.fromString(path), + ).result, + throwsA(isA()), + ); + }); + } }); }); diff --git a/packages/storage/amplify_storage_s3/lib/src/amplify_storage_s3_impl.dart b/packages/storage/amplify_storage_s3/lib/src/amplify_storage_s3_impl.dart index a3a693fcd7..57ac298d87 100644 --- a/packages/storage/amplify_storage_s3/lib/src/amplify_storage_s3_impl.dart +++ b/packages/storage/amplify_storage_s3/lib/src/amplify_storage_s3_impl.dart @@ -21,7 +21,7 @@ class AmplifyStorageS3 extends AmplifyStorageS3Dart { @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { await super.configure(config: config, authProviderRepo: authProviderRepo); diff --git a/packages/storage/amplify_storage_s3/pubspec.yaml b/packages/storage/amplify_storage_s3/pubspec.yaml index d93dd0d02f..ee46201f74 100644 --- a/packages/storage/amplify_storage_s3/pubspec.yaml +++ b/packages/storage/amplify_storage_s3/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_storage_s3 description: The Amplify Flutter Storage category plugin using the AWS S3 provider. -version: 2.1.0 +version: 2.2.0 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/storage/amplify_storage_s3 issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -19,9 +19,9 @@ platforms: web: dependencies: - amplify_core: ">=2.1.0 <2.2.0" - amplify_db_common: ">=0.4.1 <0.5.0" - amplify_storage_s3_dart: ">=0.4.1 <0.5.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_db_common: ">=0.4.2 <0.5.0" + amplify_storage_s3_dart: ">=0.4.2 <0.5.0" aws_common: ">=0.7.0 <0.8.0" flutter: sdk: flutter diff --git a/packages/storage/amplify_storage_s3/test/amplify_storage_s3_impl_test.dart b/packages/storage/amplify_storage_s3/test/amplify_storage_s3_impl_test.dart index 4612eb6b5a..8eb798aa9a 100644 --- a/packages/storage/amplify_storage_s3/test/amplify_storage_s3_impl_test.dart +++ b/packages/storage/amplify_storage_s3/test/amplify_storage_s3_impl_test.dart @@ -4,6 +4,7 @@ import 'dart:async'; import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_storage_s3/amplify_storage_s3.dart'; import 'package:amplify_storage_s3/src/utils/app_path_provider/app_path_provider.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -12,16 +13,12 @@ import 'test_utils/test_token_provider.dart'; void main() { group('AmplifyStorageS3', () { - const testConfig = AmplifyConfig( - storage: StorageConfig( - plugins: { - S3PluginConfig.pluginKey: S3PluginConfig( - bucket: '123', - region: 'west-2', - ), - }, - ), + // ignore: invalid_use_of_internal_member + const testConfig = AmplifyOutputs( + version: '1', + storage: StorageOutputs(bucketName: '123', awsRegion: 'west-2'), ); + // ignore: invalid_use_of_internal_member final testAuthProviderRepo = AmplifyAuthProviderRepository() ..registerAuthProvider( APIAuthorizationType.userPools.authProviderToken, diff --git a/packages/storage/amplify_storage_s3_dart/CHANGELOG.md b/packages/storage/amplify_storage_s3_dart/CHANGELOG.md index c01b7df1a6..fff47092b2 100644 --- a/packages/storage/amplify_storage_s3_dart/CHANGELOG.md +++ b/packages/storage/amplify_storage_s3_dart/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.4.2 + +### Fixes +- fix: wait for in progress multi part uploads to cancel for `pause` and `cancel` + +### Features +- feat: Support Amplify Gen 2 outputs ([#5073](https://github.com/aws-amplify/amplify-flutter/pull/5073)) + ## 0.4.1 - Minor bug fixes and improvements diff --git a/packages/storage/amplify_storage_s3_dart/example/.gitignore b/packages/storage/amplify_storage_s3_dart/example/.gitignore index 3fad10705a..ea74202396 100644 --- a/packages/storage/amplify_storage_s3_dart/example/.gitignore +++ b/packages/storage/amplify_storage_s3_dart/example/.gitignore @@ -28,3 +28,5 @@ amplifytools.xcconfig .secret-* **.sample #amplify-do-not-edit-end + +amplify_outputs.dart diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/amplify_storage_s3_dart_impl.dart b/packages/storage/amplify_storage_s3_dart/lib/src/amplify_storage_s3_dart_impl.dart index ea432433f1..cc709c5802 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/amplify_storage_s3_dart_impl.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/amplify_storage_s3_dart_impl.dart @@ -5,6 +5,8 @@ import 'dart:async'; import 'dart:typed_data'; import 'package:amplify_core/amplify_core.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_db_common_dart/amplify_db_common_dart.dart' as db_common; import 'package:amplify_storage_s3_dart/amplify_storage_s3_dart.dart'; @@ -46,9 +48,9 @@ class AmplifyStorageS3Dart extends StoragePluginInterface DependencyManager get dependencies => _dependencyManagerOverride ?? super.dependencies; - /// The [S3PluginConfig] of the [AmplifyStorageS3Dart] plugin. + /// The [StorageOutputs] of the [AmplifyStorageS3Dart] plugin. @protected - late final S3PluginConfig s3pluginConfig; + late final StorageOutputs storageOutputs; late S3PathResolver _pathResolver; @@ -60,15 +62,13 @@ class AmplifyStorageS3Dart extends StoragePluginInterface @override Future configure({ - AmplifyConfig? config, + AmplifyOutputs? config, required AmplifyAuthProviderRepository authProviderRepo, }) async { - final s3PluginConfig = config?.storage?.awsPlugin; - - if (s3PluginConfig == null) { + if (config?.storage == null) { throw ConfigurationError('No Storage S3 plugin config detected.'); } - s3pluginConfig = s3PluginConfig; + storageOutputs = config!.storage!; final identityProvider = authProviderRepo .getAuthProvider(APIAuthorizationType.userPools.authProviderToken); @@ -107,7 +107,7 @@ class AmplifyStorageS3Dart extends StoragePluginInterface ..addInstance( StorageS3Service( credentialsProvider: credentialsProvider, - s3PluginConfig: s3PluginConfig, + storageOutputs: storageOutputs, pathResolver: _pathResolver, logger: logger, dependencyManager: dependencies, @@ -261,7 +261,7 @@ class AmplifyStorageS3Dart extends StoragePluginInterface path: path, localFile: localFile, options: options, - s3pluginConfig: s3pluginConfig, + storageOutputs: storageOutputs, storageS3Service: storageS3Service, appPathProvider: _appPathProvider, onProgress: onProgress, diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_copy_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_copy_plugin_options.g.dart index 70d04f3f91..0aec183f11 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_copy_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_copy_plugin_options.g.dart @@ -7,8 +7,16 @@ part of 's3_copy_plugin_options.dart'; // ************************************************************************** S3CopyPluginOptions _$S3CopyPluginOptionsFromJson(Map json) => - S3CopyPluginOptions( - getProperties: json['getProperties'] as bool? ?? false, + $checkedCreate( + 'S3CopyPluginOptions', + json, + ($checkedConvert) { + final val = S3CopyPluginOptions( + getProperties: + $checkedConvert('getProperties', (v) => v as bool? ?? false), + ); + return val; + }, ); Map _$S3CopyPluginOptionsToJson( diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_data_bytes_range.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_data_bytes_range.g.dart index 402ae8c116..c9c93d11bb 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_data_bytes_range.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_data_bytes_range.g.dart @@ -7,9 +7,16 @@ part of 's3_data_bytes_range.dart'; // ************************************************************************** S3DataBytesRange _$S3DataBytesRangeFromJson(Map json) => - S3DataBytesRange( - start: json['start'] as int, - end: json['end'] as int, + $checkedCreate( + 'S3DataBytesRange', + json, + ($checkedConvert) { + final val = S3DataBytesRange( + start: $checkedConvert('start', (v) => v as int), + end: $checkedConvert('end', (v) => v as int), + ); + return val; + }, ); Map _$S3DataBytesRangeToJson(S3DataBytesRange instance) => diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_download_data_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_download_data_plugin_options.g.dart index 8214b35534..6a0a5c7bfb 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_download_data_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_download_data_plugin_options.g.dart @@ -8,13 +8,23 @@ part of 's3_download_data_plugin_options.dart'; S3DownloadDataPluginOptions _$S3DownloadDataPluginOptionsFromJson( Map json) => - S3DownloadDataPluginOptions( - getProperties: json['getProperties'] as bool? ?? false, - bytesRange: json['bytesRange'] == null - ? null - : S3DataBytesRange.fromJson( - json['bytesRange'] as Map), - useAccelerateEndpoint: json['useAccelerateEndpoint'] as bool? ?? false, + $checkedCreate( + 'S3DownloadDataPluginOptions', + json, + ($checkedConvert) { + final val = S3DownloadDataPluginOptions( + getProperties: + $checkedConvert('getProperties', (v) => v as bool? ?? false), + bytesRange: $checkedConvert( + 'bytesRange', + (v) => v == null + ? null + : S3DataBytesRange.fromJson(v as Map)), + useAccelerateEndpoint: $checkedConvert( + 'useAccelerateEndpoint', (v) => v as bool? ?? false), + ); + return val; + }, ); Map _$S3DownloadDataPluginOptionsToJson( diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_download_file_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_download_file_plugin_options.g.dart index 5e1e07d2b1..0814648e87 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_download_file_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_download_file_plugin_options.g.dart @@ -8,9 +8,18 @@ part of 's3_download_file_plugin_options.dart'; S3DownloadFilePluginOptions _$S3DownloadFilePluginOptionsFromJson( Map json) => - S3DownloadFilePluginOptions( - getProperties: json['getProperties'] as bool? ?? false, - useAccelerateEndpoint: json['useAccelerateEndpoint'] as bool? ?? false, + $checkedCreate( + 'S3DownloadFilePluginOptions', + json, + ($checkedConvert) { + final val = S3DownloadFilePluginOptions( + getProperties: + $checkedConvert('getProperties', (v) => v as bool? ?? false), + useAccelerateEndpoint: $checkedConvert( + 'useAccelerateEndpoint', (v) => v as bool? ?? false), + ); + return val; + }, ); Map _$S3DownloadFilePluginOptionsToJson( diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_get_properties_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_get_properties_plugin_options.g.dart index 8fb778b9e2..5ab7534aba 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_get_properties_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_get_properties_plugin_options.g.dart @@ -8,7 +8,14 @@ part of 's3_get_properties_plugin_options.dart'; S3GetPropertiesPluginOptions _$S3GetPropertiesPluginOptionsFromJson( Map json) => - S3GetPropertiesPluginOptions(); + $checkedCreate( + 'S3GetPropertiesPluginOptions', + json, + ($checkedConvert) { + final val = S3GetPropertiesPluginOptions(); + return val; + }, + ); Map _$S3GetPropertiesPluginOptionsToJson( S3GetPropertiesPluginOptions instance) => diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_get_url_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_get_url_plugin_options.g.dart index c12e545a60..f9bc6d5650 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_get_url_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_get_url_plugin_options.g.dart @@ -8,13 +8,23 @@ part of 's3_get_url_plugin_options.dart'; S3GetUrlPluginOptions _$S3GetUrlPluginOptionsFromJson( Map json) => - S3GetUrlPluginOptions( - expiresIn: json['expiresIn'] == null - ? const Duration(minutes: 15) - : Duration(microseconds: json['expiresIn'] as int), - validateObjectExistence: - json['validateObjectExistence'] as bool? ?? false, - useAccelerateEndpoint: json['useAccelerateEndpoint'] as bool? ?? false, + $checkedCreate( + 'S3GetUrlPluginOptions', + json, + ($checkedConvert) { + final val = S3GetUrlPluginOptions( + expiresIn: $checkedConvert( + 'expiresIn', + (v) => v == null + ? const Duration(minutes: 15) + : Duration(microseconds: v as int)), + validateObjectExistence: $checkedConvert( + 'validateObjectExistence', (v) => v as bool? ?? false), + useAccelerateEndpoint: $checkedConvert( + 'useAccelerateEndpoint', (v) => v as bool? ?? false), + ); + return val; + }, ); Map _$S3GetUrlPluginOptionsToJson( diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_item.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_item.g.dart index 6ba820001c..18ff5a5a67 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_item.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_item.g.dart @@ -6,19 +6,28 @@ part of 's3_item.dart'; // JsonSerializableGenerator // ************************************************************************** -S3Item _$S3ItemFromJson(Map json) => S3Item( - path: json['path'] as String, - size: json['size'] as int?, - lastModified: json['lastModified'] == null - ? null - : DateTime.parse(json['lastModified'] as String), - eTag: json['eTag'] as String?, - metadata: (json['metadata'] as Map?)?.map( - (k, e) => MapEntry(k, e as String), - ) ?? - const {}, - versionId: json['versionId'] as String?, - contentType: json['contentType'] as String?, +S3Item _$S3ItemFromJson(Map json) => $checkedCreate( + 'S3Item', + json, + ($checkedConvert) { + final val = S3Item( + path: $checkedConvert('path', (v) => v as String), + size: $checkedConvert('size', (v) => v as int?), + lastModified: $checkedConvert('lastModified', + (v) => v == null ? null : DateTime.parse(v as String)), + eTag: $checkedConvert('eTag', (v) => v as String?), + metadata: $checkedConvert( + 'metadata', + (v) => + (v as Map?)?.map( + (k, e) => MapEntry(k, e as String), + ) ?? + const {}), + versionId: $checkedConvert('versionId', (v) => v as String?), + contentType: $checkedConvert('contentType', (v) => v as String?), + ); + return val; + }, ); Map _$S3ItemToJson(S3Item instance) { diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_list_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_list_plugin_options.g.dart index 66af0a459f..05d787e2a7 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_list_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_list_plugin_options.g.dart @@ -7,9 +7,17 @@ part of 's3_list_plugin_options.dart'; // ************************************************************************** S3ListPluginOptions _$S3ListPluginOptionsFromJson(Map json) => - S3ListPluginOptions( - excludeSubPaths: json['excludeSubPaths'] as bool? ?? false, - delimiter: json['delimiter'] as String? ?? '/', + $checkedCreate( + 'S3ListPluginOptions', + json, + ($checkedConvert) { + final val = S3ListPluginOptions( + excludeSubPaths: + $checkedConvert('excludeSubPaths', (v) => v as bool? ?? false), + delimiter: $checkedConvert('delimiter', (v) => v as String? ?? '/'), + ); + return val; + }, ); Map _$S3ListPluginOptionsToJson( diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_remove_many_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_remove_many_plugin_options.g.dart index 82482bd7d4..05964fdb72 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_remove_many_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_remove_many_plugin_options.g.dart @@ -8,7 +8,14 @@ part of 's3_remove_many_plugin_options.dart'; S3RemoveManyPluginOptions _$S3RemoveManyPluginOptionsFromJson( Map json) => - S3RemoveManyPluginOptions(); + $checkedCreate( + 'S3RemoveManyPluginOptions', + json, + ($checkedConvert) { + final val = S3RemoveManyPluginOptions(); + return val; + }, + ); Map _$S3RemoveManyPluginOptionsToJson( S3RemoveManyPluginOptions instance) => diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_remove_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_remove_plugin_options.g.dart index 4f5ccafaf3..ec245ea093 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_remove_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_remove_plugin_options.g.dart @@ -8,7 +8,14 @@ part of 's3_remove_plugin_options.dart'; S3RemovePluginOptions _$S3RemovePluginOptionsFromJson( Map json) => - S3RemovePluginOptions(); + $checkedCreate( + 'S3RemovePluginOptions', + json, + ($checkedConvert) { + final val = S3RemovePluginOptions(); + return val; + }, + ); Map _$S3RemovePluginOptionsToJson( S3RemovePluginOptions instance) => diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_upload_data_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_upload_data_plugin_options.g.dart index 0cb4a8566b..9c9d5cfe8c 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_upload_data_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_upload_data_plugin_options.g.dart @@ -8,9 +8,18 @@ part of 's3_upload_data_plugin_options.dart'; S3UploadDataPluginOptions _$S3UploadDataPluginOptionsFromJson( Map json) => - S3UploadDataPluginOptions( - getProperties: json['getProperties'] as bool? ?? false, - useAccelerateEndpoint: json['useAccelerateEndpoint'] as bool? ?? false, + $checkedCreate( + 'S3UploadDataPluginOptions', + json, + ($checkedConvert) { + final val = S3UploadDataPluginOptions( + getProperties: + $checkedConvert('getProperties', (v) => v as bool? ?? false), + useAccelerateEndpoint: $checkedConvert( + 'useAccelerateEndpoint', (v) => v as bool? ?? false), + ); + return val; + }, ); Map _$S3UploadDataPluginOptionsToJson( diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_upload_file_plugin_options.g.dart b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_upload_file_plugin_options.g.dart index 4830440351..498eeaf4e5 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_upload_file_plugin_options.g.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/model/s3_upload_file_plugin_options.g.dart @@ -8,9 +8,18 @@ part of 's3_upload_file_plugin_options.dart'; S3UploadFilePluginOptions _$S3UploadFilePluginOptionsFromJson( Map json) => - S3UploadFilePluginOptions( - getProperties: json['getProperties'] as bool? ?? false, - useAccelerateEndpoint: json['useAccelerateEndpoint'] as bool? ?? false, + $checkedCreate( + 'S3UploadFilePluginOptions', + json, + ($checkedConvert) { + final val = S3UploadFilePluginOptions( + getProperties: + $checkedConvert('getProperties', (v) => v as bool? ?? false), + useAccelerateEndpoint: $checkedConvert( + 'useAccelerateEndpoint', (v) => v as bool? ?? false), + ); + return val; + }, ); Map _$S3UploadFilePluginOptionsToJson( diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_html.dart b/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_html.dart index 3d2b750855..32f79a9d38 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_html.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_html.dart @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_storage_s3_dart/amplify_storage_s3_dart.dart'; import 'package:amplify_storage_s3_dart/src/platform_impl/download_file/dom_helper.dart'; import 'package:amplify_storage_s3_dart/src/storage_s3_service/storage_s3_service.dart'; @@ -11,7 +13,7 @@ S3DownloadFileOperation downloadFile({ required StoragePath path, required AWSFile localFile, required StorageDownloadFileOptions options, - required S3PluginConfig s3pluginConfig, + required StorageOutputs storageOutputs, required StorageS3Service storageS3Service, required AppPathProvider appPathProvider, void Function(S3TransferProgress)? onProgress, @@ -28,7 +30,7 @@ S3DownloadFileOperation downloadFile({ path: path, localFile: localFile, options: options, - s3pluginConfig: s3pluginConfig, + storageOutputs: storageOutputs, storageS3Service: storageS3Service, ), // In Web the download process is managed by the browser so the operation @@ -43,7 +45,7 @@ Future _downloadFromUrl({ required StoragePath path, required AWSFile localFile, required StorageDownloadFileOptions options, - required S3PluginConfig s3pluginConfig, + required StorageOutputs storageOutputs, required StorageS3Service storageS3Service, }) async { final s3PluginOptions = options.pluginOptions as S3DownloadFilePluginOptions; diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_io.dart b/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_io.dart index 6e7558c042..5651870acd 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_io.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_io.dart @@ -4,6 +4,8 @@ import 'dart:io'; import 'package:amplify_core/amplify_core.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_storage_s3_dart/amplify_storage_s3_dart.dart'; import 'package:amplify_storage_s3_dart/src/storage_s3_service/storage_s3_service.dart'; import 'package:meta/meta.dart'; @@ -15,7 +17,7 @@ S3DownloadFileOperation downloadFile({ required StoragePath path, required AWSFile localFile, required StorageDownloadFileOptions options, - required S3PluginConfig s3pluginConfig, + required StorageOutputs storageOutputs, required StorageS3Service storageS3Service, required AppPathProvider appPathProvider, void Function(S3TransferProgress)? onProgress, diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_stub.dart b/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_stub.dart index 94eb03c0e9..066fdc5160 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_stub.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/platform_impl/download_file/download_file_stub.dart @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 import 'package:amplify_core/amplify_core.dart'; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_storage_s3_dart/amplify_storage_s3_dart.dart'; import 'package:amplify_storage_s3_dart/src/storage_s3_service/storage_s3_service.dart'; @@ -10,7 +12,7 @@ S3DownloadFileOperation downloadFile({ required StoragePath path, required AWSFile localFile, required StorageDownloadFileOptions options, - required S3PluginConfig s3pluginConfig, + required StorageOutputs storageOutputs, required StorageS3Service storageS3Service, required AppPathProvider appPathProvider, void Function(S3TransferProgress)? onProgress, diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/storage_s3_service/service/storage_s3_service_impl.dart b/packages/storage/amplify_storage_s3_dart/lib/src/storage_s3_service/service/storage_s3_service_impl.dart index 26e56cd1d7..f749de67f3 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/storage_s3_service/service/storage_s3_service_impl.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/storage_s3_service/service/storage_s3_service_impl.dart @@ -5,6 +5,8 @@ import 'dart:async'; import 'dart:math'; import 'package:amplify_core/amplify_core.dart' hide PaginatedResult; +// ignore: implementation_imports +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_storage_s3_dart/amplify_storage_s3_dart.dart'; import 'package:amplify_storage_s3_dart/src/exception/s3_storage_exception.dart' as s3_exception; @@ -31,13 +33,13 @@ const testDateTimeNowOverride = #_testDateTimeNowOverride; class StorageS3Service { /// {@macro amplify_storage_s3.storage_s3_service} factory StorageS3Service({ - required S3PluginConfig s3PluginConfig, + required StorageOutputs storageOutputs, required S3PathResolver pathResolver, required AWSIamAmplifyAuthProvider credentialsProvider, required AWSLogger logger, required DependencyManager dependencyManager, }) { - final usePathStyle = s3PluginConfig.bucket.contains('.'); + final usePathStyle = storageOutputs.bucketName.contains('.'); if (usePathStyle) { logger.warn( @@ -54,7 +56,7 @@ class StorageS3Service { ); return StorageS3Service._( - s3PluginConfig: s3PluginConfig, + storageOutputs: storageOutputs, s3ClientConfig: s3ClientConfig, pathResolver: pathResolver, credentialsProvider: credentialsProvider, @@ -64,18 +66,18 @@ class StorageS3Service { } StorageS3Service._({ - required S3PluginConfig s3PluginConfig, + required StorageOutputs storageOutputs, required smithy_aws.S3ClientConfig s3ClientConfig, required S3PathResolver pathResolver, required AWSIamAmplifyAuthProvider credentialsProvider, required AWSLogger logger, required DependencyManager dependencyManager, - }) : _s3PluginConfig = s3PluginConfig, + }) : _storageOutputs = storageOutputs, _defaultS3ClientConfig = s3ClientConfig, // dependencyManager.get() => S3Client is used for unit tests _defaultS3Client = dependencyManager.get() ?? s3.S3Client( - region: s3PluginConfig.region, + region: storageOutputs.awsRegion, credentialsProvider: credentialsProvider, s3ClientConfig: s3ClientConfig, client: AmplifyHttpClient(dependencyManager) @@ -94,7 +96,7 @@ class StorageS3Service { static final _defaultS3SignerConfiguration = sigv4.S3ServiceConfiguration(signPayload: false); - final S3PluginConfig _s3PluginConfig; + final StorageOutputs _storageOutputs; final smithy_aws.S3ClientConfig _defaultS3ClientConfig; final s3.S3Client _defaultS3Client; final S3PathResolver _pathResolver; @@ -104,7 +106,7 @@ class StorageS3Service { final DateTime _serviceStartingTime; sigv4.AWSCredentialScope get _signerScope => sigv4.AWSCredentialScope( - region: _s3PluginConfig.region, + region: _storageOutputs.awsRegion, service: AWSService.s3, ); @@ -132,7 +134,7 @@ class StorageS3Service { if (!s3PluginOptions.listAll) { final request = s3.ListObjectsV2Request.build((builder) { builder - ..bucket = _s3PluginConfig.bucket + ..bucket = _storageOutputs.bucketName ..prefix = resolvedPath ..maxKeys = options.pageSize ..continuationToken = options.nextToken @@ -159,7 +161,7 @@ class StorageS3Service { try { final request = s3.ListObjectsV2Request.build((builder) { builder - ..bucket = _s3PluginConfig.bucket + ..bucket = _storageOutputs.bucketName ..prefix = resolvedPath ..delimiter = s3PluginOptions.excludeSubPaths ? s3PluginOptions.delimiter @@ -205,7 +207,7 @@ class StorageS3Service { storageItem: S3Item.fromHeadObjectOutput( await headObject( s3client: _defaultS3Client, - bucket: _s3PluginConfig.bucket, + bucket: _storageOutputs.bucketName, key: resolvedPath, ), path: resolvedPath, @@ -242,14 +244,14 @@ class StorageS3Service { var resolvedPath = await _pathResolver.resolvePath(path: path); var host = - '${_s3PluginConfig.bucket}.${_getS3EndpointHost(region: _s3PluginConfig.region)}'; + '${_storageOutputs.bucketName}.${_getS3EndpointHost(region: _storageOutputs.awsRegion)}'; if (_defaultS3ClientConfig.usePathStyle) { - host = host.replaceFirst('${_s3PluginConfig.bucket}.', ''); - resolvedPath = '${_s3PluginConfig.bucket}/$resolvedPath'; + host = host.replaceFirst('${_storageOutputs.bucketName}.', ''); + resolvedPath = '${_storageOutputs.bucketName}/$resolvedPath'; } else if (s3PluginOptions.useAccelerateEndpoint) { // https: //docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration-getting-started.html host = host - .replaceFirst(RegExp('${_s3PluginConfig.region}\\.'), '') + .replaceFirst(RegExp('${_storageOutputs.awsRegion}\\.'), '') .replaceFirst(RegExp(r'\.s3\.'), '.s3-accelerate.'); } @@ -295,7 +297,7 @@ class StorageS3Service { final downloadDataTask = S3DownloadTask( s3Client: _defaultS3Client, defaultS3ClientConfig: _defaultS3ClientConfig, - bucket: _s3PluginConfig.bucket, + bucket: _storageOutputs.bucketName, path: path, options: options, pathResolver: _pathResolver, @@ -326,7 +328,7 @@ class StorageS3Service { dataPayload, s3Client: _defaultS3Client, defaultS3ClientConfig: _defaultS3ClientConfig, - bucket: _s3PluginConfig.bucket, + bucket: _storageOutputs.bucketName, path: path, options: options, pathResolver: _pathResolver, @@ -365,7 +367,7 @@ class StorageS3Service { localFile, s3Client: _defaultS3Client, defaultS3ClientConfig: _defaultS3ClientConfig, - bucket: _s3PluginConfig.bucket, + bucket: _storageOutputs.bucketName, path: path, options: uploadDataOptions, pathResolver: _pathResolver, @@ -405,8 +407,8 @@ class StorageS3Service { final copyRequest = s3.CopyObjectRequest.build((builder) { builder - ..bucket = _s3PluginConfig.bucket - ..copySource = '${_s3PluginConfig.bucket}/$sourcePath' + ..bucket = _storageOutputs.bucketName + ..copySource = '${_storageOutputs.bucketName}/$sourcePath' ..key = destinationPath ..metadataDirective = s3.MetadataDirective.copy; }); @@ -425,7 +427,7 @@ class StorageS3Service { ? S3Item.fromHeadObjectOutput( await headObject( s3client: _defaultS3Client, - bucket: _s3PluginConfig.bucket, + bucket: _storageOutputs.bucketName, key: destinationPath, ), path: destinationPath, @@ -449,7 +451,7 @@ class StorageS3Service { await _deleteObject( s3client: _defaultS3Client, - bucket: _s3PluginConfig.bucket, + bucket: _storageOutputs.bucketName, key: resolvedPath, ); @@ -489,7 +491,7 @@ class StorageS3Service { ); final request = s3.DeleteObjectsRequest.build((builder) { builder - ..bucket = _s3PluginConfig.bucket + ..bucket = _storageOutputs.bucketName // force to use sha256 instead of md5 ..checksumAlgorithm = s3.ChecksumAlgorithm.sha256 ..delete = s3.Delete.build((builder) { @@ -596,7 +598,7 @@ class StorageS3Service { for (final record in records) { final request = s3.AbortMultipartUploadRequest.build((builder) { builder - ..bucket = _s3PluginConfig.bucket + ..bucket = _storageOutputs.bucketName ..key = record.objectKey ..uploadId = record.uploadId; }); diff --git a/packages/storage/amplify_storage_s3_dart/lib/src/storage_s3_service/service/task/s3_upload_task.dart b/packages/storage/amplify_storage_s3_dart/lib/src/storage_s3_service/service/task/s3_upload_task.dart index 65ceba8f02..55f5091165 100644 --- a/packages/storage/amplify_storage_s3_dart/lib/src/storage_s3_service/service/task/s3_upload_task.dart +++ b/packages/storage/amplify_storage_s3_dart/lib/src/storage_s3_service/service/task/s3_upload_task.dart @@ -172,14 +172,11 @@ class S3UploadTask { int _currentSubTaskId = 0; final Completer _determineUploadModeCompleter = Completer(); Completer? _uploadPartBatchingCompleter; - Completer? _abortMultipartUploadCompleter; FutureOr get _uploadModeDetermined => _determineUploadModeCompleter.future; FutureOr get _uploadPartBatchingCompleted => _uploadPartBatchingCompleter?.future; - FutureOr get _abortMultipartUploadCompleted => - _abortMultipartUploadCompleter?.future; int get _numOfOngoingSubtasks => _ongoingSubtasks.length; int get _numOfCompletedSubtasks => _completedSubtasks.length; @@ -263,6 +260,7 @@ class S3UploadTask { if (!_isMultipartUpload || _state != StorageTransferState.inProgress) { return; } + _state = StorageTransferState.paused; await _uploadPartBatchingCompleted; @@ -279,6 +277,7 @@ class S3UploadTask { if (!_isMultipartUpload || _state != StorageTransferState.paused) { return; } + _state = StorageTransferState.inProgress; await _uploadPartBatchingCompleted; _subtasksStreamSubscription.resume(); @@ -300,6 +299,7 @@ class S3UploadTask { _state == StorageTransferState.failure) { return; } + _state = StorageTransferState.canceled; if (_isMultipartUpload) { await _subtasksStreamSubscription.cancel(); @@ -355,10 +355,17 @@ class S3UploadTask { _state = StorageTransferState.success; } on CancellationException { - _logger.debug('PutObject HTTP operation has been canceled.'); - _state = StorageTransferState.canceled; - _uploadCompleter - .completeError(s3_exception.s3ControllableOperationCanceledException); + // CancellationException is expected when the operation is paused. The + // exception should be swallowed in this case. + if (_state == StorageTransferState.paused) { + _logger.debug( + 'PutObject HTTP operation has been paused.', + ); + return; + } + _uploadCompleter.completeError( + s3_exception.s3ControllableOperationCanceledException, + ); } on smithy.UnknownSmithyHttpException catch (error, stackTrace) { _completeUploadWithError( error.toStorageException(), @@ -376,6 +383,7 @@ class S3UploadTask { Future _startMultipartUpload( AWSFile localFile, ) async { + _state = StorageTransferState.inProgress; // 1. check if can initiate multipart upload with the given file size // and create a multipart upload and set its id to _multipartUploadId try { @@ -396,29 +404,25 @@ class S3UploadTask { _subtasksStreamController = StreamController( onListen: () { // 3. start the multipart uploading - _state = StorageTransferState.inProgress; unawaited(_startNextUploadPartsBatch()); _emitTransferProgress(); _determineUploadModeCompleter.complete(); }, onPause: () async { - _state = StorageTransferState.paused; - _cancelOngoingUploadPartOperations(cancelingOnPause: true); + await _cancelOngoingUploadPartOperations(cancelingOnPause: true); _emitTransferProgress(); }, onResume: () async { unawaited(_startNextUploadPartsBatch(resumingFromPause: true)); - _state = StorageTransferState.inProgress; _emitTransferProgress(); }, onCancel: () async { // _streamController.close triggers this callback but we don't // need to emit canceled state as the upload has completed - if (_state == StorageTransferState.canceled || - _numOfCompletedSubtasks == _expectedNumOfSubtasks) { + if (_numOfCompletedSubtasks == _expectedNumOfSubtasks) { return; } - _cancelOngoingUploadPartOperations(); + await _cancelOngoingUploadPartOperations(); await _terminateMultipartUploadOnError( s3_exception.s3ControllableOperationCanceledException, isCancel: true, @@ -690,10 +694,17 @@ class S3UploadTask { try { final completedSubtask = await uploadPartRequest; _subtasksStreamController.add(completedSubtask); - } on CancellationException { - _logger - .debug('Part $partNumber upload HTTP operation has been canceled.'); } on Exception catch (error) { + // Each part upload is canceled during pause/cancel, which results in an + // expected Exception. _terminateMultipartUploadOnError does not need to be + // invoked since it is already invoked when cancel() is invoked. + if (_state == StorageTransferState.canceled || + _state == StorageTransferState.paused) { + _logger.debug( + 'Part $partNumber upload HTTP operation has been ${_state.name}.', + ); + return; + } // May include: // - exceptions created from smithy.UnknownSmithyHttpException // - NetworkException @@ -702,15 +713,17 @@ class S3UploadTask { } } - void _cancelOngoingUploadPartOperations({ + Future _cancelOngoingUploadPartOperations({ bool cancelingOnPause = false, - }) { + }) async { + final cancelFutures = >[]; for (final operation in _ongoingUploadPartHttpOperations.values) { - operation.smithyOperation.cancel(); + cancelFutures.add(operation.smithyOperation.cancel()); if (!cancelingOnPause) { _ongoingSubtasks.remove(operation.partNumber); } } + await Future.wait(cancelFutures); } Future _terminateMultipartUploadOnError( @@ -719,14 +732,10 @@ class S3UploadTask { }) async { // in parallel part upload failures will all invoke this function // use this to avoid invoking AbortMultipartUploadRequest multiple times - await _abortMultipartUploadCompleted; - if (_state == StorageTransferState.canceled || - _state == StorageTransferState.failure) { + if (_state == StorageTransferState.failure) { return; } - _abortMultipartUploadCompleter = Completer(); - final request = s3.AbortMultipartUploadRequest.build((builder) { builder ..bucket = _bucket @@ -747,8 +756,6 @@ class S3UploadTask { ), ); } - - _abortMultipartUploadCompleter?.complete(); } void _completeUploadWithError( diff --git a/packages/storage/amplify_storage_s3_dart/pubspec.yaml b/packages/storage/amplify_storage_s3_dart/pubspec.yaml index b3ef42bcd8..c2fb82905c 100644 --- a/packages/storage/amplify_storage_s3_dart/pubspec.yaml +++ b/packages/storage/amplify_storage_s3_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: amplify_storage_s3_dart description: A Dart-only implementation of the Amplify Storage plugin for S3. -version: 0.4.1 +version: 0.4.2 homepage: https://docs.amplify.aws/lib/q/platform/flutter/ repository: https://github.com/aws-amplify/amplify-flutter/tree/main/packages/storage/amplify_storage_s3_dart issue_tracker: https://github.com/aws-amplify/amplify-flutter/issues @@ -9,8 +9,8 @@ environment: sdk: ^3.3.0 dependencies: - amplify_core: ">=2.1.0 <2.2.0" - amplify_db_common_dart: ">=0.4.2 <0.5.0" + amplify_core: ">=2.2.0 <2.3.0" + amplify_db_common_dart: ">=0.4.3 <0.5.0" async: ^2.10.0 aws_common: ">=0.7.0 <0.8.0" aws_signature_v4: ">=0.6.0 <0.7.0" diff --git a/packages/storage/amplify_storage_s3_dart/test/amplify_storage_s3_dart_test.dart b/packages/storage/amplify_storage_s3_dart/test/amplify_storage_s3_dart_test.dart index e2847a0efd..17015eb5f7 100644 --- a/packages/storage/amplify_storage_s3_dart/test/amplify_storage_s3_dart_test.dart +++ b/packages/storage/amplify_storage_s3_dart/test/amplify_storage_s3_dart_test.dart @@ -15,7 +15,7 @@ import 'test_utils/test_token_provider.dart'; const testPath = StoragePath.fromString('some/path.txt'); void main() { - const testConfig = AmplifyConfig( + final testConfig = const AmplifyConfig( storage: StorageConfig( plugins: { S3PluginConfig.pluginKey: S3PluginConfig( @@ -24,7 +24,8 @@ void main() { ), }, ), - ); + // ignore: invalid_use_of_internal_member + ).toAmplifyOutputs(); final testAuthProviderRepo = AmplifyAuthProviderRepository() ..registerAuthProvider( diff --git a/packages/storage/amplify_storage_s3_dart/test/platform_impl/download_file_html_test.dart b/packages/storage/amplify_storage_s3_dart/test/platform_impl/download_file_html_test.dart index 736e8a184c..50f205d91d 100644 --- a/packages/storage/amplify_storage_s3_dart/test/platform_impl/download_file_html_test.dart +++ b/packages/storage/amplify_storage_s3_dart/test/platform_impl/download_file_html_test.dart @@ -4,6 +4,7 @@ @TestOn('chrome') import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_storage_s3_dart/amplify_storage_s3_dart.dart'; import 'package:amplify_storage_s3_dart/src/platform_impl/download_file/download_file.dart'; import 'package:amplify_storage_s3_dart/src/storage_s3_service/storage_s3_service.dart'; @@ -30,9 +31,9 @@ void main() { group('downloadFile() html implementation', () { late StorageS3Service storageS3Service; const testKey = 'upload-key.text'; - const testS3pluginConfig = S3PluginConfig( - bucket: 'fake-bucket', - region: 'west-2', + const testStorageOutputs = StorageOutputs( + bucketName: 'fake-bucket', + awsRegion: 'west-2', ); final testItem = S3Item( path: testKey, @@ -90,7 +91,7 @@ void main() { path: const StoragePath.fromString('public/$testKey'), localFile: AWSFile.fromPath('file_name.jpg'), options: const StorageDownloadFileOptions(), - s3pluginConfig: testS3pluginConfig, + storageOutputs: testStorageOutputs, storageS3Service: storageS3Service, appPathProvider: const DummyPathProvider(), ); @@ -129,7 +130,7 @@ void main() { ), localFile: AWSFile.fromPath('download.jpg'), options: options, - s3pluginConfig: testS3pluginConfig, + storageOutputs: testStorageOutputs, storageS3Service: storageS3Service, appPathProvider: const DummyPathProvider(), ).result; diff --git a/packages/storage/amplify_storage_s3_dart/test/platform_impl/download_file_io_test.dart b/packages/storage/amplify_storage_s3_dart/test/platform_impl/download_file_io_test.dart index ea43d59e18..423f65ed96 100644 --- a/packages/storage/amplify_storage_s3_dart/test/platform_impl/download_file_io_test.dart +++ b/packages/storage/amplify_storage_s3_dart/test/platform_impl/download_file_io_test.dart @@ -8,6 +8,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:amplify_core/amplify_core.dart'; +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_core/src/types/storage/storage_path_from_identity_id.dart'; import 'package:amplify_storage_s3_dart/amplify_storage_s3_dart.dart'; import 'package:amplify_storage_s3_dart/src/platform_impl/download_file/download_file.dart'; @@ -29,9 +30,9 @@ void main() { late FutureOr Function() onDone; const appPathProvider = S3DartAppPathProvider(); final testDestinationPath = path.join(Directory.current.path, 'test.txt'); - const testS3pluginConfig = S3PluginConfig( - bucket: 'fake-bucket', - region: 'west-2', + const testStorageOutputs = StorageOutputs( + bucketName: 'fake-bucket', + awsRegion: 'west-2', ); const testKey = 'upload-key.text'; const testFileContent = 'Hello world!'; @@ -83,7 +84,7 @@ void main() { ), localFile: AWSFile.fromPath(testDestinationPath), options: options, - s3pluginConfig: testS3pluginConfig, + storageOutputs: testStorageOutputs, storageS3Service: storageS3Service, appPathProvider: appPathProvider, onProgress: (progress) { @@ -167,7 +168,7 @@ void main() { options: const StorageDownloadFileOptions( pluginOptions: S3DownloadFilePluginOptions(), ), - s3pluginConfig: testS3pluginConfig, + storageOutputs: testStorageOutputs, storageS3Service: storageS3Service, appPathProvider: appPathProvider, onProgress: (progress) { @@ -199,7 +200,7 @@ void main() { options: const StorageDownloadFileOptions( pluginOptions: S3DownloadFilePluginOptions(), ), - s3pluginConfig: testS3pluginConfig, + storageOutputs: testStorageOutputs, storageS3Service: storageS3Service, appPathProvider: appPathProvider, onProgress: (progress) { @@ -237,7 +238,7 @@ void main() { options: const StorageDownloadFileOptions( pluginOptions: S3DownloadFilePluginOptions(), ), - s3pluginConfig: testS3pluginConfig, + storageOutputs: testStorageOutputs, storageS3Service: storageS3Service, appPathProvider: appPathProvider, onProgress: (progress) { diff --git a/packages/storage/amplify_storage_s3_dart/test/storage_s3_service/storage_s3_service_test.dart b/packages/storage/amplify_storage_s3_dart/test/storage_s3_service/storage_s3_service_test.dart index 7b553bba62..aec65db336 100644 --- a/packages/storage/amplify_storage_s3_dart/test/storage_s3_service/storage_s3_service_test.dart +++ b/packages/storage/amplify_storage_s3_dart/test/storage_s3_service/storage_s3_service_test.dart @@ -4,6 +4,7 @@ import 'dart:async'; import 'package:amplify_core/amplify_core.dart' hide PaginatedResult; +import 'package:amplify_core/src/config/amplify_outputs/storage/storage_outputs.dart'; import 'package:amplify_storage_s3_dart/amplify_storage_s3_dart.dart'; import 'package:amplify_storage_s3_dart/src/exception/s3_storage_exception.dart'; import 'package:amplify_storage_s3_dart/src/sdk/s3.dart'; @@ -25,8 +26,8 @@ void main() { group('StorageS3Service', () { const testBucket = 'bucket1'; const testRegion = 'west-2'; - const s3PluginConfig = - S3PluginConfig(bucket: testBucket, region: testRegion); + const storageOutputs = + StorageOutputs(bucketName: testBucket, awsRegion: testRegion); final pathResolver = TestPathResolver(); late DependencyManager dependencyManager; @@ -43,7 +44,7 @@ void main() { ..addInstance(s3Client) ..addInstance(awsSigV4Signer); storageS3Service = StorageS3Service( - s3PluginConfig: s3PluginConfig, + storageOutputs: storageOutputs, pathResolver: pathResolver, credentialsProvider: TestIamAuthProvider(), logger: logger, @@ -53,9 +54,9 @@ void main() { test('log a warning when should use path style URLs', () { StorageS3Service( - s3PluginConfig: const S3PluginConfig( - bucket: 'bucket.name.has.dots.com', - region: 'us-west-2', + storageOutputs: const StorageOutputs( + bucketName: 'bucket.name.has.dots.com', + awsRegion: 'us-west-2', ), pathResolver: pathResolver, credentialsProvider: TestIamAuthProvider(), @@ -770,8 +771,10 @@ void main() { late StorageS3Service pathStyleStorageS3Service; const pathStyleBucket = 'bucket.name.has.dots.com'; const pathStyleRegion = 'west-2'; - const pathStyleS3PluginConfig = - S3PluginConfig(bucket: pathStyleBucket, region: pathStyleRegion); + const pathStyleStorageOutputs = StorageOutputs( + bucketName: pathStyleBucket, + awsRegion: pathStyleRegion, + ); final pathStyleURL = Uri( host: 's3.amazonaws.com', path: '/bucket.name.has.dots.com/album/1.jpg', @@ -784,7 +787,7 @@ void main() { ..addInstance(MockS3Client()) ..addInstance(pathStyleAwsSigV4Signer); pathStyleStorageS3Service = StorageS3Service( - s3PluginConfig: pathStyleS3PluginConfig, + storageOutputs: pathStyleStorageOutputs, pathResolver: pathResolver, credentialsProvider: TestIamAuthProvider(), logger: MockAWSLogger(), @@ -828,7 +831,7 @@ void main() { .having( (o) => o.host, 'host', - 's3.${pathStyleS3PluginConfig.region}.amazonaws.com', + 's3.${pathStyleStorageOutputs.awsRegion}.amazonaws.com', ) .having( (o) => o.path, diff --git a/packages/test/amplify_integration_test/lib/src/stubs/amplify_stub.dart b/packages/test/amplify_integration_test/lib/src/stubs/amplify_stub.dart index 32c82eb282..4a8c717af8 100644 --- a/packages/test/amplify_integration_test/lib/src/stubs/amplify_stub.dart +++ b/packages/test/amplify_integration_test/lib/src/stubs/amplify_stub.dart @@ -14,11 +14,11 @@ class AmplifyStub extends AmplifyClass { /// {@macro amplify_integration_test.amplify_stub} AmplifyStub() : super.protected(); - AmplifyConfig? _config; + AmplifyOutputs? _config; bool _isConfigured = false; - final _configCompleter = Completer(); + final _configCompleter = Completer(); @override bool get isConfigured { @@ -26,7 +26,7 @@ class AmplifyStub extends AmplifyClass { } @override - Future get asyncConfig { + Future get asyncConfig { return _configCompleter.future; } @@ -72,13 +72,14 @@ class AmplifyStub extends AmplifyClass { } } - AmplifyConfig _parseConfigJson(String configuration) { + AmplifyOutputs _parseConfigJson(String configuration) { try { - return AmplifyConfig.fromJson( + return AmplifyOutputs.fromJson( jsonDecode(configuration) as Map, ); } on Exception { - return const AmplifyConfig(); + // ignore: invalid_use_of_internal_member + return const AmplifyOutputs(version: '1'); } } }