@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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Writable } from "node:stream";
|
|
2
|
+
import type { SimLambdaOutput } from "../../logging/sim-lambda-output.js";
|
|
2
3
|
import { type SimLambdaOutputSink } from "../../logging/sim-lambda-output-sink.js";
|
|
3
4
|
/**
|
|
4
5
|
* One of the standard output streams the sim Lambda vm sandbox gives function
|
|
@@ -20,19 +21,26 @@ import { type SimLambdaOutputSink } from "../../logging/sim-lambda-output-sink.j
|
|
|
20
21
|
* standard output to standard output and standard error to standard error, and
|
|
21
22
|
* recorded to the sink the code was given, which is what puts a handler's
|
|
22
23
|
* output in its log group. Forwarding to the host is a tee rather than a
|
|
23
|
-
* redirect
|
|
24
|
-
*
|
|
25
|
-
*
|
|
24
|
+
* redirect. Real Lambda sends output to CloudWatch Logs and nowhere else, and a
|
|
25
|
+
* test tool that swallowed it would make a failing test harder to debug than it
|
|
26
|
+
* is with none of this.
|
|
26
27
|
* The sandbox's own console is built over these streams too, so a handler's
|
|
27
28
|
* output arrives there whether it printed through the console or wrote to the
|
|
28
29
|
* stream itself, instead of one of the two disappearing. The host stream is
|
|
29
30
|
* read per write, so a test that starts capturing host output after the
|
|
30
31
|
* function has cold-started still sees what the handler writes.
|
|
32
|
+
*
|
|
33
|
+
* A simulated Lambda told to capture only (see `SimLambdaOutput`) drops the
|
|
34
|
+
* forwarding and carries on recording. Those settings are read per write as
|
|
35
|
+
* well, so a sandbox that has already cold started follows a change. A stream
|
|
36
|
+
* built without them forwards everything, which is what a function with
|
|
37
|
+
* nowhere to record its output needs.
|
|
31
38
|
*/
|
|
32
39
|
export declare class SimLambdaVmOutputStream extends Writable {
|
|
33
40
|
#private;
|
|
34
41
|
private readonly hostStream;
|
|
35
|
-
|
|
42
|
+
private readonly output?;
|
|
43
|
+
constructor(hostStream: () => NodeJS.WritableStream, output?: SimLambdaOutput | undefined);
|
|
36
44
|
/**
|
|
37
45
|
* Record everything written here to a sink from now on.
|
|
38
46
|
*/
|
|
@@ -21,17 +21,24 @@ import { simLambdaNoOutputSink, } from "../../logging/sim-lambda-output-sink.js"
|
|
|
21
21
|
* standard output to standard output and standard error to standard error, and
|
|
22
22
|
* recorded to the sink the code was given, which is what puts a handler's
|
|
23
23
|
* output in its log group. Forwarding to the host is a tee rather than a
|
|
24
|
-
* redirect
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* redirect. Real Lambda sends output to CloudWatch Logs and nowhere else, and a
|
|
25
|
+
* test tool that swallowed it would make a failing test harder to debug than it
|
|
26
|
+
* is with none of this.
|
|
27
27
|
* The sandbox's own console is built over these streams too, so a handler's
|
|
28
28
|
* output arrives there whether it printed through the console or wrote to the
|
|
29
29
|
* stream itself, instead of one of the two disappearing. The host stream is
|
|
30
30
|
* read per write, so a test that starts capturing host output after the
|
|
31
31
|
* function has cold-started still sees what the handler writes.
|
|
32
|
+
*
|
|
33
|
+
* A simulated Lambda told to capture only (see `SimLambdaOutput`) drops the
|
|
34
|
+
* forwarding and carries on recording. Those settings are read per write as
|
|
35
|
+
* well, so a sandbox that has already cold started follows a change. A stream
|
|
36
|
+
* built without them forwards everything, which is what a function with
|
|
37
|
+
* nowhere to record its output needs.
|
|
32
38
|
*/
|
|
33
39
|
export class SimLambdaVmOutputStream extends Writable {
|
|
34
40
|
hostStream;
|
|
41
|
+
output;
|
|
35
42
|
#sink = simLambdaNoOutputSink;
|
|
36
43
|
/**
|
|
37
44
|
* Decodes what is recorded, rather than each chunk being decoded on its own.
|
|
@@ -44,9 +51,10 @@ export class SimLambdaVmOutputStream extends Writable {
|
|
|
44
51
|
* bytes left over at the end of an invocation belong to the next one.
|
|
45
52
|
*/
|
|
46
53
|
#decoder = new StringDecoder("utf8");
|
|
47
|
-
constructor(hostStream) {
|
|
54
|
+
constructor(hostStream, output) {
|
|
48
55
|
super();
|
|
49
56
|
this.hostStream = hostStream;
|
|
57
|
+
this.output = output;
|
|
50
58
|
}
|
|
51
59
|
/**
|
|
52
60
|
* Record everything written here to a sink from now on.
|
|
@@ -65,7 +73,9 @@ export class SimLambdaVmOutputStream extends Writable {
|
|
|
65
73
|
*/
|
|
66
74
|
_write(chunk, _encoding, done) {
|
|
67
75
|
this.#sink.write(this.#decoder.write(chunk));
|
|
68
|
-
this.
|
|
76
|
+
if (this.output?.reachesHost() ?? true) {
|
|
77
|
+
this.hostStream().write(chunk);
|
|
78
|
+
}
|
|
69
79
|
done();
|
|
70
80
|
}
|
|
71
81
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimClock } from "../../../../util/clock/sim-clock.js";
|
|
2
|
+
import type { SimLambdaOutput } from "../logging/sim-lambda-output.js";
|
|
2
3
|
import type { SimLambdaOutputSink } from "../logging/sim-lambda-output-sink.js";
|
|
3
4
|
import type { SimLambdaOutboundHttp } from "../outbound/sim-lambda-outbound-http.js";
|
|
4
5
|
/**
|
|
@@ -19,6 +20,12 @@ interface SimLambdaHostScope {
|
|
|
19
20
|
* and its output reaches the host console alone.
|
|
20
21
|
*/
|
|
21
22
|
readonly output: SimLambdaOutputSink | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Whether what the invocation prints also reaches the host console once it
|
|
25
|
+
* has been recorded. Read only where there is a sink, because a function
|
|
26
|
+
* with nowhere to record has the host console alone.
|
|
27
|
+
*/
|
|
28
|
+
readonly outputSettings: SimLambdaOutput;
|
|
22
29
|
}
|
|
23
30
|
/**
|
|
24
31
|
* Run an invocation of code in the host scope with the process globals it
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { simLambdaProcessClock } from "./sim-lambda-process-clock.js";
|
|
2
2
|
import { simLambdaProcessOutbound } from "./sim-lambda-process-outbound.js";
|
|
3
3
|
import { simLambdaProcessOutput } from "./sim-lambda-process-output.js";
|
|
4
|
+
import { simLambdaProcessTimers } from "./timer/sim-lambda-process-timers.js";
|
|
4
5
|
/**
|
|
5
6
|
* Run an invocation of code in the host scope with the process globals it
|
|
6
7
|
* reads bridged to its simulation.
|
|
@@ -11,10 +12,13 @@ import { simLambdaProcessOutput } from "./sim-lambda-process-output.js";
|
|
|
11
12
|
* here.
|
|
12
13
|
*/
|
|
13
14
|
export async function runSimLambdaInHostScope(scope, run) {
|
|
14
|
-
const { clock, outboundHttp, output } = scope;
|
|
15
|
+
const { clock, outboundHttp, output, outputSettings } = scope;
|
|
16
|
+
// Host-scope code reaches for the global timer functions, so the invocation
|
|
17
|
+
// its handler runs in has to be findable from them.
|
|
18
|
+
simLambdaProcessTimers.install();
|
|
15
19
|
const recording = output === undefined
|
|
16
20
|
? run
|
|
17
|
-
: async () => await simLambdaProcessOutput.run(output, run);
|
|
21
|
+
: async () => await simLambdaProcessOutput.run(output, outputSettings, run);
|
|
18
22
|
const reachingTheSimulation = outboundHttp === undefined
|
|
19
23
|
? recording
|
|
20
24
|
: async () => await simLambdaProcessOutbound.run(outboundHttp, recording);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../../../util/background/background.js";
|
|
2
|
+
interface SimLambdaInvocationDeadlineProperties {
|
|
3
|
+
readonly background: BackgroundScheduler;
|
|
4
|
+
readonly timeoutSeconds: number;
|
|
5
|
+
readonly awsRequestId: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The time one invocation has to finish in, and the timers it gets while it
|
|
9
|
+
* runs.
|
|
10
|
+
*
|
|
11
|
+
* Both wait on the simulation's clock. Whichever arrives first decides: a
|
|
12
|
+
* handler that answers in time is answered with, and a deadline that arrives
|
|
13
|
+
* first ends the invocation in the timeout error real Lambda reports. Nothing
|
|
14
|
+
* waits for a handler that has been timed out, and what it goes on to do
|
|
15
|
+
* reaches nobody, which is the closest an in-process simulation gets to an
|
|
16
|
+
* execution environment being taken away.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SimLambdaInvocationDeadline {
|
|
19
|
+
#private;
|
|
20
|
+
constructor(properties: SimLambdaInvocationDeadlineProperties);
|
|
21
|
+
/**
|
|
22
|
+
* Run the handler with timers of its own, up to this deadline.
|
|
23
|
+
*/
|
|
24
|
+
around<T>(handler: () => Promise<T>): Promise<T>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -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 {};
|