@kensio/yulin 1.21.0 → 1.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/sdk/router/resolve-sim-sdk-command-router.js +4 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
- package/dist/service/aws/factory/sim-aws-lambda-collaborators.d.ts +2 -0
- package/dist/service/aws/factory/sim-aws-lambda-collaborators.js +3 -0
- package/dist/service/aws/factory/sim-aws-logs-collaborators.d.ts +7 -0
- package/dist/service/aws/factory/sim-aws-logs-collaborators.js +10 -0
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js +5 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +3 -0
- package/dist/service/aws/sim-aws-account-region-scope.js +4 -0
- package/dist/service/aws/sim-aws-account.d.ts +3 -0
- package/dist/service/aws/sim-aws-account.js +4 -0
- package/dist/service/aws/sim-aws-region.d.ts +3 -0
- package/dist/service/aws/sim-aws-region.js +4 -0
- package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
- package/dist/service/aws/sim-aws-service-accessors.js +4 -0
- package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.js +12 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.d.ts +12 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.js +31 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.d.ts +15 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.js +38 -0
- package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.js +17 -0
- package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.js +29 -0
- package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.d.ts +11 -0
- package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.js +37 -0
- package/dist/service/backup/cfn/sim-cfn-backup-properties.d.ts +12 -0
- package/dist/service/backup/cfn/sim-cfn-backup-properties.js +37 -0
- package/dist/service/backup/cfn/sim-cfn-backup-property-reader.d.ts +17 -0
- package/dist/service/backup/cfn/sim-cfn-backup-property-reader.js +62 -0
- package/dist/service/backup/cfn/sim-cfn-backup-resource-error.d.ts +7 -0
- package/dist/service/backup/cfn/sim-cfn-backup-resource-error.js +22 -0
- package/dist/service/backup/command/sim-backup-authorizer.d.ts +11 -0
- package/dist/service/backup/command/sim-backup-authorizer.js +24 -0
- package/dist/service/backup/command/sim-backup-command.types.d.ts +238 -0
- package/dist/service/backup/command/sim-backup-command.types.js +1 -0
- package/dist/service/backup/command/sim-backup-configuration-commands.d.ts +32 -0
- package/dist/service/backup/command/sim-backup-configuration-commands.js +138 -0
- package/dist/service/backup/command/sim-backup-job-commands.d.ts +23 -0
- package/dist/service/backup/command/sim-backup-job-commands.js +52 -0
- package/dist/service/backup/command/sim-backup-recovery-point-commands.d.ts +18 -0
- package/dist/service/backup/command/sim-backup-recovery-point-commands.js +38 -0
- package/dist/service/backup/command/sim-backup-request-options.d.ts +4 -0
- package/dist/service/backup/command/sim-backup-request-options.js +1 -0
- package/dist/service/backup/command/sim-backup-required-string.d.ts +2 -0
- package/dist/service/backup/command/sim-backup-required-string.js +8 -0
- package/dist/service/backup/error/sim-backup.error.d.ts +38 -0
- package/dist/service/backup/error/sim-backup.error.js +50 -0
- package/dist/service/backup/index.d.ts +9 -0
- package/dist/service/backup/index.js +7 -0
- package/dist/service/backup/job/sim-backup-job-input.d.ts +11 -0
- package/dist/service/backup/job/sim-backup-job-input.js +1 -0
- package/dist/service/backup/job/sim-backup-job-page.d.ts +22 -0
- package/dist/service/backup/job/sim-backup-job-page.js +54 -0
- package/dist/service/backup/job/sim-backup-job.d.ts +25 -0
- package/dist/service/backup/job/sim-backup-job.factory.d.ts +10 -0
- package/dist/service/backup/job/sim-backup-job.factory.js +24 -0
- package/dist/service/backup/job/sim-backup-job.js +54 -0
- package/dist/service/backup/job/sim-backup-jobs.d.ts +18 -0
- package/dist/service/backup/job/sim-backup-jobs.js +33 -0
- package/dist/service/backup/plan/sim-backup-plan-schedules.d.ts +21 -0
- package/dist/service/backup/plan/sim-backup-plan-schedules.js +66 -0
- package/dist/service/backup/plan/sim-backup-plan.d.ts +22 -0
- package/dist/service/backup/plan/sim-backup-plan.js +37 -0
- package/dist/service/backup/plan/sim-backup-rule.d.ts +9 -0
- package/dist/service/backup/plan/sim-backup-rule.js +71 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.d.ts +28 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.d.ts +9 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.js +23 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.js +62 -0
- package/dist/service/backup/sdk/sim-backup-sdk-command-router.d.ts +9 -0
- package/dist/service/backup/sdk/sim-backup-sdk-command-router.js +37 -0
- package/dist/service/backup/selection/sim-backup-selection.d.ts +22 -0
- package/dist/service/backup/selection/sim-backup-selection.js +43 -0
- package/dist/service/backup/sim-backup-arn.d.ts +7 -0
- package/dist/service/backup/sim-backup-arn.js +12 -0
- package/dist/service/backup/sim-backup-properties.d.ts +8 -0
- package/dist/service/backup/sim-backup-properties.js +1 -0
- package/dist/service/backup/sim-backup-resource-resolver.d.ts +24 -0
- package/dist/service/backup/sim-backup-resource-resolver.js +44 -0
- package/dist/service/backup/sim-backup-store.d.ts +29 -0
- package/dist/service/backup/sim-backup-store.js +80 -0
- package/dist/service/backup/sim-backup.d.ts +48 -0
- package/dist/service/backup/sim-backup.js +139 -0
- package/dist/service/backup/vault/sim-backup-vault-description.d.ts +12 -0
- package/dist/service/backup/vault/sim-backup-vault-description.js +15 -0
- package/dist/service/backup/vault/sim-backup-vault-lock-configuration.d.ts +5 -0
- package/dist/service/backup/vault/sim-backup-vault-lock-configuration.js +31 -0
- package/dist/service/backup/vault/sim-backup-vault-lock.d.ts +15 -0
- package/dist/service/backup/vault/sim-backup-vault-lock.js +23 -0
- package/dist/service/backup/vault/sim-backup-vault-recovery-points.d.ts +12 -0
- package/dist/service/backup/vault/sim-backup-vault-recovery-points.js +30 -0
- package/dist/service/backup/vault/sim-backup-vault-retention.d.ts +4 -0
- package/dist/service/backup/vault/sim-backup-vault-retention.js +20 -0
- package/dist/service/backup/vault/sim-backup-vault.d.ts +33 -0
- package/dist/service/backup/vault/sim-backup-vault.js +49 -0
- package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.d.ts +3 -0
- package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.js +66 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js +6 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.d.ts +23 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.js +22 -0
- package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +2 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.d.ts +49 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.js +61 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.d.ts +51 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.js +1 -0
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +4 -0
- package/dist/service/cloudwatch/index.d.ts +1 -0
- package/dist/service/cloudwatch/index.js +1 -0
- package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +2 -0
- package/dist/service/cloudwatch/sim-cloudwatch-commands.js +6 -0
- package/dist/service/cloudwatch/sim-cloudwatch.d.ts +9 -0
- package/dist/service/cloudwatch/sim-cloudwatch.js +10 -0
- package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.d.ts +58 -0
- package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.js +53 -0
- package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.js +8 -2
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.js +4 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.d.ts +11 -1
- package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.js +13 -1
- package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.js +16 -4
- package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.d.ts +7 -0
- package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.js +11 -1
- package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.js +8 -2
- package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts +19 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts +1 -1
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js +3 -2
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts +8 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js +11 -3
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.d.ts +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.js +13 -2
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.d.ts +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.js +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.d.ts +7 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.js +18 -7
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.d.ts +20 -3
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.js +19 -3
- package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.d.ts +2 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.d.ts +8 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.js +13 -4
- package/dist/service/cognito/command/sim-cognito-commands.d.ts +5 -0
- package/dist/service/cognito/command/sim-cognito-commands.js +22 -2
- package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.d.ts +74 -0
- package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.js +110 -0
- package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.d.ts +5 -49
- package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.js +7 -87
- package/dist/service/cognito/command/user/sim-cognito-user-commands.d.ts +4 -0
- package/dist/service/cognito/command/user/sim-cognito-user-commands.js +38 -29
- package/dist/service/cognito/error/sim-cognito-managed-login.error.d.ts +23 -0
- package/dist/service/cognito/error/sim-cognito-managed-login.error.js +36 -0
- package/dist/service/cognito/error/sim-cognito-throttle.error.d.ts +13 -0
- package/dist/service/cognito/error/sim-cognito-throttle.error.js +15 -0
- package/dist/service/cognito/index.d.ts +2 -0
- package/dist/service/cognito/index.js +2 -0
- package/dist/service/cognito/metric/sim-cognito-counted-request.d.ts +50 -0
- package/dist/service/cognito/metric/sim-cognito-counted-request.js +51 -0
- package/dist/service/cognito/metric/sim-cognito-metrics.d.ts +22 -0
- package/dist/service/cognito/metric/sim-cognito-metrics.js +26 -0
- package/dist/service/cognito/metric/sim-cognito-pool-metrics.d.ts +40 -0
- package/dist/service/cognito/metric/sim-cognito-pool-metrics.js +51 -0
- package/dist/service/cognito/metric/sim-cognito-throttled-request.d.ts +11 -0
- package/dist/service/cognito/metric/sim-cognito-throttled-request.js +15 -0
- package/dist/service/cognito/serve/page/sim-cognito-managed-login.d.ts +1 -0
- package/dist/service/cognito/serve/page/sim-cognito-managed-login.js +6 -1
- package/dist/service/cognito/serve/page/sim-cognito-page-markup.d.ts +4 -1
- package/dist/service/cognito/serve/page/sim-cognito-page-markup.js +6 -2
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.d.ts +35 -0
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +50 -0
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts +6 -0
- package/dist/service/cognito/sim-cognito-identity-provider.js +1 -0
- package/dist/service/cognito/sim-cognito-user-directory.js +3 -3
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.d.ts +9 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.js +2 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.d.ts +8 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.js +8 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.d.ts +36 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.js +45 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.d.ts +42 -9
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.js +56 -27
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.d.ts +52 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.js +49 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +48 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +94 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.d.ts +13 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.js +19 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.d.ts +7 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.js +9 -0
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.d.ts +3 -2
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.js +3 -2
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.d.ts +18 -1
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.js +35 -18
- package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
- package/dist/service/lambda/command/create-function/create-function.handler.js +4 -1
- package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
- package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +7 -11
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +7 -8
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.d.ts +11 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.js +31 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.d.ts +10 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.js +12 -0
- package/dist/service/lambda/function/sim-lambda-function.d.ts +3 -0
- package/dist/service/lambda/function/sim-lambda-function.js +6 -2
- package/dist/service/lambda/function/sim-lambda-function.type.d.ts +7 -0
- package/dist/service/lambda/metric/sim-lambda-function-metrics.d.ts +47 -0
- package/dist/service/lambda/metric/sim-lambda-function-metrics.js +83 -0
- package/dist/service/lambda/metric/sim-lambda-iterator-age.d.ts +29 -0
- package/dist/service/lambda/metric/sim-lambda-iterator-age.js +41 -0
- package/dist/service/lambda/metric/sim-lambda-metrics.d.ts +12 -0
- package/dist/service/lambda/metric/sim-lambda-metrics.js +13 -0
- package/dist/service/lambda/sim-lambda-commands.d.ts +2 -0
- package/dist/service/lambda/sim-lambda-commands.js +2 -1
- package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.d.ts +9 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.js +25 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.d.ts +30 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.js +52 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.d.ts +40 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.js +66 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.d.ts +19 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.js +40 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.d.ts +5 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.js +23 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.d.ts +25 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.js +58 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.d.ts +6 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.js +19 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +5 -3
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +12 -3
- package/dist/service/logs/command/event/sim-logs-put-log-events.d.ts +3 -0
- package/dist/service/logs/command/event/sim-logs-put-log-events.js +3 -0
- package/dist/service/logs/command/group/sim-logs-log-group-commands.js +3 -3
- package/dist/service/logs/command/metric/metric-filter.command.d.ts +79 -0
- package/dist/service/logs/command/metric/metric-filter.command.js +1 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.d.ts +48 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.js +95 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-input.d.ts +11 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-input.js +79 -0
- package/dist/service/logs/command/sim-logs-command.types.d.ts +1 -0
- package/dist/service/logs/group/sim-logs-log-group.d.ts +6 -0
- package/dist/service/logs/group/sim-logs-log-group.js +6 -0
- package/dist/service/logs/index.d.ts +6 -0
- package/dist/service/logs/index.js +4 -0
- package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.d.ts +40 -0
- package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.js +78 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.d.ts +25 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.js +81 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.d.ts +57 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.js +85 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.d.ts +24 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.js +41 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.d.ts +20 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.js +39 -0
- package/dist/service/logs/metric/sim-logs-metric-datapoint.d.ts +25 -0
- package/dist/service/logs/metric/sim-logs-metric-datapoint.js +1 -0
- package/dist/service/logs/metric/sim-logs-metric-fan-out.d.ts +62 -0
- package/dist/service/logs/metric/sim-logs-metric-fan-out.js +116 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-selection.d.ts +17 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-selection.js +17 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-store.d.ts +35 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-store.js +47 -0
- package/dist/service/logs/metric/sim-logs-metric-filter.d.ts +49 -0
- package/dist/service/logs/metric/sim-logs-metric-filter.js +95 -0
- package/dist/service/logs/metric/sim-logs-metric-publication-failure.d.ts +31 -0
- package/dist/service/logs/metric/sim-logs-metric-publication-failure.js +12 -0
- package/dist/service/logs/metric/sim-logs-metric-publications.d.ts +11 -0
- package/dist/service/logs/metric/sim-logs-metric-publications.js +1 -0
- package/dist/service/logs/metric/sim-logs-metric-transformation.d.ts +45 -0
- package/dist/service/logs/metric/sim-logs-metric-transformation.js +127 -0
- package/dist/service/logs/sdk/sim-logs-sdk-command-router.js +12 -0
- package/dist/service/logs/sim-logs-commands.d.ts +12 -0
- package/dist/service/logs/sim-logs-commands.js +17 -0
- package/dist/service/logs/sim-logs-metric-operations.d.ts +31 -0
- package/dist/service/logs/sim-logs-metric-operations.js +37 -0
- package/dist/service/logs/sim-logs.d.ts +4 -3
- package/dist/service/logs/sim-logs.js +4 -3
- package/dist/service/logs/write/sim-logs-service-writer.d.ts +3 -0
- package/dist/service/logs/write/sim-logs-service-writer.js +5 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +32 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +31 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +13 -2
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +18 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +17 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +27 -3
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +45 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +90 -0
- package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.d.ts +42 -0
- package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.js +59 -0
- package/dist/service/s3/bucket/lock/sim-s3-default-retention.d.ts +8 -0
- package/dist/service/s3/bucket/lock/sim-s3-default-retention.js +15 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.d.ts +49 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.js +102 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.d.ts +14 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.js +1 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock.d.ts +62 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock.js +100 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-retention.d.ts +55 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-retention.js +82 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +9 -1
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.d.ts +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +1 -2
- package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +114 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.js +148 -0
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +30 -29
- package/dist/service/s3/bucket/sim-s3-bucket.js +42 -45
- package/dist/service/s3/bucket/sim-s3-object-deletion.d.ts +30 -0
- package/dist/service/s3/bucket/sim-s3-object-deletion.js +29 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.d.ts +61 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.js +65 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.d.ts +97 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.js +176 -0
- package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.d.ts +10 -0
- package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.js +16 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +85 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +101 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-versions.d.ts +52 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-versions.js +91 -0
- package/dist/service/s3/bucket/versioning/sim-s3-version-page.d.ts +32 -0
- package/dist/service/s3/bucket/versioning/sim-s3-version-page.js +45 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.d.ts +0 -5
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +3 -14
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +18 -1
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +34 -1
- package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.d.ts +37 -0
- package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.js +78 -0
- package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.d.ts +20 -0
- package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.js +107 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +14 -7
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +29 -37
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +62 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +89 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +9 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +16 -16
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.d.ts +9 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.js +17 -6
- package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.d.ts +19 -0
- package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.js +28 -0
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +24 -0
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +30 -0
- package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.command.d.ts +2 -0
- package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.handler.js +3 -1
- package/dist/service/s3/command/copy-object/copy-object.command.d.ts +3 -1
- package/dist/service/s3/command/copy-object/copy-object.handler.js +3 -1
- package/dist/service/s3/command/delete-object/delete-object-version-removal.d.ts +50 -0
- package/dist/service/s3/command/delete-object/delete-object-version-removal.js +52 -0
- package/dist/service/s3/command/delete-object/delete-object.command.d.ts +19 -2
- package/dist/service/s3/command/delete-object/delete-object.handler.d.ts +7 -1
- package/dist/service/s3/command/delete-object/delete-object.handler.js +28 -16
- package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.d.ts +24 -0
- package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.js +32 -0
- package/dist/service/s3/command/delete-objects/delete-object-attempt.d.ts +6 -2
- package/dist/service/s3/command/delete-objects/delete-object-attempt.js +6 -2
- package/dist/service/s3/command/delete-objects/delete-objects-key-removal.js +10 -9
- package/dist/service/s3/command/delete-objects/delete-objects-outcome.js +9 -1
- package/dist/service/s3/command/delete-objects/delete-objects.command.d.ts +6 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.d.ts +23 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.js +1 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.d.ts +31 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.js +40 -0
- package/dist/service/s3/command/get-object/get-object-loader.d.ts +3 -2
- package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
- package/dist/service/s3/command/get-object/get-object.command.d.ts +9 -1
- package/dist/service/s3/command/get-object/get-object.handler.js +1 -1
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.d.ts +25 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.js +1 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.d.ts +31 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.js +41 -0
- package/dist/service/s3/command/head-object/head-object-loader.d.ts +1 -1
- package/dist/service/s3/command/head-object/head-object-loader.js +7 -3
- package/dist/service/s3/command/head-object/head-object.command.d.ts +9 -1
- package/dist/service/s3/command/head-object/head-object.handler.js +1 -1
- package/dist/service/s3/command/list-object-versions/list-object-versions-listing.d.ts +31 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-listing.js +55 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.d.ts +17 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +34 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.command.d.ts +59 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.command.js +1 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.handler.d.ts +34 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.handler.js +62 -0
- package/dist/service/s3/command/object/sim-s3-read-object-version.d.ts +34 -0
- package/dist/service/s3/command/object/sim-s3-read-object-version.js +52 -0
- package/dist/service/s3/command/object-lock/sim-s3-locked-version.d.ts +11 -0
- package/dist/service/s3/command/object-lock/sim-s3-locked-version.js +27 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.d.ts +42 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.js +66 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.d.ts +30 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.js +41 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.d.ts +21 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.js +1 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.d.ts +31 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.js +44 -0
- package/dist/service/s3/command/put-object/put-object.command.d.ts +3 -0
- package/dist/service/s3/command/put-object/put-object.handler.js +10 -10
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.d.ts +24 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.js +1 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.d.ts +32 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.js +41 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.d.ts +21 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.js +1 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.d.ts +32 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.js +47 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.command.d.ts +29 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.command.js +1 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.handler.d.ts +31 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.handler.js +42 -0
- package/dist/service/s3/command/sim-s3-command.types.d.ts +7 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.d.ts +35 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.js +57 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-commands.d.ts +26 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-commands.js +34 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.d.ts +13 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.js +28 -0
- package/dist/service/s3/error/sim-s3-object-lock.error.d.ts +22 -0
- package/dist/service/s3/error/sim-s3-object-lock.error.js +26 -0
- package/dist/service/s3/error/sim-s3.error.d.ts +22 -0
- package/dist/service/s3/error/sim-s3.error.js +26 -0
- package/dist/service/s3/notification/event/sim-s3-event-records.js +3 -0
- package/dist/service/s3/notification/event/sim-s3-event.type.d.ts +5 -3
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +15 -0
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +4 -1
- package/dist/service/s3/notification/event/sim-s3-object-event.d.ts +6 -0
- package/dist/service/s3/notification/event/sim-s3-object-event.js +2 -0
- package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +1 -1
- package/dist/service/s3/notification/sim-s3-object-notifier.js +2 -2
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.d.ts +10 -0
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +84 -0
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +6 -132
- package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.d.ts +10 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.js +28 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-routes.d.ts +7 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-routes.js +80 -0
- package/dist/service/s3/sim-s3-commands.d.ts +4 -0
- package/dist/service/s3/sim-s3-commands.js +6 -0
- package/dist/service/s3/sim-s3-operations.d.ts +5 -5
- package/dist/service/s3/sim-s3-operations.js +5 -6
- package/dist/service/s3/sim-s3-version-operations.d.ts +32 -0
- package/dist/service/s3/sim-s3-version-operations.js +45 -0
- package/dist/service/scheduler/command/schedule/schedule.command.d.ts +9 -2
- package/dist/service/scheduler/command/schedule/sim-scheduler-described-schedule.js +2 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-unsimulated-target.js +0 -6
- package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -1
- package/dist/service/scheduler/command/sim-scheduler-commands.js +1 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.d.ts +17 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.js +29 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.d.ts +6 -1
- package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +9 -0
- package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.d.ts +18 -0
- package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.js +62 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.d.ts +29 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.js +81 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +9 -5
- package/dist/service/scheduler/delivery/sim-scheduler-delivery.d.ts +11 -0
- package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.d.ts +5 -1
- package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.js +8 -0
- package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.d.ts +4 -1
- package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.js +20 -15
- package/dist/service/scheduler/index.d.ts +1 -1
- package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.d.ts +15 -0
- package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.js +24 -0
- package/dist/service/scheduler/target/sim-scheduler-retry-policy.d.ts +20 -0
- package/dist/service/scheduler/target/sim-scheduler-retry-policy.js +37 -0
- package/dist/service/scheduler/target/sim-scheduler-target.d.ts +6 -0
- package/dist/service/scheduler/target/sim-scheduler-target.js +12 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js +13 -5
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts +1 -1
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js +9 -9
- package/dist/service/ses/command/send/send.command.d.ts +10 -1
- package/dist/service/ses/command/send/sim-ses-read-content.d.ts +2 -1
- package/dist/service/ses/command/send/sim-ses-send-email.js +1 -0
- package/dist/service/ses/command/send/sim-ses-service-send.js +1 -0
- package/dist/service/ses/command/send/sim-ses-simple-content.js +26 -5
- package/dist/service/ses/command/send/sim-ses-template-send.js +1 -0
- package/dist/service/ses/command/suppression/suppression.command.d.ts +3 -2
- package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts +9 -10
- package/dist/service/ses/configuration-set/sim-ses-configuration-set.js +7 -8
- package/dist/service/ses/email/sim-ses-sent-email-store.d.ts +8 -0
- package/dist/service/ses/email/sim-ses-sent-email-store.js +17 -0
- package/dist/service/ses/email/sim-ses-sent-email.d.ts +18 -0
- package/dist/service/ses/email/sim-ses-sent-email.js +3 -0
- package/dist/service/ses/error/sim-ses.error.d.ts +10 -0
- package/dist/service/ses/error/sim-ses.error.js +10 -0
- package/dist/service/ses/feedback/sim-ses-feedback-recorder.d.ts +34 -0
- package/dist/service/ses/feedback/sim-ses-feedback-recorder.js +55 -0
- package/dist/service/ses/index.d.ts +3 -2
- package/dist/service/ses/index.js +2 -1
- package/dist/service/ses/sim-ses-commands.d.ts +2 -0
- package/dist/service/ses/sim-ses-commands.js +9 -0
- package/dist/service/ses/sim-ses-configuration-sets.d.ts +4 -4
- package/dist/service/ses/sim-ses-configuration-sets.js +4 -4
- package/dist/service/ses/sim-ses-suppression.d.ts +3 -2
- package/dist/service/ses/sim-ses-suppression.js +3 -2
- package/dist/service/ses/sim-ses-v2.d.ts +13 -0
- package/dist/service/ses/sim-ses-v2.js +13 -0
- package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts +3 -4
- package/dist/service/ses/suppression/sim-ses-suppressed-destination.js +3 -4
- package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts +4 -4
- package/dist/service/ses/suppression/sim-ses-suppression-list.js +4 -4
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.d.ts +15 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.js +33 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +16 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +33 -1
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.d.ts +12 -6
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.js +18 -13
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +9 -1
- package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +4 -3
- package/dist/terraform/map/sim-tf-map-sqs-redrive.js +4 -3
- package/docs/README.md +1 -0
- package/docs/services/backup/README.md +553 -0
- package/docs/services/cloudformation/README.md +16 -6
- package/docs/services/cloudwatch/README.md +159 -3
- package/docs/services/cognito/README.md +370 -7
- package/docs/services/lambda/README.md +28 -0
- package/docs/services/logs/README.md +284 -3
- package/docs/services/s3/README.md +463 -20
- package/docs/services/scheduler/README.md +48 -9
- package/docs/services/ses/README.md +164 -41
- package/docs/services/sqs/README.md +47 -10
- package/llms.txt +1 -0
- package/package.json +7 -2
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The kinds of request a pool counts, and can be told to turn away.
|
|
3
|
+
*
|
|
4
|
+
* These are the four real Cognito keeps a `*Successes` and a `*Throttles`
|
|
5
|
+
* metric for. The operation names the pair rather than either metric, because
|
|
6
|
+
* one request writes to both.
|
|
7
|
+
*/
|
|
8
|
+
export type SimCognitoThrottledOperation = "SignIn" | "SignUp" | "TokenRefresh" | "Federation";
|
|
9
|
+
/**
|
|
10
|
+
* How many requests of each kind a pool has been told to turn away.
|
|
11
|
+
*
|
|
12
|
+
* Real Cognito turns a request away when the account has gone over a rate
|
|
13
|
+
* limit, and those limits are per account and mostly undocumented. Working one
|
|
14
|
+
* out here would be inventing a number, and a test asserting against an
|
|
15
|
+
* invented number proves nothing about a real pool. So a test says how many
|
|
16
|
+
* requests to refuse instead, and the pool refuses that many and no more.
|
|
17
|
+
*
|
|
18
|
+
* A pool refuses nothing until a test asks it to.
|
|
19
|
+
*/
|
|
20
|
+
export declare class SimCognitoRequestThrottle {
|
|
21
|
+
#private;
|
|
22
|
+
/** Turn away the next `count` sign-in requests. */
|
|
23
|
+
signIns(count: number): void;
|
|
24
|
+
/** Turn away the next `count` registrations. */
|
|
25
|
+
signUps(count: number): void;
|
|
26
|
+
/** Turn away the next `count` renewals from a refresh token. */
|
|
27
|
+
tokenRefreshes(count: number): void;
|
|
28
|
+
/** Turn away the next `count` sign-ins through an identity provider. */
|
|
29
|
+
federations(count: number): void;
|
|
30
|
+
/**
|
|
31
|
+
* Take one refusal for this operation, answering with whether there was one
|
|
32
|
+
* to take. A request that takes one is the request being turned away.
|
|
33
|
+
*/
|
|
34
|
+
takesOne(operation: SimCognitoThrottledOperation): boolean;
|
|
35
|
+
private queue;
|
|
36
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many requests of each kind a pool has been told to turn away.
|
|
3
|
+
*
|
|
4
|
+
* Real Cognito turns a request away when the account has gone over a rate
|
|
5
|
+
* limit, and those limits are per account and mostly undocumented. Working one
|
|
6
|
+
* out here would be inventing a number, and a test asserting against an
|
|
7
|
+
* invented number proves nothing about a real pool. So a test says how many
|
|
8
|
+
* requests to refuse instead, and the pool refuses that many and no more.
|
|
9
|
+
*
|
|
10
|
+
* A pool refuses nothing until a test asks it to.
|
|
11
|
+
*/
|
|
12
|
+
export class SimCognitoRequestThrottle {
|
|
13
|
+
#queued = new Map();
|
|
14
|
+
/** Turn away the next `count` sign-in requests. */
|
|
15
|
+
signIns(count) {
|
|
16
|
+
this.queue("SignIn", count);
|
|
17
|
+
}
|
|
18
|
+
/** Turn away the next `count` registrations. */
|
|
19
|
+
signUps(count) {
|
|
20
|
+
this.queue("SignUp", count);
|
|
21
|
+
}
|
|
22
|
+
/** Turn away the next `count` renewals from a refresh token. */
|
|
23
|
+
tokenRefreshes(count) {
|
|
24
|
+
this.queue("TokenRefresh", count);
|
|
25
|
+
}
|
|
26
|
+
/** Turn away the next `count` sign-ins through an identity provider. */
|
|
27
|
+
federations(count) {
|
|
28
|
+
this.queue("Federation", count);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Take one refusal for this operation, answering with whether there was one
|
|
32
|
+
* to take. A request that takes one is the request being turned away.
|
|
33
|
+
*/
|
|
34
|
+
takesOne(operation) {
|
|
35
|
+
const left = this.#queued.get(operation) ?? 0;
|
|
36
|
+
if (left < 1) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
this.#queued.set(operation, left - 1);
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
queue(operation, count) {
|
|
43
|
+
this.#queued.set(operation, (this.#queued.get(operation) ?? 0) + count);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -1,13 +1,24 @@
|
|
|
1
|
+
import type { SimCognitoUserPoolClient } from "../client/sim-cognito-user-pool-client.js";
|
|
1
2
|
import type { SimCognitoUserPool } from "../sim-cognito-user-pool.js";
|
|
3
|
+
import type { SimCognitoUserPoolTriggers } from "../trigger/sim-cognito-user-pool-triggers.js";
|
|
2
4
|
import type { SimCognitoUser } from "../user/sim-cognito-user.js";
|
|
3
5
|
import type { SimCognitoUserFactory } from "../user/sim-cognito-user-factory.js";
|
|
6
|
+
import type { SimCognitoExternalUser } from "./sim-cognito-external-user.js";
|
|
4
7
|
import type { SimCognitoUserPoolIdentityProvider } from "./sim-cognito-user-pool-identity-provider.js";
|
|
5
8
|
interface SimCognitoFederatedSignInProperties {
|
|
6
9
|
readonly userFactory: SimCognitoUserFactory;
|
|
10
|
+
readonly triggers: SimCognitoUserPoolTriggers;
|
|
7
11
|
}
|
|
8
12
|
interface SimCognitoFederatedSignInRequest {
|
|
9
13
|
readonly pool: SimCognitoUserPool;
|
|
14
|
+
readonly client: SimCognitoUserPoolClient;
|
|
10
15
|
readonly provider: SimCognitoUserPoolIdentityProvider;
|
|
16
|
+
/**
|
|
17
|
+
* Who the provider is signing in, which the caller settled before getting
|
|
18
|
+
* here: the user `signInAs` put at the provider, or the one the stand-in
|
|
19
|
+
* page for it posted back.
|
|
20
|
+
*/
|
|
21
|
+
readonly externalUser: SimCognitoExternalUser;
|
|
11
22
|
readonly now: Date;
|
|
12
23
|
}
|
|
13
24
|
/**
|
|
@@ -24,23 +35,45 @@ interface SimCognitoFederatedSignInRequest {
|
|
|
24
35
|
* The provider's claims reach the user through the provider's attribute
|
|
25
36
|
* mapping, on every sign-in rather than only the first, because real Cognito
|
|
26
37
|
* updates a mapped attribute when the value at the provider changes.
|
|
38
|
+
*
|
|
39
|
+
* Which triggers fire depends on whether the pool has met this subject before.
|
|
40
|
+
* A first sign-in is a sign-up, and runs `PreSignUp` and `PostConfirmation`.
|
|
41
|
+
* Every sign-in after it is an authentication, and runs `PreAuthentication`
|
|
42
|
+
* and `PostAuthentication`. That is the split AWS documents for federated
|
|
43
|
+
* users, and it means a handler creating a profile record on first sight of a
|
|
44
|
+
* user runs once for a Google user rather than on every visit.
|
|
27
45
|
*/
|
|
28
46
|
export declare class SimCognitoFederatedSignIn {
|
|
29
47
|
private readonly userFactory;
|
|
48
|
+
private readonly triggers;
|
|
30
49
|
constructor(properties: SimCognitoFederatedSignInProperties);
|
|
31
50
|
/**
|
|
32
|
-
*
|
|
51
|
+
* Sign the user signed in at the provider in to the pool.
|
|
52
|
+
*/
|
|
53
|
+
signIn(request: SimCognitoFederatedSignInRequest): Promise<SimCognitoUser>;
|
|
54
|
+
/**
|
|
55
|
+
* Sign in a subject the pool already holds a user for.
|
|
56
|
+
*
|
|
57
|
+
* `PreAuthentication` runs before the mapped attributes are brought up to
|
|
58
|
+
* date, so a handler that refuses the sign-in leaves the user as it was.
|
|
33
59
|
*
|
|
34
|
-
* A
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* hand an application a token for someone else's account, which is worth
|
|
38
|
-
* refusing rather than guessing at.
|
|
60
|
+
* A disabled user is refused after that trigger and not before it, which is
|
|
61
|
+
* the order the API sign-ins use: real Cognito hands the trigger the user to
|
|
62
|
+
* decide about, and a sign-in the pool is going to refuse reaches it too.
|
|
39
63
|
*/
|
|
40
|
-
private
|
|
64
|
+
private returningUser;
|
|
41
65
|
/**
|
|
42
|
-
*
|
|
66
|
+
* Build and sign in the pool's user for a subject it has never seen.
|
|
67
|
+
*
|
|
68
|
+
* The order is the sign-up's order. `PreSignUp` runs on a user that is not
|
|
69
|
+
* in the pool yet, so a handler that throws leaves the pool without it, and
|
|
70
|
+
* `PostConfirmation` runs on the user the pool now holds.
|
|
71
|
+
*
|
|
72
|
+
* `autoConfirmUser` has nothing to do here. A federated user is created in
|
|
73
|
+
* `EXTERNAL_PROVIDER` and never passes through `UNCONFIRMED`, so there is no
|
|
74
|
+
* confirmation for a handler to skip. `autoVerifyEmail` and `autoVerifyPhone`
|
|
75
|
+
* are applied, as they are for a sign-up.
|
|
43
76
|
*/
|
|
44
|
-
|
|
77
|
+
private newUser;
|
|
45
78
|
}
|
|
46
79
|
export {};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { requireSimCognitoUsername } from "../user/sim-cognito-username.js";
|
|
1
|
+
import { requireSimCognitoEnabled } from "../auth/sim-cognito-sign-in.js";
|
|
2
|
+
import { requireSimCognitoUsername, } from "../user/sim-cognito-username.js";
|
|
3
3
|
import { SimCognitoFederatedIdentity } from "./sim-cognito-federated-identity.js";
|
|
4
|
+
import { SimCognitoFederatedTriggers } from "./sim-cognito-federated-triggers.js";
|
|
5
|
+
import { requireSimCognitoSameFederatedIdentity } from "./sim-cognito-same-federated-identity.js";
|
|
4
6
|
/**
|
|
5
7
|
* Signs an external user in to a pool, creating the pool's own user for it the
|
|
6
8
|
* first time.
|
|
@@ -15,45 +17,69 @@ import { SimCognitoFederatedIdentity } from "./sim-cognito-federated-identity.js
|
|
|
15
17
|
* The provider's claims reach the user through the provider's attribute
|
|
16
18
|
* mapping, on every sign-in rather than only the first, because real Cognito
|
|
17
19
|
* updates a mapped attribute when the value at the provider changes.
|
|
20
|
+
*
|
|
21
|
+
* Which triggers fire depends on whether the pool has met this subject before.
|
|
22
|
+
* A first sign-in is a sign-up, and runs `PreSignUp` and `PostConfirmation`.
|
|
23
|
+
* Every sign-in after it is an authentication, and runs `PreAuthentication`
|
|
24
|
+
* and `PostAuthentication`. That is the split AWS documents for federated
|
|
25
|
+
* users, and it means a handler creating a profile record on first sight of a
|
|
26
|
+
* user runs once for a Google user rather than on every visit.
|
|
18
27
|
*/
|
|
19
28
|
export class SimCognitoFederatedSignIn {
|
|
20
29
|
userFactory;
|
|
30
|
+
triggers;
|
|
21
31
|
constructor(properties) {
|
|
22
32
|
this.userFactory = properties.userFactory;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
*
|
|
27
|
-
* A username is only reserved by being taken, and a pool's own user may
|
|
28
|
-
* validly be called `Google_1234`, so the user found by name is only the
|
|
29
|
-
* federated one when its identity says so. Signing in as it otherwise would
|
|
30
|
-
* hand an application a token for someone else's account, which is worth
|
|
31
|
-
* refusing rather than guessing at.
|
|
32
|
-
*/
|
|
33
|
-
static requireSameIdentity(existing, provider) {
|
|
34
|
-
const { identity } = existing;
|
|
35
|
-
const externalUser = provider.requireSignedInUser();
|
|
36
|
-
if (identity?.providerName !== provider.name ||
|
|
37
|
-
identity.userId !== externalUser.subject) {
|
|
38
|
-
throw new SimCognitoUsernameExistsException(`User ${existing.username} already exists in user pool ` +
|
|
39
|
-
`${provider.userPoolId} and is not the ${provider.name} user this ` +
|
|
40
|
-
`sign-in is for.`);
|
|
41
|
-
}
|
|
33
|
+
this.triggers = new SimCognitoFederatedTriggers({
|
|
34
|
+
triggers: properties.triggers,
|
|
35
|
+
});
|
|
42
36
|
}
|
|
43
37
|
/**
|
|
44
38
|
* Sign the user signed in at the provider in to the pool.
|
|
45
39
|
*/
|
|
46
|
-
signIn(request) {
|
|
47
|
-
const { pool, provider,
|
|
48
|
-
const externalUser = provider.requireSignedInUser();
|
|
40
|
+
async signIn(request) {
|
|
41
|
+
const { pool, provider, externalUser } = request;
|
|
49
42
|
const username = requireSimCognitoUsername(`${provider.name}_${externalUser.subject}`);
|
|
50
43
|
const attributes = provider.attributeMapping.attributesFor(externalUser);
|
|
51
44
|
const existing = pool.findUser(username);
|
|
52
45
|
if (existing !== undefined) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return existing;
|
|
46
|
+
requireSimCognitoSameFederatedIdentity(existing, provider, externalUser);
|
|
47
|
+
return this.returningUser(request, existing, attributes);
|
|
56
48
|
}
|
|
49
|
+
return this.newUser(request, username, attributes);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Sign in a subject the pool already holds a user for.
|
|
53
|
+
*
|
|
54
|
+
* `PreAuthentication` runs before the mapped attributes are brought up to
|
|
55
|
+
* date, so a handler that refuses the sign-in leaves the user as it was.
|
|
56
|
+
*
|
|
57
|
+
* A disabled user is refused after that trigger and not before it, which is
|
|
58
|
+
* the order the API sign-ins use: real Cognito hands the trigger the user to
|
|
59
|
+
* decide about, and a sign-in the pool is going to refuse reaches it too.
|
|
60
|
+
*/
|
|
61
|
+
async returningUser(request, user, attributes) {
|
|
62
|
+
const { pool, client } = request;
|
|
63
|
+
await this.triggers.beforeSignIn({ pool, client, user });
|
|
64
|
+
requireSimCognitoEnabled(user);
|
|
65
|
+
user.updateAttributes(attributes);
|
|
66
|
+
await this.triggers.afterSignIn({ pool, client, user });
|
|
67
|
+
return user;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build and sign in the pool's user for a subject it has never seen.
|
|
71
|
+
*
|
|
72
|
+
* The order is the sign-up's order. `PreSignUp` runs on a user that is not
|
|
73
|
+
* in the pool yet, so a handler that throws leaves the pool without it, and
|
|
74
|
+
* `PostConfirmation` runs on the user the pool now holds.
|
|
75
|
+
*
|
|
76
|
+
* `autoConfirmUser` has nothing to do here. A federated user is created in
|
|
77
|
+
* `EXTERNAL_PROVIDER` and never passes through `UNCONFIRMED`, so there is no
|
|
78
|
+
* confirmation for a handler to skip. `autoVerifyEmail` and `autoVerifyPhone`
|
|
79
|
+
* are applied, as they are for a sign-up.
|
|
80
|
+
*/
|
|
81
|
+
async newUser(request, username, attributes) {
|
|
82
|
+
const { pool, client, provider, externalUser, now } = request;
|
|
57
83
|
const user = this.userFactory.federated({
|
|
58
84
|
username,
|
|
59
85
|
attributes,
|
|
@@ -66,7 +92,10 @@ export class SimCognitoFederatedSignIn {
|
|
|
66
92
|
createdAt: now,
|
|
67
93
|
}),
|
|
68
94
|
});
|
|
95
|
+
const preSignUp = await this.triggers.beforeSignUp({ pool, client, user });
|
|
96
|
+
preSignUp.verifyAttributesOf(user);
|
|
69
97
|
pool.addUser(user);
|
|
98
|
+
await this.triggers.afterSignUp({ pool, client, user });
|
|
70
99
|
return user;
|
|
71
100
|
}
|
|
72
101
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { SimCognitoUserPoolClient } from "../client/sim-cognito-user-pool-client.js";
|
|
2
|
+
import type { SimCognitoUserPool } from "../sim-cognito-user-pool.js";
|
|
3
|
+
import type { SimCognitoPreSignUpResponse } from "../trigger/sim-cognito-pre-sign-up-response.js";
|
|
4
|
+
import type { SimCognitoUserPoolTriggers } from "../trigger/sim-cognito-user-pool-triggers.js";
|
|
5
|
+
import type { SimCognitoUser } from "../user/sim-cognito-user.js";
|
|
6
|
+
interface SimCognitoFederatedTriggersProperties {
|
|
7
|
+
readonly triggers: SimCognitoUserPoolTriggers;
|
|
8
|
+
}
|
|
9
|
+
interface SimCognitoFederatedTriggerContext {
|
|
10
|
+
readonly pool: SimCognitoUserPool;
|
|
11
|
+
readonly client: SimCognitoUserPoolClient;
|
|
12
|
+
readonly user: SimCognitoUser;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The triggers a sign-in at an identity provider runs, in the order they run.
|
|
16
|
+
*
|
|
17
|
+
* AWS documents two sets. A subject the pool has never seen is signing up, and
|
|
18
|
+
* runs `PreSignUp` and then `PostConfirmation`. A subject it already holds a
|
|
19
|
+
* user for is authenticating, and runs `PreAuthentication` and then
|
|
20
|
+
* `PostAuthentication`. Keeping the pair here rather than in the sign-in makes
|
|
21
|
+
* the two sequences the whole of what this says.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SimCognitoFederatedTriggers {
|
|
24
|
+
private readonly triggers;
|
|
25
|
+
constructor(properties: SimCognitoFederatedTriggersProperties);
|
|
26
|
+
/**
|
|
27
|
+
* Run the trigger that guards a first sign-in, and answer with what its
|
|
28
|
+
* handler asked for.
|
|
29
|
+
*
|
|
30
|
+
* It runs on a user the pool has yet to be given, so a handler that throws
|
|
31
|
+
* leaves the pool without it.
|
|
32
|
+
*/
|
|
33
|
+
beforeSignUp(context: SimCognitoFederatedTriggerContext): Promise<SimCognitoPreSignUpResponse>;
|
|
34
|
+
/**
|
|
35
|
+
* Run the trigger that follows a first sign-in, on the user the pool now
|
|
36
|
+
* holds.
|
|
37
|
+
*
|
|
38
|
+
* The source is the one a local confirmation reports, so an application
|
|
39
|
+
* writing its own user record from that handler writes one for a federated
|
|
40
|
+
* user without adding anything.
|
|
41
|
+
*/
|
|
42
|
+
afterSignUp(context: SimCognitoFederatedTriggerContext): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Run the trigger that guards a sign-in by a subject the pool already knows.
|
|
45
|
+
*/
|
|
46
|
+
beforeSignIn(context: SimCognitoFederatedTriggerContext): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Run the trigger that follows one.
|
|
49
|
+
*/
|
|
50
|
+
afterSignIn(context: SimCognitoFederatedTriggerContext): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SimCognitoTriggerOccasion } from "../trigger/sim-cognito-trigger-occasion.js";
|
|
2
|
+
/**
|
|
3
|
+
* The triggers a sign-in at an identity provider runs, in the order they run.
|
|
4
|
+
*
|
|
5
|
+
* AWS documents two sets. A subject the pool has never seen is signing up, and
|
|
6
|
+
* runs `PreSignUp` and then `PostConfirmation`. A subject it already holds a
|
|
7
|
+
* user for is authenticating, and runs `PreAuthentication` and then
|
|
8
|
+
* `PostAuthentication`. Keeping the pair here rather than in the sign-in makes
|
|
9
|
+
* the two sequences the whole of what this says.
|
|
10
|
+
*/
|
|
11
|
+
export class SimCognitoFederatedTriggers {
|
|
12
|
+
triggers;
|
|
13
|
+
constructor(properties) {
|
|
14
|
+
this.triggers = properties.triggers;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Run the trigger that guards a first sign-in, and answer with what its
|
|
18
|
+
* handler asked for.
|
|
19
|
+
*
|
|
20
|
+
* It runs on a user the pool has yet to be given, so a handler that throws
|
|
21
|
+
* leaves the pool without it.
|
|
22
|
+
*/
|
|
23
|
+
async beforeSignUp(context) {
|
|
24
|
+
return this.triggers.preSignUp(SimCognitoTriggerOccasion.externalProviderSignUp, context);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Run the trigger that follows a first sign-in, on the user the pool now
|
|
28
|
+
* holds.
|
|
29
|
+
*
|
|
30
|
+
* The source is the one a local confirmation reports, so an application
|
|
31
|
+
* writing its own user record from that handler writes one for a federated
|
|
32
|
+
* user without adding anything.
|
|
33
|
+
*/
|
|
34
|
+
async afterSignUp(context) {
|
|
35
|
+
await this.triggers.postConfirmation(SimCognitoTriggerOccasion.confirmSignUp, context);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Run the trigger that guards a sign-in by a subject the pool already knows.
|
|
39
|
+
*/
|
|
40
|
+
async beforeSignIn(context) {
|
|
41
|
+
await this.triggers.preAuthentication(context);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Run the trigger that follows one.
|
|
45
|
+
*/
|
|
46
|
+
async afterSignIn(context) {
|
|
47
|
+
await this.triggers.postAuthentication(context);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { SimCognitoAuthorizeInput } from "../../command/hosted/hosted-auth.command.js";
|
|
2
|
+
import { SimCognitoExternalUser } from "./sim-cognito-external-user.js";
|
|
3
|
+
import type { SimCognitoUserPoolIdentityProvider } from "./sim-cognito-user-pool-identity-provider.js";
|
|
4
|
+
/**
|
|
5
|
+
* What a claim field is called on the stand-in provider page.
|
|
6
|
+
*
|
|
7
|
+
* The names after it are the provider's own claim names, so they are prefixed
|
|
8
|
+
* to keep them apart from the authorize parameters the form posts beside them.
|
|
9
|
+
*/
|
|
10
|
+
export declare const simCognitoClaimFieldPrefix = "claim_";
|
|
11
|
+
/**
|
|
12
|
+
* The claim names a provider's attribute mapping reads.
|
|
13
|
+
*
|
|
14
|
+
* The mapping is keyed by pool attribute and valued by claim, so the values
|
|
15
|
+
* are what a provider would have asserted and what the page asks for.
|
|
16
|
+
*/
|
|
17
|
+
export declare function simCognitoMappedClaimNames(provider: SimCognitoUserPoolIdentityProvider): readonly string[];
|
|
18
|
+
/**
|
|
19
|
+
* What one claim field is pre-filled with, so that the page signs a user in
|
|
20
|
+
* when nobody edits it.
|
|
21
|
+
*
|
|
22
|
+
* An address has to look like one, because a pool that verifies or aliases by
|
|
23
|
+
* email holds it to that. Everything else is a name as far as this knows.
|
|
24
|
+
*/
|
|
25
|
+
export declare function simCognitoDefaultClaim(claimName: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* The subject the page pre-fills, which says on its face where it came from.
|
|
28
|
+
*/
|
|
29
|
+
export declare function simCognitoDefaultSubject(provider: SimCognitoUserPoolIdentityProvider): string;
|
|
30
|
+
/**
|
|
31
|
+
* The external user an authorize request presented, where it presented one.
|
|
32
|
+
*
|
|
33
|
+
* This is the stand-in page for a provider coming back. Nothing is kept on the
|
|
34
|
+
* provider afterwards, because real Cognito asks the provider afresh on every
|
|
35
|
+
* authorize request, and `signInAs` stays what a test says it with.
|
|
36
|
+
*/
|
|
37
|
+
export declare function simCognitoPresentedExternalUser(input: SimCognitoAuthorizeInput): SimCognitoExternalUser | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Who a provider is signing in for one authorize request.
|
|
40
|
+
*
|
|
41
|
+
* A request presenting a subject of its own is the stand-in page for the
|
|
42
|
+
* provider coming back, and it wins, because real Cognito asks the provider
|
|
43
|
+
* afresh every time rather than remembering the last answer. Where it presents
|
|
44
|
+
* none, the user `signInAs` put at the provider signs in. Where there is
|
|
45
|
+
* neither, the request is refused with what a served domain draws that page
|
|
46
|
+
* from.
|
|
47
|
+
*/
|
|
48
|
+
export declare function requireSimCognitoSigningInAt(provider: SimCognitoUserPoolIdentityProvider, input: SimCognitoAuthorizeInput): SimCognitoExternalUser;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { SimCognitoProviderSignInRequired } from "../../error/sim-cognito-managed-login.error.js";
|
|
2
|
+
import { SimCognitoExternalUser } from "./sim-cognito-external-user.js";
|
|
3
|
+
/**
|
|
4
|
+
* What a claim field is called on the stand-in provider page.
|
|
5
|
+
*
|
|
6
|
+
* The names after it are the provider's own claim names, so they are prefixed
|
|
7
|
+
* to keep them apart from the authorize parameters the form posts beside them.
|
|
8
|
+
*/
|
|
9
|
+
export const simCognitoClaimFieldPrefix = "claim_";
|
|
10
|
+
/**
|
|
11
|
+
* The address a claim the page reads as an email address is pre-filled with.
|
|
12
|
+
*
|
|
13
|
+
* `example.com` is reserved for exactly this, so nothing a person leaves
|
|
14
|
+
* unedited can reach a real mailbox.
|
|
15
|
+
*/
|
|
16
|
+
const defaultAddress = "someone@example.com";
|
|
17
|
+
/**
|
|
18
|
+
* What every other claim is pre-filled with.
|
|
19
|
+
*/
|
|
20
|
+
const defaultClaimValue = "Someone";
|
|
21
|
+
/**
|
|
22
|
+
* The claim names a provider's attribute mapping reads.
|
|
23
|
+
*
|
|
24
|
+
* The mapping is keyed by pool attribute and valued by claim, so the values
|
|
25
|
+
* are what a provider would have asserted and what the page asks for.
|
|
26
|
+
*/
|
|
27
|
+
export function simCognitoMappedClaimNames(provider) {
|
|
28
|
+
return [...new Set(Object.values(provider.attributeMapping.toOutput()))];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* What one claim field is pre-filled with, so that the page signs a user in
|
|
32
|
+
* when nobody edits it.
|
|
33
|
+
*
|
|
34
|
+
* An address has to look like one, because a pool that verifies or aliases by
|
|
35
|
+
* email holds it to that. Everything else is a name as far as this knows.
|
|
36
|
+
*/
|
|
37
|
+
export function simCognitoDefaultClaim(claimName) {
|
|
38
|
+
return claimName.toLowerCase().includes("email")
|
|
39
|
+
? defaultAddress
|
|
40
|
+
: defaultClaimValue;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The subject the page pre-fills, which says on its face where it came from.
|
|
44
|
+
*/
|
|
45
|
+
export function simCognitoDefaultSubject(provider) {
|
|
46
|
+
return `simulated-${provider.name.toLowerCase()}-subject`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The external user an authorize request presented, where it presented one.
|
|
50
|
+
*
|
|
51
|
+
* This is the stand-in page for a provider coming back. Nothing is kept on the
|
|
52
|
+
* provider afterwards, because real Cognito asks the provider afresh on every
|
|
53
|
+
* authorize request, and `signInAs` stays what a test says it with.
|
|
54
|
+
*/
|
|
55
|
+
export function simCognitoPresentedExternalUser(input) {
|
|
56
|
+
const { subject } = input;
|
|
57
|
+
if (subject === undefined || subject === "") {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return new SimCognitoExternalUser({
|
|
61
|
+
Subject: subject,
|
|
62
|
+
Claims: simCognitoPresentedClaims(input),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Who a provider is signing in for one authorize request.
|
|
67
|
+
*
|
|
68
|
+
* A request presenting a subject of its own is the stand-in page for the
|
|
69
|
+
* provider coming back, and it wins, because real Cognito asks the provider
|
|
70
|
+
* afresh every time rather than remembering the last answer. Where it presents
|
|
71
|
+
* none, the user `signInAs` put at the provider signs in. Where there is
|
|
72
|
+
* neither, the request is refused with what a served domain draws that page
|
|
73
|
+
* from.
|
|
74
|
+
*/
|
|
75
|
+
export function requireSimCognitoSigningInAt(provider, input) {
|
|
76
|
+
const presented = simCognitoPresentedExternalUser(input) ?? provider.signedInUser;
|
|
77
|
+
if (presented === undefined) {
|
|
78
|
+
throw new SimCognitoProviderSignInRequired(provider.name);
|
|
79
|
+
}
|
|
80
|
+
return presented;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The claims a posted form carried, by the provider's own claim names.
|
|
84
|
+
*/
|
|
85
|
+
function simCognitoPresentedClaims(input) {
|
|
86
|
+
const claims = {};
|
|
87
|
+
const fields = Object.entries(input);
|
|
88
|
+
for (const [name, value] of fields) {
|
|
89
|
+
if (value !== undefined && name.startsWith(simCognitoClaimFieldPrefix)) {
|
|
90
|
+
claims[name.slice(simCognitoClaimFieldPrefix.length)] = value;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return claims;
|
|
94
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SimCognitoUser } from "../user/sim-cognito-user.js";
|
|
2
|
+
import type { SimCognitoExternalUser } from "./sim-cognito-external-user.js";
|
|
3
|
+
import type { SimCognitoUserPoolIdentityProvider } from "./sim-cognito-user-pool-identity-provider.js";
|
|
4
|
+
/**
|
|
5
|
+
* Refuse a federated sign-in that would take over a user it did not create.
|
|
6
|
+
*
|
|
7
|
+
* A username is only reserved by being taken, and a pool's own user may validly
|
|
8
|
+
* be called `Google_1234`, so the user found by name is the federated one only
|
|
9
|
+
* when its identity says so. Signing in as it otherwise would hand an
|
|
10
|
+
* application a token for someone else's account, which is worth refusing
|
|
11
|
+
* rather than guessing at.
|
|
12
|
+
*/
|
|
13
|
+
export declare function requireSimCognitoSameFederatedIdentity(existing: SimCognitoUser, provider: SimCognitoUserPoolIdentityProvider, externalUser: SimCognitoExternalUser): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SimCognitoUsernameExistsException } from "../../error/sim-cognito.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* Refuse a federated sign-in that would take over a user it did not create.
|
|
4
|
+
*
|
|
5
|
+
* A username is only reserved by being taken, and a pool's own user may validly
|
|
6
|
+
* be called `Google_1234`, so the user found by name is the federated one only
|
|
7
|
+
* when its identity says so. Signing in as it otherwise would hand an
|
|
8
|
+
* application a token for someone else's account, which is worth refusing
|
|
9
|
+
* rather than guessing at.
|
|
10
|
+
*/
|
|
11
|
+
export function requireSimCognitoSameFederatedIdentity(existing, provider, externalUser) {
|
|
12
|
+
const { identity } = existing;
|
|
13
|
+
if (identity?.providerName !== provider.name ||
|
|
14
|
+
identity.userId !== externalUser.subject) {
|
|
15
|
+
throw new SimCognitoUsernameExistsException(`User ${existing.username} already exists in user pool ` +
|
|
16
|
+
`${provider.userPoolId} and is not the ${provider.name} user this ` +
|
|
17
|
+
`sign-in is for.`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -69,6 +69,13 @@ export declare class SimCognitoUserPoolIdentityProvider {
|
|
|
69
69
|
* Sign out of this provider, so a further authorize request finds nobody.
|
|
70
70
|
*/
|
|
71
71
|
signOut(): void;
|
|
72
|
+
/**
|
|
73
|
+
* The user signed in at this provider, where anything has put one there.
|
|
74
|
+
*
|
|
75
|
+
* A request that presents an external user of its own reads this first, to
|
|
76
|
+
* find out whether it has to ask for one.
|
|
77
|
+
*/
|
|
78
|
+
get signedInUser(): SimCognitoExternalUser | undefined;
|
|
72
79
|
/**
|
|
73
80
|
* The user this provider signs in, or a refusal.
|
|
74
81
|
*
|
|
@@ -88,6 +88,15 @@ export class SimCognitoUserPoolIdentityProvider {
|
|
|
88
88
|
signOut() {
|
|
89
89
|
this.externalUser = undefined;
|
|
90
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* The user signed in at this provider, where anything has put one there.
|
|
93
|
+
*
|
|
94
|
+
* A request that presents an external user of its own reads this first, to
|
|
95
|
+
* find out whether it has to ask for one.
|
|
96
|
+
*/
|
|
97
|
+
get signedInUser() {
|
|
98
|
+
return this.externalUser;
|
|
99
|
+
}
|
|
91
100
|
/**
|
|
92
101
|
* The user this provider signs in, or a refusal.
|
|
93
102
|
*
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* These are the ones that fire around a sign-up, around a sign-in, around a
|
|
5
5
|
* message, and over the tokens a sign-in hands out, which is the part of a
|
|
6
|
-
* user's life this simulation has. A
|
|
7
|
-
*
|
|
6
|
+
* user's life this simulation has. A federated sign-in reaches four of them,
|
|
7
|
+
* under the sources real Cognito reports for a user arriving from an identity
|
|
8
|
+
* provider.
|
|
8
9
|
*/
|
|
9
10
|
export declare const simCognitoTriggerNames: readonly ["PreSignUp", "PostConfirmation", "PreAuthentication", "PostAuthentication", "PreTokenGeneration", "CustomMessage"];
|
|
10
11
|
export type SimCognitoTriggerName = (typeof simCognitoTriggerNames)[number];
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* These are the ones that fire around a sign-up, around a sign-in, around a
|
|
5
5
|
* message, and over the tokens a sign-in hands out, which is the part of a
|
|
6
|
-
* user's life this simulation has. A
|
|
7
|
-
*
|
|
6
|
+
* user's life this simulation has. A federated sign-in reaches four of them,
|
|
7
|
+
* under the sources real Cognito reports for a user arriving from an identity
|
|
8
|
+
* provider.
|
|
8
9
|
*/
|
|
9
10
|
export const simCognitoTriggerNames = [
|
|
10
11
|
"PreSignUp",
|
|
@@ -25,6 +25,15 @@ export declare class SimCognitoTriggerOccasion {
|
|
|
25
25
|
* confirmation.
|
|
26
26
|
*/
|
|
27
27
|
static readonly adminCreateUser: SimCognitoTriggerOccasion;
|
|
28
|
+
/**
|
|
29
|
+
* An external subject signing in at an identity provider for the first time.
|
|
30
|
+
*
|
|
31
|
+
* Real Cognito builds the pool's own user for a federated subject through
|
|
32
|
+
* the sign-up path, so the trigger that guards a sign-up guards this too.
|
|
33
|
+
* The attributes it carries are the ones the provider's `AttributeMapping`
|
|
34
|
+
* produced, which is what the handler has to decide on.
|
|
35
|
+
*/
|
|
36
|
+
static readonly externalProviderSignUp: SimCognitoTriggerOccasion;
|
|
28
37
|
/**
|
|
29
38
|
* A signed-up user reaching `CONFIRMED`.
|
|
30
39
|
*
|
|
@@ -53,6 +62,14 @@ export declare class SimCognitoTriggerOccasion {
|
|
|
53
62
|
* The tokens a sign-in hands out.
|
|
54
63
|
*/
|
|
55
64
|
static readonly tokenGeneration: SimCognitoTriggerOccasion;
|
|
65
|
+
/**
|
|
66
|
+
* The tokens a sign-in at an identity provider hands out.
|
|
67
|
+
*
|
|
68
|
+
* Real Cognito reports this source for a federated grant alone. A local
|
|
69
|
+
* user signing in at managed login reports `TokenGeneration_Authentication`,
|
|
70
|
+
* the same source its API sign-in reports.
|
|
71
|
+
*/
|
|
72
|
+
static readonly hostedTokenGeneration: SimCognitoTriggerOccasion;
|
|
56
73
|
/**
|
|
57
74
|
* The tokens handed out where a sign-in finishes by answering the new
|
|
58
75
|
* password challenge.
|
|
@@ -99,7 +116,7 @@ export declare class SimCognitoTriggerOccasion {
|
|
|
99
116
|
/**
|
|
100
117
|
* The `CustomMessage` occasion a message is being sent on.
|
|
101
118
|
*
|
|
102
|
-
* One trigger covers all
|
|
119
|
+
* One trigger covers all five, and the source is the only thing telling a
|
|
103
120
|
* handler which it is firing for, so an application customising one message
|
|
104
121
|
* and not another branches on it.
|
|
105
122
|
*/
|