@kensio/yulin 1.21.2 → 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/factory/sim-cfn-resource-factory.type.d.ts +9 -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 +19 -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/resource/update/sim-cfn-resource-update-validator.d.ts +26 -0
- package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.js +55 -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 +51 -3
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +84 -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 +16 -1
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +27 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +7 -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/cfn/sim-cfn-dynamodb-resource-factory.d.ts +5 -0
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.d.ts +24 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.js +38 -0
- 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/dynamodb/table/sim-dynamodb-index-update.js +1 -2
- 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 +8 -2
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { SimLambdaClockTimer } from "./timer/sim-lambda-clock-timer.js";
|
|
2
|
+
import { SimLambdaInvocationTimers } from "./timer/sim-lambda-invocation-timers.js";
|
|
3
|
+
import { simLambdaProcessTimers } from "./timer/sim-lambda-process-timers.js";
|
|
4
|
+
import { simLambdaTimedOutError } from "./sim-lambda-timed-out.error.js";
|
|
5
|
+
const millisecondsPerSecond = 1000;
|
|
6
|
+
/**
|
|
7
|
+
* The time one invocation has to finish in, and the timers it gets while it
|
|
8
|
+
* runs.
|
|
9
|
+
*
|
|
10
|
+
* Both wait on the simulation's clock. Whichever arrives first decides: a
|
|
11
|
+
* handler that answers in time is answered with, and a deadline that arrives
|
|
12
|
+
* first ends the invocation in the timeout error real Lambda reports. Nothing
|
|
13
|
+
* waits for a handler that has been timed out, and what it goes on to do
|
|
14
|
+
* reaches nobody, which is the closest an in-process simulation gets to an
|
|
15
|
+
* execution environment being taken away.
|
|
16
|
+
*/
|
|
17
|
+
export class SimLambdaInvocationDeadline {
|
|
18
|
+
#properties;
|
|
19
|
+
constructor(properties) {
|
|
20
|
+
this.#properties = properties;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Run the handler with timers of its own, up to this deadline.
|
|
24
|
+
*/
|
|
25
|
+
async around(handler) {
|
|
26
|
+
const { background, awsRequestId, timeoutSeconds } = this.#properties;
|
|
27
|
+
const stopped = Promise.withResolvers();
|
|
28
|
+
// Read whether or not the race gets that far, so an invocation the handler
|
|
29
|
+
// wins never leaves this rejection unhandled.
|
|
30
|
+
// oxlint-disable-next-line unicorn-js/prefer-await -- nothing awaits it.
|
|
31
|
+
stopped.promise.catch(() => {
|
|
32
|
+
//
|
|
33
|
+
});
|
|
34
|
+
// Everything this invocation has on the clock stops the instant it is
|
|
35
|
+
// over, and the instant is what matters. Whatever ended it is inside a
|
|
36
|
+
// clock advance already walking towards the next thing due, and a timer
|
|
37
|
+
// given up a few turns of the microtask queue later has had time to run
|
|
38
|
+
// first. So an invocation ends its timers as it ends, rather than as the
|
|
39
|
+
// answer works its way out through everything wrapped around it.
|
|
40
|
+
const ending = () => {
|
|
41
|
+
timers.cancelAll();
|
|
42
|
+
deadline.cancel();
|
|
43
|
+
};
|
|
44
|
+
const failing = (error) => {
|
|
45
|
+
ending();
|
|
46
|
+
stopped.reject(error);
|
|
47
|
+
};
|
|
48
|
+
const timers = new SimLambdaInvocationTimers({
|
|
49
|
+
background,
|
|
50
|
+
failed: failing,
|
|
51
|
+
});
|
|
52
|
+
const deadline = new SimLambdaClockTimer({
|
|
53
|
+
background,
|
|
54
|
+
run: () => {
|
|
55
|
+
failing(simLambdaTimedOutError({
|
|
56
|
+
at: background.now(),
|
|
57
|
+
awsRequestId,
|
|
58
|
+
timeoutSeconds,
|
|
59
|
+
}));
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
deadline.startAt(new Date(background.now().getTime() + timeoutSeconds * millisecondsPerSecond));
|
|
63
|
+
try {
|
|
64
|
+
return await background.outstanding(async () => await racing(timers, stopped, handler, ending));
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
ending();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Answer with whichever comes first, the handler or the end of its time.
|
|
73
|
+
*/
|
|
74
|
+
async function racing(timers, stopped, handler, ending) {
|
|
75
|
+
return await simLambdaProcessTimers.run(timers, async () => {
|
|
76
|
+
const answer = handler();
|
|
77
|
+
// Ended as the handler settles rather than as the invocation finishes
|
|
78
|
+
// unwinding, and read either way, so a handler that fails after being
|
|
79
|
+
// timed out has nobody left to be unhandled at.
|
|
80
|
+
// oxlint-disable-next-line unicorn-js/prefer-await -- not waited for.
|
|
81
|
+
answer.then(ending, ending);
|
|
82
|
+
return await Promise.race([answer, stopped.promise]);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../../../util/background/background.js";
|
|
2
|
+
import type { SimClock } from "../../../../util/clock/sim-clock.js";
|
|
3
|
+
import type { SimLambdaHandler } from "../sim-lambda-handler.type.js";
|
|
4
|
+
interface SimLambdaInvocationProperties {
|
|
5
|
+
readonly functionName: string;
|
|
6
|
+
/** The version the invocation is running, which is `$LATEST` or a number. */
|
|
7
|
+
readonly functionVersion: string;
|
|
8
|
+
readonly invokedFunctionArn: string;
|
|
9
|
+
readonly timeoutSeconds: number;
|
|
10
|
+
readonly memorySizeMb: number;
|
|
11
|
+
readonly logGroupName: string;
|
|
12
|
+
/** The stream this invocation's execution environment writes to. */
|
|
13
|
+
readonly logStreamName: string;
|
|
14
|
+
/** The clock the remaining time is measured against. */
|
|
15
|
+
readonly clock: SimClock;
|
|
16
|
+
/**
|
|
17
|
+
* The scheduler this invocation's timers and deadline wait on. A function
|
|
18
|
+
* built standalone, outside a SimAws instance, has none, and its handler
|
|
19
|
+
* keeps the host timers every other line in the process uses.
|
|
20
|
+
*/
|
|
21
|
+
readonly background: BackgroundScheduler | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* One run of a sim Lambda function's handler.
|
|
25
|
+
*
|
|
26
|
+
* It holds what the handler's own context reports, including the request id
|
|
27
|
+
* the invocation is known by, and it runs the handler inside the time it has
|
|
28
|
+
* to finish in. A function built standalone, outside a SimAws instance, has no
|
|
29
|
+
* scheduler for that deadline to wait on, and its handler runs for as long as
|
|
30
|
+
* it likes on the host timers every other line in the process uses.
|
|
31
|
+
*/
|
|
32
|
+
export declare class SimLambdaInvocation {
|
|
33
|
+
#private;
|
|
34
|
+
constructor(properties: SimLambdaInvocationProperties);
|
|
35
|
+
/**
|
|
36
|
+
* Run a handler function for one invocation event, up to this invocation's
|
|
37
|
+
* deadline.
|
|
38
|
+
*
|
|
39
|
+
* Resolves with the handler result, or rejects with the handler error or
|
|
40
|
+
* the timeout.
|
|
41
|
+
*/
|
|
42
|
+
run(handlerFunction: SimLambdaHandler, event: unknown): Promise<unknown>;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { SimLambdaHandlerRunner } from "./sim-lambda-handler-runner.js";
|
|
3
|
+
import { SimLambdaInvokeContextBuilder } from "./sim-lambda-invoke-context-builder.js";
|
|
4
|
+
import { SimLambdaInvocationDeadline } from "./sim-lambda-invocation-deadline.js";
|
|
5
|
+
/**
|
|
6
|
+
* One run of a sim Lambda function's handler.
|
|
7
|
+
*
|
|
8
|
+
* It holds what the handler's own context reports, including the request id
|
|
9
|
+
* the invocation is known by, and it runs the handler inside the time it has
|
|
10
|
+
* to finish in. A function built standalone, outside a SimAws instance, has no
|
|
11
|
+
* scheduler for that deadline to wait on, and its handler runs for as long as
|
|
12
|
+
* it likes on the host timers every other line in the process uses.
|
|
13
|
+
*/
|
|
14
|
+
export class SimLambdaInvocation {
|
|
15
|
+
#properties;
|
|
16
|
+
#runner = new SimLambdaHandlerRunner();
|
|
17
|
+
#awsRequestId = randomUUID();
|
|
18
|
+
constructor(properties) {
|
|
19
|
+
this.#properties = properties;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Run a handler function for one invocation event, up to this invocation's
|
|
23
|
+
* deadline.
|
|
24
|
+
*
|
|
25
|
+
* Resolves with the handler result, or rejects with the handler error or
|
|
26
|
+
* the timeout.
|
|
27
|
+
*/
|
|
28
|
+
async run(handlerFunction, event) {
|
|
29
|
+
const contextBuilder = new SimLambdaInvokeContextBuilder({
|
|
30
|
+
...this.#properties,
|
|
31
|
+
awsRequestId: this.#awsRequestId,
|
|
32
|
+
});
|
|
33
|
+
const handler = async () => await this.#runner.run(handlerFunction, event, contextBuilder);
|
|
34
|
+
const { background, timeoutSeconds } = this.#properties;
|
|
35
|
+
if (background === undefined) {
|
|
36
|
+
return await handler();
|
|
37
|
+
}
|
|
38
|
+
return await new SimLambdaInvocationDeadline({
|
|
39
|
+
background,
|
|
40
|
+
timeoutSeconds,
|
|
41
|
+
awsRequestId: this.#awsRequestId,
|
|
42
|
+
}).around(handler);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -16,6 +16,12 @@ interface SimLambdaInvokeContextBuilderProperties {
|
|
|
16
16
|
* handler with a constant budget, rather than one that drains in real time.
|
|
17
17
|
*/
|
|
18
18
|
readonly clock?: SimClock | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* The request id this invocation is known by. It comes from outside because
|
|
21
|
+
* the invocation names itself in the error it reports when it runs out of
|
|
22
|
+
* time, and a handler reading `awsRequestId` has to see the same one.
|
|
23
|
+
*/
|
|
24
|
+
readonly awsRequestId?: string | undefined;
|
|
19
25
|
}
|
|
20
26
|
/**
|
|
21
27
|
* Builds the AWS-like invocation context passed to a sim Lambda handler.
|
|
@@ -15,9 +15,8 @@ export class SimLambdaInvokeContextBuilder {
|
|
|
15
15
|
* Build the context for one invocation.
|
|
16
16
|
*/
|
|
17
17
|
build(callback) {
|
|
18
|
-
const { functionName, functionVersion, invokedFunctionArn, timeoutSeconds, memorySizeMb, logGroupName, logStreamName, clock = new SimRealClock(), } = this.properties;
|
|
18
|
+
const { functionName, functionVersion, invokedFunctionArn, timeoutSeconds, memorySizeMb, logGroupName, logStreamName, clock = new SimRealClock(), awsRequestId = randomUUID(), } = this.properties;
|
|
19
19
|
const startedAtMs = clock.now().getTime();
|
|
20
|
-
const awsRequestId = randomUUID();
|
|
21
20
|
return {
|
|
22
21
|
callbackWaitsForEmptyEventLoop: true,
|
|
23
22
|
functionName,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SimLambdaOutput } from "../logging/sim-lambda-output.js";
|
|
1
2
|
import type { SimLambdaOutputSink } from "../logging/sim-lambda-output-sink.js";
|
|
2
3
|
/**
|
|
3
4
|
* The console methods an invocation's output is taken from.
|
|
@@ -63,7 +64,7 @@ export declare class SimLambdaProcessOutput {
|
|
|
63
64
|
/**
|
|
64
65
|
* Run an invocation with the given sink recording what it prints.
|
|
65
66
|
*/
|
|
66
|
-
run<T>(sink: SimLambdaOutputSink, run: () => Promise<T>): Promise<T>;
|
|
67
|
+
run<T>(sink: SimLambdaOutputSink, output: SimLambdaOutput, run: () => Promise<T>): Promise<T>;
|
|
67
68
|
/**
|
|
68
69
|
* Tee the process console and standard streams into the invocation store.
|
|
69
70
|
*
|
|
@@ -84,6 +85,10 @@ export declare class SimLambdaProcessOutput {
|
|
|
84
85
|
* console afterwards wraps the patch, so its own interception still sees
|
|
85
86
|
* every write, and one that replaces the console object outright takes the
|
|
86
87
|
* patch with it and gets the output the handler wrote.
|
|
88
|
+
*
|
|
89
|
+
* An invocation whose simulated Lambda is capturing only stops at the
|
|
90
|
+
* recording. A line printed outside any invocation goes to the host as it
|
|
91
|
+
* always did.
|
|
87
92
|
*/
|
|
88
93
|
private patchConsole;
|
|
89
94
|
/**
|
|
@@ -57,9 +57,9 @@ export class SimLambdaProcessOutput {
|
|
|
57
57
|
/**
|
|
58
58
|
* Run an invocation with the given sink recording what it prints.
|
|
59
59
|
*/
|
|
60
|
-
async run(sink, run) {
|
|
60
|
+
async run(sink, output, run) {
|
|
61
61
|
this.install();
|
|
62
|
-
return await this.storage.run(sink, run);
|
|
62
|
+
return await this.storage.run({ sink, output }, run);
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Tee the process console and standard streams into the invocation store.
|
|
@@ -90,6 +90,10 @@ export class SimLambdaProcessOutput {
|
|
|
90
90
|
* console afterwards wraps the patch, so its own interception still sees
|
|
91
91
|
* every write, and one that replaces the console object outright takes the
|
|
92
92
|
* patch with it and gets the output the handler wrote.
|
|
93
|
+
*
|
|
94
|
+
* An invocation whose simulated Lambda is capturing only stops at the
|
|
95
|
+
* recording. A line printed outside any invocation goes to the host as it
|
|
96
|
+
* always did.
|
|
93
97
|
*/
|
|
94
98
|
patchConsole(hostConsole) {
|
|
95
99
|
for (const method of CONSOLE_METHODS) {
|
|
@@ -97,7 +101,11 @@ export class SimLambdaProcessOutput {
|
|
|
97
101
|
const hostMethod = hostConsole[method].bind(hostConsole);
|
|
98
102
|
// oxlint-disable-next-line security/detect-object-injection -- one of this module's own fixed method names.
|
|
99
103
|
hostConsole[method] = (...arguments_) => {
|
|
100
|
-
this.storage.getStore()
|
|
104
|
+
const recorded = this.storage.getStore();
|
|
105
|
+
recorded?.sink.write(`${format(...arguments_)}\n`);
|
|
106
|
+
if (recorded !== undefined && !recorded.output.reachesHost()) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
101
109
|
// Delegated outside the store, because the host console writing to
|
|
102
110
|
// process.stdout would otherwise record the same line a second time.
|
|
103
111
|
this.storage.exit(() => {
|
|
@@ -118,9 +126,14 @@ export class SimLambdaProcessOutput {
|
|
|
118
126
|
const hostWrite = hostStream.write.bind(hostStream);
|
|
119
127
|
const decoder = new StringDecoder("utf8");
|
|
120
128
|
hostStream.write = (chunk, ...rest) => {
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
123
|
-
sink.write(typeof chunk === "string" ? chunk : decoder.write(Buffer.from(chunk)));
|
|
129
|
+
const recorded = this.storage.getStore();
|
|
130
|
+
if (recorded !== undefined) {
|
|
131
|
+
recorded.sink.write(typeof chunk === "string" ? chunk : decoder.write(Buffer.from(chunk)));
|
|
132
|
+
// Written and done with. The stream reports the write as accepted,
|
|
133
|
+
// which is what it would have answered had the host taken it.
|
|
134
|
+
if (!recorded.output.reachesHost()) {
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
124
137
|
}
|
|
125
138
|
return hostWrite(chunk, ...rest);
|
|
126
139
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SimLambdaRuntimeError } from "../../error/sim-lambda-runtime.error.js";
|
|
2
|
+
interface SimLambdaTimedOutProperties {
|
|
3
|
+
/** The instant the invocation's time ran out. */
|
|
4
|
+
readonly at: Date;
|
|
5
|
+
readonly awsRequestId: string;
|
|
6
|
+
readonly timeoutSeconds: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The error real Lambda answers a caller with when time ran out.
|
|
10
|
+
*
|
|
11
|
+
* The message names the invocation and how long it had, the way the runtime
|
|
12
|
+
* writes it to the log group and puts it in the Invoke response payload.
|
|
13
|
+
*/
|
|
14
|
+
export declare function simLambdaTimedOutError(properties: SimLambdaTimedOutProperties): SimLambdaRuntimeError;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SimLambdaRuntimeError } from "../../error/sim-lambda-runtime.error.js";
|
|
2
|
+
/** What real Lambda calls an invocation that ran out of time. */
|
|
3
|
+
const timedOutErrorType = "Sandbox.Timedout";
|
|
4
|
+
/**
|
|
5
|
+
* The error real Lambda answers a caller with when time ran out.
|
|
6
|
+
*
|
|
7
|
+
* The message names the invocation and how long it had, the way the runtime
|
|
8
|
+
* writes it to the log group and puts it in the Invoke response payload.
|
|
9
|
+
*/
|
|
10
|
+
export function simLambdaTimedOutError(properties) {
|
|
11
|
+
const { at, awsRequestId, timeoutSeconds } = properties;
|
|
12
|
+
const error = new SimLambdaRuntimeError(timedOutErrorType, `${at.toISOString()} ${awsRequestId} Task timed out after ${timeoutSeconds.toFixed(2)} seconds`);
|
|
13
|
+
// Nothing in the handler threw, so there are no handler frames to report,
|
|
14
|
+
// and the simulator's own are no use to whoever reads the payload. Real
|
|
15
|
+
// Lambda reports a timeout without a stack at all.
|
|
16
|
+
error.stack = `${error.name}: ${error.message}`;
|
|
17
|
+
return error;
|
|
18
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SimLambdaTimerHandle } from "./sim-lambda-timer-handle.js";
|
|
2
|
+
/** Whatever a caller passes to `clearTimeout` or `clearInterval`. */
|
|
3
|
+
type SimLambdaTimerGiven = SimLambdaTimerHandle | NodeJS.Timeout | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* Give up a timer, whichever kind of timer it turned out to be.
|
|
6
|
+
*/
|
|
7
|
+
export declare function simLambdaClearTimeout(handle: SimLambdaTimerGiven): void;
|
|
8
|
+
/**
|
|
9
|
+
* Give up a repeating timer, whichever kind of timer it turned out to be.
|
|
10
|
+
*/
|
|
11
|
+
export declare function simLambdaClearInterval(handle: SimLambdaTimerGiven): void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { clearInterval as hostClearInterval, clearTimeout as hostClearTimeout, } from "node:timers";
|
|
2
|
+
import { SimLambdaTimerHandle } from "./sim-lambda-timer-handle.js";
|
|
3
|
+
/**
|
|
4
|
+
* Give up a timer, whichever kind of timer it turned out to be.
|
|
5
|
+
*/
|
|
6
|
+
export function simLambdaClearTimeout(handle) {
|
|
7
|
+
giveUp(handle, hostClearTimeout);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Give up a repeating timer, whichever kind of timer it turned out to be.
|
|
11
|
+
*/
|
|
12
|
+
export function simLambdaClearInterval(handle) {
|
|
13
|
+
giveUp(handle, hostClearInterval);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Give up a timer on the timeline it was made on.
|
|
17
|
+
*
|
|
18
|
+
* The handle says which. A simulated one is given up on the invocation that
|
|
19
|
+
* made it rather than on whichever invocation is running now, so a handle
|
|
20
|
+
* passed around clears what it names.
|
|
21
|
+
*/
|
|
22
|
+
function giveUp(handle, hostClear) {
|
|
23
|
+
if (handle instanceof SimLambdaTimerHandle) {
|
|
24
|
+
handle.cancel();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
hostClear(handle);
|
|
28
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../../../../util/background/background.js";
|
|
2
|
+
interface SimLambdaClockTimerProperties {
|
|
3
|
+
readonly background: BackgroundScheduler;
|
|
4
|
+
/** What happens once simulated time reaches this timer's instant. */
|
|
5
|
+
readonly run: () => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* One thing that happens when a simulation's clock reaches an instant.
|
|
9
|
+
*
|
|
10
|
+
* The instant is what decides, and simulated time can arrive at it two ways. A
|
|
11
|
+
* test that moves the clock brings it there at once, which is what the
|
|
12
|
+
* scheduler's own clock-waiting queue is for. A simulation left running keeps
|
|
13
|
+
* time with the host, and nothing dispatches that queue, so the timer also
|
|
14
|
+
* keeps a host timer of its own and asks the clock again when it fires. A
|
|
15
|
+
* clock that has not got there yet is asked again later, which is what makes a
|
|
16
|
+
* frozen clock hold a timer indefinitely without spinning on it.
|
|
17
|
+
*
|
|
18
|
+
* The host timer is unreferenced, so a simulation nobody is driving never
|
|
19
|
+
* holds the process open.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SimLambdaClockTimer {
|
|
22
|
+
#private;
|
|
23
|
+
constructor(properties: SimLambdaClockTimerProperties);
|
|
24
|
+
/**
|
|
25
|
+
* Wait a delay of simulated time, and answer with how long that turned out
|
|
26
|
+
* to be. A delay of nothing leaves the timer due where the clock already
|
|
27
|
+
* reads, which is not waiting on the clock at all.
|
|
28
|
+
*/
|
|
29
|
+
startIn(delay: number | undefined): number;
|
|
30
|
+
/**
|
|
31
|
+
* Wait the same delay again, measured from the instant this timer was last
|
|
32
|
+
* due rather than from the time its work ran, so an advance covering several
|
|
33
|
+
* periods runs the work once for each of them.
|
|
34
|
+
*/
|
|
35
|
+
again(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Wait for simulated time to reach an instant, giving up whatever this timer
|
|
38
|
+
* was waiting for before.
|
|
39
|
+
*/
|
|
40
|
+
startAt(dueTime: Date): void;
|
|
41
|
+
/**
|
|
42
|
+
* Give up on this timer, on both timelines.
|
|
43
|
+
*/
|
|
44
|
+
cancel(): void;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -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 {};
|