@kensio/yulin 1.21.3 → 1.21.4
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/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
- package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
- package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
- package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
- package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
- package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
- package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
- package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
- package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
- package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
- package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
- package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
- package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
- package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
- package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
- package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
- package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
- package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
- package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
- package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
- package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
- package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
- package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
- package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
- package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
- package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
- package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
- package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
- package/dist/service/athena/index.d.ts +1 -1
- package/dist/service/athena/index.js +1 -1
- package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
- package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
- package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
- package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
- package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
- package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
- package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
- package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +12 -12
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
- package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
- package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +8 -15
- package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
- package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
- package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
- package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
- package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
- package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
- package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
- package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
- package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
- package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
- package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
- package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
- package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
- package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
- package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
- package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
- package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
- package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
- package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
- package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
- package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
- package/dist/service/cloudformation/sim-cloudformation.js +56 -9
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
- package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +46 -3
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +67 -6
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
- package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
- package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
- package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
- package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
- package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
- package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
- package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
- package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
- package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
- package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
- package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
- 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 +5 -1
- package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
- package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
- package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
- package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
- package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
- package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
- package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
- package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
- package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
- package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
- package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
- package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
- package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
- package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
- package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
- package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
- package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
- package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
- package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
- package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
- package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
- package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
- package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
- package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
- package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
- package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
- package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
- package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
- package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
- package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
- package/dist/service/lambda/function/sim-lambda-function.js +11 -9
- package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
- package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
- package/dist/service/lambda/index.d.ts +1 -0
- package/dist/service/lambda/index.js +1 -0
- package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
- package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
- package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
- package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
- package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
- package/dist/service/lambda/sim-lambda-commands.js +11 -0
- package/dist/service/lambda/sim-lambda.d.ts +12 -0
- package/dist/service/lambda/sim-lambda.js +13 -0
- package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
- package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -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 +5 -0
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
- package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
- package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
- package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
- package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
- package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
- package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
- package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
- package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
- package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
- package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
- package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
- package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
- package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
- package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
- package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
- package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
- package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
- package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
- package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
- package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
- package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
- package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
- 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 +2 -1
- package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
- package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
- package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
- package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
- package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
- package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
- package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
- package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
- package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
- package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
- package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
- package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
- package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
- package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
- package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
- package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
- package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
- package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
- package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
- package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
- package/dist/service/s3/error/sim-s3.error.js +26 -40
- package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
- package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
- package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
- package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
- package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
- package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
- package/dist/service/s3/object/s3-key-encoding.js +14 -0
- package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
- package/dist/service/s3/object/s3-listing-encoding.js +75 -0
- package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
- package/dist/service/s3/object/s3-object-response-headers.js +49 -2
- package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
- package/dist/service/s3/object/s3-object-storage-report.js +18 -0
- package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
- package/dist/service/s3/object/s3-object-summary.js +1 -10
- package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
- package/dist/service/s3/object/s3-object-tags.js +77 -0
- package/dist/service/s3/object/s3-object.d.ts +49 -0
- package/dist/service/s3/object/s3-object.js +52 -1
- package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
- package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
- package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
- package/dist/service/s3/object/s3-storage-class.js +67 -0
- package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
- package/dist/service/s3/object/s3-write-metadata.js +43 -0
- package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
- package/dist/service/s3/object/s3-write-storage.js +21 -0
- package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
- package/dist/service/s3/object/s3-write-tagging.js +19 -0
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
- package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
- package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
- package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
- package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
- package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
- package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
- package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
- package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
- package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
- package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
- package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
- package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
- package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
- package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
- package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
- package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
- package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
- package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
- package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
- package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
- package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
- package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
- package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
- package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
- package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
- package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
- package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
- package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
- package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -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 +11 -4
- package/dist/service/s3/sim-s3-operations.js +17 -4
- package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
- package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
- package/dist/service/s3/sim-s3.d.ts +12 -0
- package/dist/service/s3/sim-s3.js +13 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
- package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
- package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
- package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
- package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
- package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
- package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
- package/dist/util/background/background-clock-waits.d.ts +52 -0
- package/dist/util/background/background-clock-waits.js +76 -0
- package/dist/util/background/background-jitter.js +1 -0
- package/dist/util/background/background-pending-tasks.d.ts +55 -0
- package/dist/util/background/background-pending-tasks.js +117 -0
- package/dist/util/background/background-settled-tasks.d.ts +4 -1
- package/dist/util/background/background-settled-tasks.js +4 -1
- package/dist/util/background/background.d.ts +43 -0
- package/dist/util/background/background.js +27 -19
- package/dist/util/background/non-deterministic-background.d.ts +12 -0
- package/dist/util/background/non-deterministic-background.js +24 -20
- package/dist/util/clock/sim-clock-control.js +23 -2
- package/docs/services/apigateway/README.md +3 -1
- package/docs/services/athena/README.md +126 -3
- package/docs/services/cloudformation/README.md +775 -65
- package/docs/services/cognito/README.md +5 -0
- package/docs/services/dynamodb/README.md +86 -11
- package/docs/services/lambda/README.md +603 -39
- package/docs/services/s3/README.md +688 -57
- package/package.json +7 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { clearTimeout, setTimeout } from "node:timers";
|
|
2
|
+
import { simLambdaTimerDelay } from "./sim-lambda-timer-delay.js";
|
|
3
|
+
/** The longest delay a host timer takes before it fires straight away. */
|
|
4
|
+
const longestHostDelayMilliseconds = 2_147_483_647;
|
|
5
|
+
/**
|
|
6
|
+
* One thing that happens when a simulation's clock reaches an instant.
|
|
7
|
+
*
|
|
8
|
+
* The instant is what decides, and simulated time can arrive at it two ways. A
|
|
9
|
+
* test that moves the clock brings it there at once, which is what the
|
|
10
|
+
* scheduler's own clock-waiting queue is for. A simulation left running keeps
|
|
11
|
+
* time with the host, and nothing dispatches that queue, so the timer also
|
|
12
|
+
* keeps a host timer of its own and asks the clock again when it fires. A
|
|
13
|
+
* clock that has not got there yet is asked again later, which is what makes a
|
|
14
|
+
* frozen clock hold a timer indefinitely without spinning on it.
|
|
15
|
+
*
|
|
16
|
+
* The host timer is unreferenced, so a simulation nobody is driving never
|
|
17
|
+
* holds the process open.
|
|
18
|
+
*/
|
|
19
|
+
export class SimLambdaClockTimer {
|
|
20
|
+
#background;
|
|
21
|
+
#run;
|
|
22
|
+
#task = () => {
|
|
23
|
+
this.#dispatch();
|
|
24
|
+
return Promise.resolve();
|
|
25
|
+
};
|
|
26
|
+
#dueTime;
|
|
27
|
+
#delay = 0;
|
|
28
|
+
#hostTimer;
|
|
29
|
+
constructor(properties) {
|
|
30
|
+
this.#background = properties.background;
|
|
31
|
+
this.#run = properties.run;
|
|
32
|
+
this.#dueTime = properties.background.now();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Wait a delay of simulated time, and answer with how long that turned out
|
|
36
|
+
* to be. A delay of nothing leaves the timer due where the clock already
|
|
37
|
+
* reads, which is not waiting on the clock at all.
|
|
38
|
+
*/
|
|
39
|
+
startIn(delay) {
|
|
40
|
+
this.#delay = simLambdaTimerDelay(delay);
|
|
41
|
+
this.startAt(new Date(this.#background.now().getTime() + this.#delay));
|
|
42
|
+
return this.#delay;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Wait the same delay again, measured from the instant this timer was last
|
|
46
|
+
* due rather than from the time its work ran, so an advance covering several
|
|
47
|
+
* periods runs the work once for each of them.
|
|
48
|
+
*/
|
|
49
|
+
again() {
|
|
50
|
+
this.startAt(new Date(this.#dueTime.getTime() + this.#delay));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Wait for simulated time to reach an instant, giving up whatever this timer
|
|
54
|
+
* was waiting for before.
|
|
55
|
+
*/
|
|
56
|
+
startAt(dueTime) {
|
|
57
|
+
this.cancel();
|
|
58
|
+
this.#dueTime = dueTime;
|
|
59
|
+
this.#background.scheduleAt(dueTime, this.#task);
|
|
60
|
+
this.#armHostTimer();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Give up on this timer, on both timelines.
|
|
64
|
+
*/
|
|
65
|
+
cancel() {
|
|
66
|
+
this.#background.cancelScheduled(this.#task);
|
|
67
|
+
clearTimeout(this.#hostTimer);
|
|
68
|
+
this.#hostTimer = undefined;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Run this timer's work, on whichever timeline got there first.
|
|
72
|
+
*
|
|
73
|
+
* Taking it off both timelines first is what makes it happen once, and what
|
|
74
|
+
* leaves work that starts this timer again beginning from nothing rather
|
|
75
|
+
* than from a turn already queued.
|
|
76
|
+
*/
|
|
77
|
+
#dispatch() {
|
|
78
|
+
this.cancel();
|
|
79
|
+
this.#run();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Ask the clock again when the host gets to the delay this timer has left.
|
|
83
|
+
*/
|
|
84
|
+
#armHostTimer() {
|
|
85
|
+
this.#hostTimer = setTimeout(() => {
|
|
86
|
+
this.#hostTimer = undefined;
|
|
87
|
+
if (this.#dueTime.getTime() <= this.#background.now().getTime()) {
|
|
88
|
+
this.#dispatch();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
this.#armHostTimer();
|
|
92
|
+
}, this.#remainingHostDelay());
|
|
93
|
+
this.#hostTimer.unref();
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* How long the host should wait before asking the clock again, kept inside
|
|
97
|
+
* what a host timer can hold: a longer one fires at once, and a timer that
|
|
98
|
+
* fired at once and found nothing due would spin.
|
|
99
|
+
*/
|
|
100
|
+
#remainingHostDelay() {
|
|
101
|
+
const remaining = this.#dueTime.getTime() - this.#background.now().getTime();
|
|
102
|
+
return Math.min(Math.max(remaining, 0), longestHostDelayMilliseconds);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SimLambdaTimerCallback, SimLambdaTimers } from "./sim-lambda-timer-handle.js";
|
|
2
|
+
/**
|
|
3
|
+
* The timers code outside a sim Lambda invocation gets, which are the host's
|
|
4
|
+
* own.
|
|
5
|
+
*
|
|
6
|
+
* A test run's own timers, a test framework's, and one simulation's while
|
|
7
|
+
* another is running an invocation all come through here, so the substitutes
|
|
8
|
+
* installed over the globals behave exactly as the globals they replaced.
|
|
9
|
+
*/
|
|
10
|
+
declare class SimLambdaHostTimers implements SimLambdaTimers {
|
|
11
|
+
/**
|
|
12
|
+
* Run a callback once a delay of real time has passed.
|
|
13
|
+
*/
|
|
14
|
+
setTimeout(callback: SimLambdaTimerCallback, delay?: number, ...arguments_: unknown[]): NodeJS.Timeout;
|
|
15
|
+
/**
|
|
16
|
+
* Run a callback every time a delay of real time passes.
|
|
17
|
+
*/
|
|
18
|
+
setInterval(callback: SimLambdaTimerCallback, delay?: number, ...arguments_: unknown[]): NodeJS.Timeout;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Shared because it holds nothing: every caller wants the same host timers.
|
|
22
|
+
*/
|
|
23
|
+
export declare const simLambdaHostTimers: SimLambdaHostTimers;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { setInterval as hostSetInterval, setTimeout as hostSetTimeout, } from "node:timers";
|
|
2
|
+
/**
|
|
3
|
+
* The timers code outside a sim Lambda invocation gets, which are the host's
|
|
4
|
+
* own.
|
|
5
|
+
*
|
|
6
|
+
* A test run's own timers, a test framework's, and one simulation's while
|
|
7
|
+
* another is running an invocation all come through here, so the substitutes
|
|
8
|
+
* installed over the globals behave exactly as the globals they replaced.
|
|
9
|
+
*/
|
|
10
|
+
class SimLambdaHostTimers {
|
|
11
|
+
/**
|
|
12
|
+
* Run a callback once a delay of real time has passed.
|
|
13
|
+
*/
|
|
14
|
+
setTimeout(callback, delay, ...arguments_) {
|
|
15
|
+
return hostSetTimeout(callback, delay, ...arguments_);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Run a callback every time a delay of real time passes.
|
|
19
|
+
*/
|
|
20
|
+
setInterval(callback, delay, ...arguments_) {
|
|
21
|
+
return hostSetInterval(callback, delay, ...arguments_);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Shared because it holds nothing: every caller wants the same host timers.
|
|
26
|
+
*/
|
|
27
|
+
export const simLambdaHostTimers = new SimLambdaHostTimers();
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../../../../util/background/background.js";
|
|
2
|
+
import { type SimLambdaTimerCallback, SimLambdaTimerHandle, type SimLambdaTimerOwner, type SimLambdaTimers } from "./sim-lambda-timer-handle.js";
|
|
3
|
+
interface SimLambdaInvocationTimersProperties {
|
|
4
|
+
readonly background: BackgroundScheduler;
|
|
5
|
+
/** Where an error thrown out of a timer callback goes. */
|
|
6
|
+
readonly failed: (error: unknown) => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The timers one sim Lambda invocation has asked for.
|
|
10
|
+
*
|
|
11
|
+
* A handler's `setTimeout` measures its delay on the simulation's clock, so a
|
|
12
|
+
* test advancing time by the delay is what releases a sleeping handler, and a
|
|
13
|
+
* frozen clock leaves it asleep for as long as the test likes. The timers
|
|
14
|
+
* belong to the invocation rather than to the process: two simulations running
|
|
15
|
+
* at once each keep their own, and each one's are given up when its invocation
|
|
16
|
+
* ends, the way a real execution environment is frozen once it has answered.
|
|
17
|
+
*
|
|
18
|
+
* While any of them is outstanding the invocation is waiting on the clock, so
|
|
19
|
+
* whatever is waiting for the simulation to settle stops waiting for it.
|
|
20
|
+
* Nothing but the clock is going to release it, and moving the clock is what
|
|
21
|
+
* that wait is holding up.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SimLambdaInvocationTimers implements SimLambdaTimers, SimLambdaTimerOwner {
|
|
24
|
+
#private;
|
|
25
|
+
constructor(properties: SimLambdaInvocationTimersProperties);
|
|
26
|
+
/**
|
|
27
|
+
* Run a callback once simulated time has moved on by a delay.
|
|
28
|
+
*/
|
|
29
|
+
setTimeout(callback: SimLambdaTimerCallback, delay?: number, ...arguments_: unknown[]): SimLambdaTimerHandle;
|
|
30
|
+
/**
|
|
31
|
+
* Run a callback every time simulated time moves on by a delay.
|
|
32
|
+
*/
|
|
33
|
+
setInterval(callback: SimLambdaTimerCallback, delay?: number, ...arguments_: unknown[]): SimLambdaTimerHandle;
|
|
34
|
+
/**
|
|
35
|
+
* Give up one timer, as `clearTimeout` and `clearInterval` do.
|
|
36
|
+
*/
|
|
37
|
+
clear(handle: SimLambdaTimerHandle): void;
|
|
38
|
+
/**
|
|
39
|
+
* Give up every timer this invocation still has outstanding.
|
|
40
|
+
*/
|
|
41
|
+
cancelAll(): void;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { SimLambdaClockTimer } from "./sim-lambda-clock-timer.js";
|
|
2
|
+
import { SimLambdaTimerHandle, } from "./sim-lambda-timer-handle.js";
|
|
3
|
+
/**
|
|
4
|
+
* The timers one sim Lambda invocation has asked for.
|
|
5
|
+
*
|
|
6
|
+
* A handler's `setTimeout` measures its delay on the simulation's clock, so a
|
|
7
|
+
* test advancing time by the delay is what releases a sleeping handler, and a
|
|
8
|
+
* frozen clock leaves it asleep for as long as the test likes. The timers
|
|
9
|
+
* belong to the invocation rather than to the process: two simulations running
|
|
10
|
+
* at once each keep their own, and each one's are given up when its invocation
|
|
11
|
+
* ends, the way a real execution environment is frozen once it has answered.
|
|
12
|
+
*
|
|
13
|
+
* While any of them is outstanding the invocation is waiting on the clock, so
|
|
14
|
+
* whatever is waiting for the simulation to settle stops waiting for it.
|
|
15
|
+
* Nothing but the clock is going to release it, and moving the clock is what
|
|
16
|
+
* that wait is holding up.
|
|
17
|
+
*/
|
|
18
|
+
export class SimLambdaInvocationTimers {
|
|
19
|
+
#background;
|
|
20
|
+
#failed;
|
|
21
|
+
#running = new Map();
|
|
22
|
+
#released;
|
|
23
|
+
constructor(properties) {
|
|
24
|
+
this.#background = properties.background;
|
|
25
|
+
this.#failed = properties.failed;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Run a callback once simulated time has moved on by a delay.
|
|
29
|
+
*/
|
|
30
|
+
setTimeout(callback, delay, ...arguments_) {
|
|
31
|
+
return this.#start(delay, (handle) => {
|
|
32
|
+
this.#forget(handle);
|
|
33
|
+
this.#call(callback, arguments_);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Run a callback every time simulated time moves on by a delay.
|
|
38
|
+
*/
|
|
39
|
+
setInterval(callback, delay, ...arguments_) {
|
|
40
|
+
return this.#start(delay, (_handle, timer) => {
|
|
41
|
+
timer.again();
|
|
42
|
+
this.#call(callback, arguments_);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Give up one timer, as `clearTimeout` and `clearInterval` do.
|
|
47
|
+
*/
|
|
48
|
+
clear(handle) {
|
|
49
|
+
this.#running.get(handle)?.cancel();
|
|
50
|
+
this.#forget(handle);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Give up every timer this invocation still has outstanding.
|
|
54
|
+
*/
|
|
55
|
+
cancelAll() {
|
|
56
|
+
for (const timer of this.#running.values()) {
|
|
57
|
+
timer.cancel();
|
|
58
|
+
}
|
|
59
|
+
this.#running.clear();
|
|
60
|
+
this.#stopWaitingOnClock();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Put one timer on the clock, and keep it while it is outstanding.
|
|
64
|
+
*
|
|
65
|
+
* The work a timer does needs the timer itself, to start the next turn of an
|
|
66
|
+
* interval, and the timer needs the work to be built with, so the work is
|
|
67
|
+
* given both once both exist.
|
|
68
|
+
*/
|
|
69
|
+
#start(delay, work) {
|
|
70
|
+
const handle = new SimLambdaTimerHandle(this);
|
|
71
|
+
const timer = new SimLambdaClockTimer({
|
|
72
|
+
background: this.#background,
|
|
73
|
+
run: () => {
|
|
74
|
+
work(handle, timer);
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
this.#running.set(handle, timer);
|
|
78
|
+
// A timer with nothing to wait for is not waiting on the clock: it is due
|
|
79
|
+
// at the instant the clock already reads, and the next turn of the host
|
|
80
|
+
// event loop runs it.
|
|
81
|
+
if (timer.startIn(delay) > 0) {
|
|
82
|
+
this.#released ??= this.#background.waitingOnClock();
|
|
83
|
+
}
|
|
84
|
+
return handle;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Run one timer's callback, failing the invocation where it throws.
|
|
88
|
+
*
|
|
89
|
+
* An uncaught exception out of a timer callback ends a real invocation, and
|
|
90
|
+
* this one has a whole simulation around it: left to escape, the error would
|
|
91
|
+
* come out of whatever moved the clock instead, which is nothing to do with
|
|
92
|
+
* the handler that scheduled it.
|
|
93
|
+
*/
|
|
94
|
+
#call(callback, arguments_) {
|
|
95
|
+
try {
|
|
96
|
+
callback(...arguments_);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
this.#failed(error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
#forget(handle) {
|
|
103
|
+
this.#running.delete(handle);
|
|
104
|
+
if (this.#running.size === 0) {
|
|
105
|
+
this.#stopWaitingOnClock();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
#stopWaitingOnClock() {
|
|
109
|
+
this.#released?.();
|
|
110
|
+
this.#released = undefined;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { SimLambdaInvocationTimers } from "./sim-lambda-invocation-timers.js";
|
|
2
|
+
import type { SimLambdaTimerCallback, SimLambdaTimerHandle, SimLambdaTimers } from "./sim-lambda-timer-handle.js";
|
|
3
|
+
/**
|
|
4
|
+
* The timer functions the code running now should be using.
|
|
5
|
+
*
|
|
6
|
+
* A handler function reference is a closure over its own module scope, so it
|
|
7
|
+
* reaches for the same global `setTimeout` as every other line in the test
|
|
8
|
+
* run. Zip code has a sandbox of its own and is given these directly. Both
|
|
9
|
+
* paths end up here, and both find the invocation that is running now through
|
|
10
|
+
* Node.js asynchronous context tracking, exactly as the substitute Date does.
|
|
11
|
+
*
|
|
12
|
+
* Outside an invocation there is nothing to find, and the host's own timers
|
|
13
|
+
* answer instead. That is what keeps the substitutes inert for a test run's
|
|
14
|
+
* own timers, for a test framework's, and for one simulation while another is
|
|
15
|
+
* running an invocation.
|
|
16
|
+
*/
|
|
17
|
+
declare class SimLambdaProcessTimers {
|
|
18
|
+
private readonly storage;
|
|
19
|
+
private installed;
|
|
20
|
+
/**
|
|
21
|
+
* Run an invocation with timers of its own.
|
|
22
|
+
*/
|
|
23
|
+
run<T>(timers: SimLambdaInvocationTimers, run: () => Promise<T>): Promise<T>;
|
|
24
|
+
/**
|
|
25
|
+
* The timers the code running now should use.
|
|
26
|
+
*/
|
|
27
|
+
current(): SimLambdaTimers;
|
|
28
|
+
/**
|
|
29
|
+
* Replace the global timer functions with ones that follow the store.
|
|
30
|
+
*
|
|
31
|
+
* Installed on the first invocation of host-scope code rather than at
|
|
32
|
+
* import, so a test run that never invokes one is left completely alone.
|
|
33
|
+
* Sandboxed code needs none of this: its own globals are built for it, and
|
|
34
|
+
* they are given the same substitutes directly.
|
|
35
|
+
*
|
|
36
|
+
* With no invocation running the substitutes call the host functions and
|
|
37
|
+
* answer with what they answer, so an installed patch behaves exactly like
|
|
38
|
+
* no patch at all. They are never removed, because removing one would be
|
|
39
|
+
* unsafe while another invocation is in flight and there is nothing to gain.
|
|
40
|
+
*/
|
|
41
|
+
install(): void;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Shared because it patches process globals: one patch, one store.
|
|
45
|
+
*/
|
|
46
|
+
export declare const simLambdaProcessTimers: SimLambdaProcessTimers;
|
|
47
|
+
/**
|
|
48
|
+
* Run a callback once a delay has passed, on the clock of the invocation
|
|
49
|
+
* running now.
|
|
50
|
+
*/
|
|
51
|
+
export declare function simLambdaSetTimeout(callback: SimLambdaTimerCallback, delay?: number, ...arguments_: unknown[]): SimLambdaTimerHandle | NodeJS.Timeout;
|
|
52
|
+
/**
|
|
53
|
+
* Run a callback every time a delay passes, on the clock of the invocation
|
|
54
|
+
* running now.
|
|
55
|
+
*/
|
|
56
|
+
export declare function simLambdaSetInterval(callback: SimLambdaTimerCallback, delay?: number, ...arguments_: unknown[]): SimLambdaTimerHandle | NodeJS.Timeout;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
import { simLambdaClearInterval, simLambdaClearTimeout, } from "./sim-lambda-clear-timer.js";
|
|
3
|
+
import { simLambdaHostTimers } from "./sim-lambda-host-timers.js";
|
|
4
|
+
import { defineSimLambdaTimer } from "./sim-lambda-timer-global.js";
|
|
5
|
+
/**
|
|
6
|
+
* The timer functions the code running now should be using.
|
|
7
|
+
*
|
|
8
|
+
* A handler function reference is a closure over its own module scope, so it
|
|
9
|
+
* reaches for the same global `setTimeout` as every other line in the test
|
|
10
|
+
* run. Zip code has a sandbox of its own and is given these directly. Both
|
|
11
|
+
* paths end up here, and both find the invocation that is running now through
|
|
12
|
+
* Node.js asynchronous context tracking, exactly as the substitute Date does.
|
|
13
|
+
*
|
|
14
|
+
* Outside an invocation there is nothing to find, and the host's own timers
|
|
15
|
+
* answer instead. That is what keeps the substitutes inert for a test run's
|
|
16
|
+
* own timers, for a test framework's, and for one simulation while another is
|
|
17
|
+
* running an invocation.
|
|
18
|
+
*/
|
|
19
|
+
class SimLambdaProcessTimers {
|
|
20
|
+
storage = new AsyncLocalStorage();
|
|
21
|
+
installed = false;
|
|
22
|
+
/**
|
|
23
|
+
* Run an invocation with timers of its own.
|
|
24
|
+
*/
|
|
25
|
+
async run(timers, run) {
|
|
26
|
+
return await this.storage.run(timers, run);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The timers the code running now should use.
|
|
30
|
+
*/
|
|
31
|
+
current() {
|
|
32
|
+
return this.storage.getStore() ?? simLambdaHostTimers;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Replace the global timer functions with ones that follow the store.
|
|
36
|
+
*
|
|
37
|
+
* Installed on the first invocation of host-scope code rather than at
|
|
38
|
+
* import, so a test run that never invokes one is left completely alone.
|
|
39
|
+
* Sandboxed code needs none of this: its own globals are built for it, and
|
|
40
|
+
* they are given the same substitutes directly.
|
|
41
|
+
*
|
|
42
|
+
* With no invocation running the substitutes call the host functions and
|
|
43
|
+
* answer with what they answer, so an installed patch behaves exactly like
|
|
44
|
+
* no patch at all. They are never removed, because removing one would be
|
|
45
|
+
* unsafe while another invocation is in flight and there is nothing to gain.
|
|
46
|
+
*/
|
|
47
|
+
install() {
|
|
48
|
+
if (this.installed) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.installed = true;
|
|
52
|
+
defineSimLambdaTimer("setTimeout", simLambdaSetTimeout);
|
|
53
|
+
defineSimLambdaTimer("clearTimeout", simLambdaClearTimeout);
|
|
54
|
+
defineSimLambdaTimer("setInterval", simLambdaSetInterval);
|
|
55
|
+
defineSimLambdaTimer("clearInterval", simLambdaClearInterval);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Shared because it patches process globals: one patch, one store.
|
|
60
|
+
*/
|
|
61
|
+
export const simLambdaProcessTimers = new SimLambdaProcessTimers();
|
|
62
|
+
/**
|
|
63
|
+
* Run a callback once a delay has passed, on the clock of the invocation
|
|
64
|
+
* running now.
|
|
65
|
+
*/
|
|
66
|
+
export function simLambdaSetTimeout(callback, delay, ...arguments_) {
|
|
67
|
+
return simLambdaProcessTimers
|
|
68
|
+
.current()
|
|
69
|
+
.setTimeout(callback, delay, ...arguments_);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Run a callback every time a delay passes, on the clock of the invocation
|
|
73
|
+
* running now.
|
|
74
|
+
*/
|
|
75
|
+
export function simLambdaSetInterval(callback, delay, ...arguments_) {
|
|
76
|
+
return simLambdaProcessTimers
|
|
77
|
+
.current()
|
|
78
|
+
.setInterval(callback, delay, ...arguments_);
|
|
79
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The delay a timer waits, in whole milliseconds of simulated time.
|
|
3
|
+
*
|
|
4
|
+
* A delay that is missing, negative or not a number is no delay at all, which
|
|
5
|
+
* leaves the timer due at the instant it was asked for. Node.js rounds those
|
|
6
|
+
* up to a millisecond of host time; simulated time has nothing to round up to,
|
|
7
|
+
* and a handler yielding with `setTimeout(resolve, 0)` should not need a test
|
|
8
|
+
* to move the clock before it gets going again.
|
|
9
|
+
*/
|
|
10
|
+
export declare function simLambdaTimerDelay(delay: number | undefined): number;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The delay a timer waits, in whole milliseconds of simulated time.
|
|
3
|
+
*
|
|
4
|
+
* A delay that is missing, negative or not a number is no delay at all, which
|
|
5
|
+
* leaves the timer due at the instant it was asked for. Node.js rounds those
|
|
6
|
+
* up to a millisecond of host time; simulated time has nothing to round up to,
|
|
7
|
+
* and a handler yielding with `setTimeout(resolve, 0)` should not need a test
|
|
8
|
+
* to move the clock before it gets going again.
|
|
9
|
+
*/
|
|
10
|
+
export function simLambdaTimerDelay(delay) {
|
|
11
|
+
if (delay === undefined || !Number.isFinite(delay)) {
|
|
12
|
+
return 0;
|
|
13
|
+
}
|
|
14
|
+
return Math.max(Math.trunc(delay), 0);
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Put a substitute in a global timer function's place, keeping everything else
|
|
3
|
+
* about it.
|
|
4
|
+
*
|
|
5
|
+
* The property stays the configurable, writable, non-enumerable global it
|
|
6
|
+
* already was, so anything else replacing it later finds what it expects. The
|
|
7
|
+
* host function's own symbols come across too: `setTimeout` carries the one
|
|
8
|
+
* that makes `util.promisify` answer with the promise form, and code reaching
|
|
9
|
+
* for that would otherwise get a promise of the handle instead.
|
|
10
|
+
*/
|
|
11
|
+
export declare function defineSimLambdaTimer(name: string, substitute: object): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Put a substitute in a global timer function's place, keeping everything else
|
|
3
|
+
* about it.
|
|
4
|
+
*
|
|
5
|
+
* The property stays the configurable, writable, non-enumerable global it
|
|
6
|
+
* already was, so anything else replacing it later finds what it expects. The
|
|
7
|
+
* host function's own symbols come across too: `setTimeout` carries the one
|
|
8
|
+
* that makes `util.promisify` answer with the promise form, and code reaching
|
|
9
|
+
* for that would otherwise get a promise of the handle instead.
|
|
10
|
+
*/
|
|
11
|
+
export function defineSimLambdaTimer(name, substitute) {
|
|
12
|
+
const host = Reflect.get(globalThis, name);
|
|
13
|
+
for (const symbol of Object.getOwnPropertySymbols(host)) {
|
|
14
|
+
Object.defineProperty(substitute, symbol, {
|
|
15
|
+
configurable: true,
|
|
16
|
+
value: Reflect.get(host, symbol),
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(globalThis, name, {
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: substitute,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a handler passes to `setTimeout` or `setInterval` to be run later.
|
|
3
|
+
*/
|
|
4
|
+
export type SimLambdaTimerCallback = (...arguments_: unknown[]) => void;
|
|
5
|
+
/**
|
|
6
|
+
* Timer functions of the shape the Node.js runtime gives handler code.
|
|
7
|
+
*/
|
|
8
|
+
export interface SimLambdaTimers {
|
|
9
|
+
setTimeout(callback: SimLambdaTimerCallback, delay?: number, ...arguments_: unknown[]): SimLambdaTimerHandle | NodeJS.Timeout;
|
|
10
|
+
setInterval(callback: SimLambdaTimerCallback, delay?: number, ...arguments_: unknown[]): SimLambdaTimerHandle | NodeJS.Timeout;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Where a timer goes to be given up, which is the set it was made in.
|
|
14
|
+
*/
|
|
15
|
+
export interface SimLambdaTimerOwner {
|
|
16
|
+
clear(handle: SimLambdaTimerHandle): void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The handle a handler gets back from `setTimeout` or `setInterval`.
|
|
20
|
+
*
|
|
21
|
+
* Real timer functions answer with an object rather than a number, and the
|
|
22
|
+
* only thing handler code usually does with it is hand it back to
|
|
23
|
+
* `clearTimeout`. It carries the set it belongs to, so clearing it reaches
|
|
24
|
+
* that set rather than whichever invocation happens to be running.
|
|
25
|
+
*
|
|
26
|
+
* Referencing is answered because a handler is free to ask. A simulated timer
|
|
27
|
+
* is unreferenced already: it waits on a clock a test moves, and holds nothing
|
|
28
|
+
* open whatever it is asked.
|
|
29
|
+
*/
|
|
30
|
+
export declare class SimLambdaTimerHandle {
|
|
31
|
+
#private;
|
|
32
|
+
constructor(owner: SimLambdaTimerOwner);
|
|
33
|
+
/**
|
|
34
|
+
* Give up this timer, as `clearTimeout` and `clearInterval` do.
|
|
35
|
+
*/
|
|
36
|
+
cancel(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Keep the simulation open for this timer, which it already is.
|
|
39
|
+
*/
|
|
40
|
+
ref(): this;
|
|
41
|
+
/**
|
|
42
|
+
* Stop keeping the simulation open for this timer, which it never was.
|
|
43
|
+
*/
|
|
44
|
+
unref(): this;
|
|
45
|
+
/**
|
|
46
|
+
* Whether this timer holds the process open, which a simulated one never
|
|
47
|
+
* does.
|
|
48
|
+
*/
|
|
49
|
+
hasRef(): boolean;
|
|
50
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The handle a handler gets back from `setTimeout` or `setInterval`.
|
|
3
|
+
*
|
|
4
|
+
* Real timer functions answer with an object rather than a number, and the
|
|
5
|
+
* only thing handler code usually does with it is hand it back to
|
|
6
|
+
* `clearTimeout`. It carries the set it belongs to, so clearing it reaches
|
|
7
|
+
* that set rather than whichever invocation happens to be running.
|
|
8
|
+
*
|
|
9
|
+
* Referencing is answered because a handler is free to ask. A simulated timer
|
|
10
|
+
* is unreferenced already: it waits on a clock a test moves, and holds nothing
|
|
11
|
+
* open whatever it is asked.
|
|
12
|
+
*/
|
|
13
|
+
export class SimLambdaTimerHandle {
|
|
14
|
+
#owner;
|
|
15
|
+
constructor(owner) {
|
|
16
|
+
this.#owner = owner;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Give up this timer, as `clearTimeout` and `clearInterval` do.
|
|
20
|
+
*/
|
|
21
|
+
cancel() {
|
|
22
|
+
this.#owner.clear(this);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Keep the simulation open for this timer, which it already is.
|
|
26
|
+
*/
|
|
27
|
+
ref() {
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Stop keeping the simulation open for this timer, which it never was.
|
|
32
|
+
*/
|
|
33
|
+
unref() {
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Whether this timer holds the process open, which a simulated one never
|
|
38
|
+
* does.
|
|
39
|
+
*/
|
|
40
|
+
hasRef() {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SimClock } from "../../../../util/clock/sim-clock.js";
|
|
2
2
|
import type { SimLogsServiceWriter } from "../../../logs/write/sim-logs-service-writer.js";
|
|
3
3
|
import type { SimLambdaOutputSink } from "./sim-lambda-output-sink.js";
|
|
4
|
+
import { SimLambdaOutput } from "./sim-lambda-output.js";
|
|
4
5
|
import type { SimLambdaExecutableCode } from "../code/sim-lambda-executable-code.js";
|
|
5
6
|
interface SimLambdaFunctionLoggingProperties {
|
|
6
7
|
readonly functionName: string;
|
|
@@ -10,6 +11,12 @@ interface SimLambdaFunctionLoggingProperties {
|
|
|
10
11
|
* instance, has no simulated CloudWatch Logs to record to.
|
|
11
12
|
*/
|
|
12
13
|
readonly logs?: SimLogsServiceWriter | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Where this function's output goes besides its log group. Shared with every
|
|
16
|
+
* other function of the same simulated Lambda, and read as each line is
|
|
17
|
+
* written.
|
|
18
|
+
*/
|
|
19
|
+
readonly output?: SimLambdaOutput | undefined;
|
|
13
20
|
}
|
|
14
21
|
/**
|
|
15
22
|
* One function's side of writing its output to a log group.
|
|
@@ -28,6 +35,8 @@ interface SimLambdaFunctionLoggingProperties {
|
|
|
28
35
|
export declare class SimLambdaFunctionLogging {
|
|
29
36
|
#private;
|
|
30
37
|
readonly logGroupName: string;
|
|
38
|
+
/** Where this function's output goes besides its log group. */
|
|
39
|
+
readonly output: SimLambdaOutput;
|
|
31
40
|
constructor(properties: SimLambdaFunctionLoggingProperties);
|
|
32
41
|
/**
|
|
33
42
|
* The stream this function's execution environment writes to, opening it if
|
|
@@ -53,6 +62,14 @@ export declare class SimLambdaFunctionLogging {
|
|
|
53
62
|
* console and standard streams tee into.
|
|
54
63
|
*/
|
|
55
64
|
outputSink(): SimLambdaOutputSink | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Both halves of where a host-scope invocation's output goes, ready to
|
|
67
|
+
* bridge to the process globals it prints through.
|
|
68
|
+
*/
|
|
69
|
+
outputScope(): {
|
|
70
|
+
readonly output: SimLambdaOutputSink | undefined;
|
|
71
|
+
readonly outputSettings: SimLambdaOutput;
|
|
72
|
+
};
|
|
56
73
|
/**
|
|
57
74
|
* Run an invocation, recording whatever it left unterminated once it is
|
|
58
75
|
* over, and the error it ended in when it ended in one.
|