@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
|
@@ -23,6 +23,11 @@ export class SimS3MultipartUploads {
|
|
|
23
23
|
key: properties.key,
|
|
24
24
|
metadata: properties.metadata,
|
|
25
25
|
initiated: properties.initiated,
|
|
26
|
+
...(properties.storageClass !== undefined && {
|
|
27
|
+
storageClass: properties.storageClass,
|
|
28
|
+
}),
|
|
29
|
+
serverSideEncryption: properties.serverSideEncryption,
|
|
30
|
+
tags: properties.tags,
|
|
26
31
|
});
|
|
27
32
|
this.uploads.set(upload.uploadId, upload);
|
|
28
33
|
return upload;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many things one running scheduled task is waiting on the clock for.
|
|
3
|
+
*/
|
|
4
|
+
export interface BackgroundClockWait {
|
|
5
|
+
count: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Which scheduled tasks are waiting for the clock rather than for the host.
|
|
9
|
+
*
|
|
10
|
+
* Completing a simulation waits for the work that can still get somewhere on
|
|
11
|
+
* its own. A task blocked on an instant the clock has not reached is not that
|
|
12
|
+
* kind of work: only moving the clock releases it, and whatever moves the
|
|
13
|
+
* clock is what waits for completion. Left in, it would be waiting for itself.
|
|
14
|
+
*
|
|
15
|
+
* A task says so for itself, from wherever inside it the wait happens, so a
|
|
16
|
+
* scheduler needs no way of telling one kind of work from another. Code
|
|
17
|
+
* running outside a scheduled task has nothing to say, and changes nothing by
|
|
18
|
+
* saying it, which is what keeps this invisible to a caller who holds the
|
|
19
|
+
* promise itself.
|
|
20
|
+
*/
|
|
21
|
+
export declare class BackgroundClockWaits {
|
|
22
|
+
private readonly storage;
|
|
23
|
+
private started;
|
|
24
|
+
/**
|
|
25
|
+
* Run outstanding work with a record of what it waits on the clock for.
|
|
26
|
+
*/
|
|
27
|
+
around<T>(wait: BackgroundClockWait, work: () => Promise<T>): Promise<T>;
|
|
28
|
+
/**
|
|
29
|
+
* The work in a set that is neither waiting on the clock nor the work asking
|
|
30
|
+
* about it.
|
|
31
|
+
*/
|
|
32
|
+
runnable(held: ReadonlyMap<Promise<unknown>, BackgroundClockWait>): Promise<unknown>[];
|
|
33
|
+
/**
|
|
34
|
+
* Whether the code running now is already inside outstanding work, and so
|
|
35
|
+
* already counted.
|
|
36
|
+
*/
|
|
37
|
+
get inWork(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Say that the task running now is waiting for simulated time to reach an
|
|
40
|
+
* instant, and get back the way to say it no longer is.
|
|
41
|
+
*/
|
|
42
|
+
begin(): () => void;
|
|
43
|
+
/**
|
|
44
|
+
* Resolves the next time a task starts waiting on the clock.
|
|
45
|
+
*
|
|
46
|
+
* Whoever is waiting for the simulation to complete takes this alongside the
|
|
47
|
+
* tasks it is waiting for, so a task that parks part way through stops the
|
|
48
|
+
* wait rather than extending it forever.
|
|
49
|
+
*/
|
|
50
|
+
get next(): Promise<undefined>;
|
|
51
|
+
private wake;
|
|
52
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
/**
|
|
3
|
+
* Which scheduled tasks are waiting for the clock rather than for the host.
|
|
4
|
+
*
|
|
5
|
+
* Completing a simulation waits for the work that can still get somewhere on
|
|
6
|
+
* its own. A task blocked on an instant the clock has not reached is not that
|
|
7
|
+
* kind of work: only moving the clock releases it, and whatever moves the
|
|
8
|
+
* clock is what waits for completion. Left in, it would be waiting for itself.
|
|
9
|
+
*
|
|
10
|
+
* A task says so for itself, from wherever inside it the wait happens, so a
|
|
11
|
+
* scheduler needs no way of telling one kind of work from another. Code
|
|
12
|
+
* running outside a scheduled task has nothing to say, and changes nothing by
|
|
13
|
+
* saying it, which is what keeps this invisible to a caller who holds the
|
|
14
|
+
* promise itself.
|
|
15
|
+
*/
|
|
16
|
+
export class BackgroundClockWaits {
|
|
17
|
+
storage = new AsyncLocalStorage();
|
|
18
|
+
started = Promise.withResolvers();
|
|
19
|
+
/**
|
|
20
|
+
* Run outstanding work with a record of what it waits on the clock for.
|
|
21
|
+
*/
|
|
22
|
+
async around(wait, work) {
|
|
23
|
+
return await this.storage.run(wait, work);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The work in a set that is neither waiting on the clock nor the work asking
|
|
27
|
+
* about it.
|
|
28
|
+
*/
|
|
29
|
+
runnable(held) {
|
|
30
|
+
const own = this.storage.getStore();
|
|
31
|
+
return held
|
|
32
|
+
.entries()
|
|
33
|
+
.filter(([, wait]) => wait.count === 0 && wait !== own)
|
|
34
|
+
.map(([promise]) => promise)
|
|
35
|
+
.toArray();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whether the code running now is already inside outstanding work, and so
|
|
39
|
+
* already counted.
|
|
40
|
+
*/
|
|
41
|
+
get inWork() {
|
|
42
|
+
return this.storage.getStore() !== undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Say that the task running now is waiting for simulated time to reach an
|
|
46
|
+
* instant, and get back the way to say it no longer is.
|
|
47
|
+
*/
|
|
48
|
+
begin() {
|
|
49
|
+
const wait = this.storage.getStore();
|
|
50
|
+
if (wait === undefined) {
|
|
51
|
+
return () => {
|
|
52
|
+
// Nothing scheduled is waiting, so nothing stops waiting either.
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
wait.count += 1;
|
|
56
|
+
this.wake();
|
|
57
|
+
return () => {
|
|
58
|
+
wait.count -= 1;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolves the next time a task starts waiting on the clock.
|
|
63
|
+
*
|
|
64
|
+
* Whoever is waiting for the simulation to complete takes this alongside the
|
|
65
|
+
* tasks it is waiting for, so a task that parks part way through stops the
|
|
66
|
+
* wait rather than extending it forever.
|
|
67
|
+
*/
|
|
68
|
+
get next() {
|
|
69
|
+
return this.started.promise;
|
|
70
|
+
}
|
|
71
|
+
wake() {
|
|
72
|
+
const { resolve } = this.started;
|
|
73
|
+
this.started = Promise.withResolvers();
|
|
74
|
+
resolve(undefined);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { BackgroundTask } from "./background.js";
|
|
2
|
+
/**
|
|
3
|
+
* The work one scheduler has outstanding, and how much of it is worth waiting
|
|
4
|
+
* for.
|
|
5
|
+
*
|
|
6
|
+
* Work gets here two ways. A task the scheduler was handed is held here until
|
|
7
|
+
* it settles, and its failure is kept for whoever waits for the simulation to
|
|
8
|
+
* complete. Work a caller started is held here too, but answers to that caller
|
|
9
|
+
* instead, because reporting the same failure twice would fail somebody who
|
|
10
|
+
* never asked for the work.
|
|
11
|
+
*
|
|
12
|
+
* Either way, what completion waits for is what can still get somewhere on its
|
|
13
|
+
* own. Work waiting on the clock cannot, and neither can the work asking for
|
|
14
|
+
* the simulation to settle.
|
|
15
|
+
*/
|
|
16
|
+
export declare class BackgroundPendingTasks {
|
|
17
|
+
#private;
|
|
18
|
+
/**
|
|
19
|
+
* Hold a task until it settles, keeping how it settled for whoever waits.
|
|
20
|
+
*/
|
|
21
|
+
hold(task: BackgroundTask): void;
|
|
22
|
+
/**
|
|
23
|
+
* Hold work a caller started, answering with what it settles with.
|
|
24
|
+
*
|
|
25
|
+
* Work already running inside a held task is counted where it is, and simply
|
|
26
|
+
* runs.
|
|
27
|
+
*/
|
|
28
|
+
holdCallers<T>(work: () => Promise<T>): Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Say that the held task running now is waiting on the clock.
|
|
31
|
+
*/
|
|
32
|
+
waitingOnClock(): () => void;
|
|
33
|
+
/**
|
|
34
|
+
* How much work is outstanding, whatever it is waiting for.
|
|
35
|
+
*/
|
|
36
|
+
get size(): number;
|
|
37
|
+
/**
|
|
38
|
+
* Wait until nothing is outstanding but work that is waiting on the clock.
|
|
39
|
+
*
|
|
40
|
+
* Work that parks part way through ends the wait rather than extending it:
|
|
41
|
+
* only moving the clock releases it, and moving the clock is what waits
|
|
42
|
+
* here. The loop then looks again at what is left running, so work that
|
|
43
|
+
* carries on is waited for again.
|
|
44
|
+
*/
|
|
45
|
+
complete(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* The work completion has anything to wait for, which is whatever is
|
|
48
|
+
* neither waiting on the clock nor waiting for completion itself.
|
|
49
|
+
*
|
|
50
|
+
* Work that asks for the simulation to settle from inside itself is left
|
|
51
|
+
* out. A handler advancing the clock is the ordinary case, and waiting for
|
|
52
|
+
* the invocation it is part of would be waiting for itself.
|
|
53
|
+
*/
|
|
54
|
+
running(): Promise<unknown>[];
|
|
55
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { BackgroundSettledTasks } from "./background-settled-tasks.js";
|
|
2
|
+
import { BackgroundClockWaits, } from "./background-clock-waits.js";
|
|
3
|
+
/**
|
|
4
|
+
* The work one scheduler has outstanding, and how much of it is worth waiting
|
|
5
|
+
* for.
|
|
6
|
+
*
|
|
7
|
+
* Work gets here two ways. A task the scheduler was handed is held here until
|
|
8
|
+
* it settles, and its failure is kept for whoever waits for the simulation to
|
|
9
|
+
* complete. Work a caller started is held here too, but answers to that caller
|
|
10
|
+
* instead, because reporting the same failure twice would fail somebody who
|
|
11
|
+
* never asked for the work.
|
|
12
|
+
*
|
|
13
|
+
* Either way, what completion waits for is what can still get somewhere on its
|
|
14
|
+
* own. Work waiting on the clock cannot, and neither can the work asking for
|
|
15
|
+
* the simulation to settle.
|
|
16
|
+
*/
|
|
17
|
+
export class BackgroundPendingTasks {
|
|
18
|
+
#held = new Map();
|
|
19
|
+
#clockWaits = new BackgroundClockWaits();
|
|
20
|
+
/**
|
|
21
|
+
* Hold a task until it settles, keeping how it settled for whoever waits.
|
|
22
|
+
*/
|
|
23
|
+
hold(task) {
|
|
24
|
+
const wait = { count: 0 };
|
|
25
|
+
this.#keep(wait, this.#clockWaits.around(wait, task));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Hold work a caller started, answering with what it settles with.
|
|
29
|
+
*
|
|
30
|
+
* Work already running inside a held task is counted where it is, and simply
|
|
31
|
+
* runs.
|
|
32
|
+
*/
|
|
33
|
+
async holdCallers(work) {
|
|
34
|
+
if (this.#clockWaits.inWork) {
|
|
35
|
+
return await work();
|
|
36
|
+
}
|
|
37
|
+
const wait = { count: 0 };
|
|
38
|
+
const answer = this.#clockWaits.around(wait, work);
|
|
39
|
+
this.#keep(wait, ignoringFailure(answer));
|
|
40
|
+
return await answer;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Say that the held task running now is waiting on the clock.
|
|
44
|
+
*/
|
|
45
|
+
waitingOnClock() {
|
|
46
|
+
return this.#clockWaits.begin();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* How much work is outstanding, whatever it is waiting for.
|
|
50
|
+
*/
|
|
51
|
+
get size() {
|
|
52
|
+
return this.#held.size;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Wait until nothing is outstanding but work that is waiting on the clock.
|
|
56
|
+
*
|
|
57
|
+
* Work that parks part way through ends the wait rather than extending it:
|
|
58
|
+
* only moving the clock releases it, and moving the clock is what waits
|
|
59
|
+
* here. The loop then looks again at what is left running, so work that
|
|
60
|
+
* carries on is waited for again.
|
|
61
|
+
*/
|
|
62
|
+
async complete() {
|
|
63
|
+
let running = this.running();
|
|
64
|
+
while (running.length > 0) {
|
|
65
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
66
|
+
const settled = await Promise.race([
|
|
67
|
+
Promise.allSettled(running),
|
|
68
|
+
this.#clockWaits.next,
|
|
69
|
+
]);
|
|
70
|
+
new BackgroundSettledTasks(settled).throwFirstFailure();
|
|
71
|
+
running = this.running();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The work completion has anything to wait for, which is whatever is
|
|
76
|
+
* neither waiting on the clock nor waiting for completion itself.
|
|
77
|
+
*
|
|
78
|
+
* Work that asks for the simulation to settle from inside itself is left
|
|
79
|
+
* out. A handler advancing the clock is the ordinary case, and waiting for
|
|
80
|
+
* the invocation it is part of would be waiting for itself.
|
|
81
|
+
*/
|
|
82
|
+
running() {
|
|
83
|
+
return this.#clockWaits.runnable(this.#held);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Keep work outstanding under its own record until it settles.
|
|
87
|
+
*/
|
|
88
|
+
#keep(wait, work) {
|
|
89
|
+
const promise = settling(work, () => {
|
|
90
|
+
this.#held.delete(promise);
|
|
91
|
+
});
|
|
92
|
+
this.#held.set(promise, wait);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Answer for work, letting go of it once it has settled either way.
|
|
97
|
+
*/
|
|
98
|
+
async function settling(work, settled) {
|
|
99
|
+
try {
|
|
100
|
+
return await work;
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
settled();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Wait for work without taking on how it failed, which the caller holding it
|
|
108
|
+
* is told about instead.
|
|
109
|
+
*/
|
|
110
|
+
async function ignoringFailure(work) {
|
|
111
|
+
try {
|
|
112
|
+
await work;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Reported to the caller, not to whoever waits for completion.
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
* throws has nowhere to report to. Waiting for tasks to settle is that
|
|
6
6
|
* moment: this is what turns a settled batch back into a thrown error, so a
|
|
7
7
|
* failure in the background surfaces to whoever waited rather than vanishing.
|
|
8
|
+
*
|
|
9
|
+
* A wait that ended on something else, such as a task parking on the clock,
|
|
10
|
+
* settled no batch at all and has no failure to report.
|
|
8
11
|
*/
|
|
9
12
|
export declare class BackgroundSettledTasks {
|
|
10
13
|
private readonly results;
|
|
11
|
-
constructor(results
|
|
14
|
+
constructor(results?: readonly PromiseSettledResult<unknown>[]);
|
|
12
15
|
/**
|
|
13
16
|
* Throw the first task failure in the batch, if there was one.
|
|
14
17
|
*/
|
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
* throws has nowhere to report to. Waiting for tasks to settle is that
|
|
6
6
|
* moment: this is what turns a settled batch back into a thrown error, so a
|
|
7
7
|
* failure in the background surfaces to whoever waited rather than vanishing.
|
|
8
|
+
*
|
|
9
|
+
* A wait that ended on something else, such as a task parking on the clock,
|
|
10
|
+
* settled no batch at all and has no failure to report.
|
|
8
11
|
*/
|
|
9
12
|
export class BackgroundSettledTasks {
|
|
10
13
|
results;
|
|
11
|
-
constructor(results) {
|
|
14
|
+
constructor(results = []) {
|
|
12
15
|
this.results = results;
|
|
13
16
|
}
|
|
14
17
|
/**
|
|
@@ -19,6 +19,27 @@ export interface BackgroundScheduler extends SimClock {
|
|
|
19
19
|
*/
|
|
20
20
|
sequence(): Promise<void>;
|
|
21
21
|
schedule(task: BackgroundTask): void;
|
|
22
|
+
/**
|
|
23
|
+
* Count work a caller started as outstanding until it settles.
|
|
24
|
+
*
|
|
25
|
+
* Completion then waits for it, so a simulation asked to settle takes in
|
|
26
|
+
* work a caller is holding the promise of as well as work it was handed.
|
|
27
|
+
* Whoever asked for it still gets what it settles with, failure included.
|
|
28
|
+
*
|
|
29
|
+
* Work already running as a scheduled task is counted where it is, and this
|
|
30
|
+
* simply runs it.
|
|
31
|
+
*/
|
|
32
|
+
outstanding<T>(work: () => Promise<T>): Promise<T>;
|
|
33
|
+
/**
|
|
34
|
+
* Run a task that is already due, and keep it outstanding until it settles.
|
|
35
|
+
*
|
|
36
|
+
* Started here and now rather than deferred to a host timer, because
|
|
37
|
+
* advancing the clock steps through every instant work falls due at and a
|
|
38
|
+
* timer for each of them would cost real time. It is counted as outstanding
|
|
39
|
+
* work all the same, so a task that goes on to wait for the clock stops
|
|
40
|
+
* holding up whatever is moving it.
|
|
41
|
+
*/
|
|
42
|
+
runDue(task: BackgroundTask): void;
|
|
22
43
|
/**
|
|
23
44
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
24
45
|
*
|
|
@@ -35,6 +56,16 @@ export interface BackgroundScheduler extends SimClock {
|
|
|
35
56
|
* already run, is nothing to give up on.
|
|
36
57
|
*/
|
|
37
58
|
cancelScheduled(task: BackgroundTask): void;
|
|
59
|
+
/**
|
|
60
|
+
* Say that the scheduled task running now is waiting for simulated time to
|
|
61
|
+
* reach an instant, and get back the way to say it no longer is.
|
|
62
|
+
*
|
|
63
|
+
* Completion stops waiting for the task while it waits here, because moving
|
|
64
|
+
* the clock is the only thing that releases it and completion is what
|
|
65
|
+
* moving the clock waits for. Called from outside a scheduled task, such as
|
|
66
|
+
* from work a caller is holding the promise of, this changes nothing.
|
|
67
|
+
*/
|
|
68
|
+
waitingOnClock(): () => void;
|
|
38
69
|
}
|
|
39
70
|
interface BackgroundTasksProperties {
|
|
40
71
|
readonly clock?: SimClock;
|
|
@@ -82,6 +113,14 @@ export declare class BackgroundTasks implements BackgroundScheduler, BackgroundC
|
|
|
82
113
|
* Schedule a task to happen asynchronously in the background.
|
|
83
114
|
*/
|
|
84
115
|
schedule(task: BackgroundTask): void;
|
|
116
|
+
/**
|
|
117
|
+
* Run a task that is already due, keeping it outstanding until it settles.
|
|
118
|
+
*/
|
|
119
|
+
runDue(task: BackgroundTask): void;
|
|
120
|
+
/**
|
|
121
|
+
* Count work a caller started as outstanding until it settles.
|
|
122
|
+
*/
|
|
123
|
+
outstanding<T>(work: () => Promise<T>): Promise<T>;
|
|
85
124
|
/**
|
|
86
125
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
87
126
|
*/
|
|
@@ -90,6 +129,10 @@ export declare class BackgroundTasks implements BackgroundScheduler, BackgroundC
|
|
|
90
129
|
* Give up on a task scheduled to happen at a simulated instant.
|
|
91
130
|
*/
|
|
92
131
|
cancelScheduled(task: BackgroundTask): void;
|
|
132
|
+
/**
|
|
133
|
+
* Say that the scheduled task running now is waiting on the clock.
|
|
134
|
+
*/
|
|
135
|
+
waitingOnClock(): () => void;
|
|
93
136
|
/**
|
|
94
137
|
* Take the next task due at or before an instant, earliest first.
|
|
95
138
|
*/
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/* oxlint-disable unicorn-js/prefer-await */
|
|
2
|
+
import { setTimeout } from "node:timers";
|
|
2
3
|
import { SimRealClock } from "../clock/sim-clock.js";
|
|
4
|
+
import { BackgroundPendingTasks } from "./background-pending-tasks.js";
|
|
3
5
|
import { BackgroundDueTasks, } from "./background-due-tasks.js";
|
|
4
6
|
/**
|
|
5
7
|
* Deterministic async background tasks scheduler.
|
|
@@ -8,7 +10,7 @@ import { BackgroundDueTasks, } from "./background-due-tasks.js";
|
|
|
8
10
|
* the order they were scheduled.
|
|
9
11
|
*/
|
|
10
12
|
export class BackgroundTasks {
|
|
11
|
-
pending = new
|
|
13
|
+
pending = new BackgroundPendingTasks();
|
|
12
14
|
dueTasks = new BackgroundDueTasks();
|
|
13
15
|
clock;
|
|
14
16
|
constructor(properties = {}) {
|
|
@@ -30,21 +32,24 @@ export class BackgroundTasks {
|
|
|
30
32
|
* Schedule a task to happen asynchronously in the background.
|
|
31
33
|
*/
|
|
32
34
|
schedule(task) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
//
|
|
39
|
-
}, (error) => {
|
|
40
|
-
// Keep the promise rejected so complete() can surface failures
|
|
41
|
-
// deterministically.
|
|
42
|
-
throw error;
|
|
43
|
-
})
|
|
44
|
-
.finally(() => {
|
|
45
|
-
this.pending.delete(promise);
|
|
35
|
+
this.pending.hold(async () => {
|
|
36
|
+
await new Promise((resolve) => {
|
|
37
|
+
setTimeout(resolve, 0);
|
|
38
|
+
});
|
|
39
|
+
await task();
|
|
46
40
|
});
|
|
47
|
-
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Run a task that is already due, keeping it outstanding until it settles.
|
|
44
|
+
*/
|
|
45
|
+
runDue(task) {
|
|
46
|
+
this.pending.hold(task);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Count work a caller started as outstanding until it settles.
|
|
50
|
+
*/
|
|
51
|
+
async outstanding(work) {
|
|
52
|
+
return await this.pending.holdCallers(work);
|
|
48
53
|
}
|
|
49
54
|
/**
|
|
50
55
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
@@ -58,6 +63,12 @@ export class BackgroundTasks {
|
|
|
58
63
|
cancelScheduled(task) {
|
|
59
64
|
this.dueTasks.cancel(task);
|
|
60
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Say that the scheduled task running now is waiting on the clock.
|
|
68
|
+
*/
|
|
69
|
+
waitingOnClock() {
|
|
70
|
+
return this.pending.waitingOnClock();
|
|
71
|
+
}
|
|
61
72
|
/**
|
|
62
73
|
* Take the next task due at or before an instant, earliest first.
|
|
63
74
|
*/
|
|
@@ -73,10 +84,7 @@ export class BackgroundTasks {
|
|
|
73
84
|
* clock releases it.
|
|
74
85
|
*/
|
|
75
86
|
async complete() {
|
|
76
|
-
|
|
77
|
-
// oxlint-disable-next-line no-await-in-loop
|
|
78
|
-
await Promise.all(this.pending);
|
|
79
|
-
}
|
|
87
|
+
await this.pending.complete();
|
|
80
88
|
}
|
|
81
89
|
/**
|
|
82
90
|
* See how many outstanding background tasks are scheduled.
|
|
@@ -28,6 +28,14 @@ export declare class NonDeterministicBackgroundTasks implements BackgroundSchedu
|
|
|
28
28
|
* Schedule a task to happen asynchronously in the background.
|
|
29
29
|
*/
|
|
30
30
|
schedule(task: BackgroundTask): void;
|
|
31
|
+
/**
|
|
32
|
+
* Run a task that is already due, keeping it outstanding until it settles.
|
|
33
|
+
*/
|
|
34
|
+
runDue(task: BackgroundTask): void;
|
|
35
|
+
/**
|
|
36
|
+
* Count work a caller started as outstanding until it settles.
|
|
37
|
+
*/
|
|
38
|
+
outstanding<T>(work: () => Promise<T>): Promise<T>;
|
|
31
39
|
/**
|
|
32
40
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
33
41
|
*/
|
|
@@ -36,6 +44,10 @@ export declare class NonDeterministicBackgroundTasks implements BackgroundSchedu
|
|
|
36
44
|
* Give up on a task scheduled to happen at a simulated instant.
|
|
37
45
|
*/
|
|
38
46
|
cancelScheduled(task: BackgroundTask): void;
|
|
47
|
+
/**
|
|
48
|
+
* Say that the scheduled task running now is waiting on the clock.
|
|
49
|
+
*/
|
|
50
|
+
waitingOnClock(): () => void;
|
|
39
51
|
/**
|
|
40
52
|
* Take the next task due at or before an instant, earliest first.
|
|
41
53
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SimRealClock } from "../clock/sim-clock.js";
|
|
2
|
+
import { BackgroundPendingTasks } from "./background-pending-tasks.js";
|
|
2
3
|
import { BackgroundDueTasks, } from "./background-due-tasks.js";
|
|
3
4
|
import { BackgroundJitter } from "./background-jitter.js";
|
|
4
|
-
import { BackgroundSettledTasks } from "./background-settled-tasks.js";
|
|
5
5
|
/* oxlint-disable unicorn-js/prefer-await */
|
|
6
6
|
/**
|
|
7
7
|
* Non-deterministic async background tasks scheduler.
|
|
@@ -10,7 +10,7 @@ import { BackgroundSettledTasks } from "./background-settled-tasks.js";
|
|
|
10
10
|
* potentially completing out of sequence.
|
|
11
11
|
*/
|
|
12
12
|
export class NonDeterministicBackgroundTasks {
|
|
13
|
-
pending = new
|
|
13
|
+
pending = new BackgroundPendingTasks();
|
|
14
14
|
dueTasks = new BackgroundDueTasks();
|
|
15
15
|
jitter;
|
|
16
16
|
clock;
|
|
@@ -35,19 +35,22 @@ export class NonDeterministicBackgroundTasks {
|
|
|
35
35
|
* Schedule a task to happen asynchronously in the background.
|
|
36
36
|
*/
|
|
37
37
|
schedule(task) {
|
|
38
|
-
|
|
39
|
-
.
|
|
40
|
-
|
|
41
|
-
//
|
|
42
|
-
}, (error) => {
|
|
43
|
-
// Keep the promise rejected so complete() can surface failures
|
|
44
|
-
// deterministically.
|
|
45
|
-
throw error;
|
|
46
|
-
})
|
|
47
|
-
.finally(() => {
|
|
48
|
-
this.pending.delete(promise);
|
|
38
|
+
this.pending.hold(async () => {
|
|
39
|
+
await this.sequence();
|
|
40
|
+
await task();
|
|
49
41
|
});
|
|
50
|
-
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Run a task that is already due, keeping it outstanding until it settles.
|
|
45
|
+
*/
|
|
46
|
+
runDue(task) {
|
|
47
|
+
this.pending.hold(task);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Count work a caller started as outstanding until it settles.
|
|
51
|
+
*/
|
|
52
|
+
async outstanding(work) {
|
|
53
|
+
return await this.pending.holdCallers(work);
|
|
51
54
|
}
|
|
52
55
|
/**
|
|
53
56
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
@@ -61,6 +64,12 @@ export class NonDeterministicBackgroundTasks {
|
|
|
61
64
|
cancelScheduled(task) {
|
|
62
65
|
this.dueTasks.cancel(task);
|
|
63
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Say that the scheduled task running now is waiting on the clock.
|
|
69
|
+
*/
|
|
70
|
+
waitingOnClock() {
|
|
71
|
+
return this.pending.waitingOnClock();
|
|
72
|
+
}
|
|
64
73
|
/**
|
|
65
74
|
* Take the next task due at or before an instant, earliest first.
|
|
66
75
|
*/
|
|
@@ -72,12 +81,7 @@ export class NonDeterministicBackgroundTasks {
|
|
|
72
81
|
* If tasks schedule more tasks, this will continue draining until idle.
|
|
73
82
|
*/
|
|
74
83
|
async complete() {
|
|
75
|
-
|
|
76
|
-
// oxlint-disable-next-line no-await-in-loop
|
|
77
|
-
const results = await Promise.allSettled(this.pending);
|
|
78
|
-
// Surface a task that failed in the background to whoever waited here.
|
|
79
|
-
new BackgroundSettledTasks(results).throwFirstFailure();
|
|
80
|
-
}
|
|
84
|
+
await this.pending.complete();
|
|
81
85
|
}
|
|
82
86
|
/**
|
|
83
87
|
* See how many outstanding background tasks are scheduled.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { setTimeout } from "node:timers";
|
|
1
2
|
import { SimDuration } from "./sim-duration.js";
|
|
2
3
|
/**
|
|
3
4
|
* Control over one simulation's sense of time.
|
|
@@ -67,6 +68,7 @@ export class SimClockControl {
|
|
|
67
68
|
*/
|
|
68
69
|
async setTo(instant) {
|
|
69
70
|
this.clock.freeze();
|
|
71
|
+
await reachWhatIsWaitedOn();
|
|
70
72
|
if (instant.getTime() >= this.now().getTime()) {
|
|
71
73
|
await this.runDueTasksUpTo(instant);
|
|
72
74
|
}
|
|
@@ -115,8 +117,7 @@ export class SimClockControl {
|
|
|
115
117
|
let due = this.background.takeNextDueBy(instant);
|
|
116
118
|
while (due !== undefined) {
|
|
117
119
|
this.clock.setTo(this.laterOfNow(due.dueTime));
|
|
118
|
-
|
|
119
|
-
await due.task();
|
|
120
|
+
this.background.runDue(due.task);
|
|
120
121
|
// oxlint-disable-next-line no-await-in-loop
|
|
121
122
|
await this.background.complete();
|
|
122
123
|
due = this.background.takeNextDueBy(instant);
|
|
@@ -134,3 +135,23 @@ export class SimClockControl {
|
|
|
134
135
|
return instant;
|
|
135
136
|
}
|
|
136
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Let work already under way reach whatever it is waiting for.
|
|
140
|
+
*
|
|
141
|
+
* A test that starts something and moves the clock without waiting for it has
|
|
142
|
+
* a real ordering problem to solve. An invocation asked for on the line above
|
|
143
|
+
* has not run a line of handler code yet, so the timer the handler is about to
|
|
144
|
+
* ask for is not on the clock when the clock moves, and moving time past an
|
|
145
|
+
* instant nothing is waiting on releases nothing.
|
|
146
|
+
*
|
|
147
|
+
* One turn of the host event loop settles that. It runs everything already
|
|
148
|
+
* queued, which carries a promise chain started on the previous line as far as
|
|
149
|
+
* its first real wait, and the clock then moves past instants that are
|
|
150
|
+
* actually being waited on. The clock is frozen before this, so the time that
|
|
151
|
+
* work reads while it gets there is the instant the test moved from.
|
|
152
|
+
*/
|
|
153
|
+
async function reachWhatIsWaitedOn() {
|
|
154
|
+
await new Promise((resolve) => {
|
|
155
|
+
setTimeout(resolve, 0);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
@@ -1792,7 +1792,9 @@ of that name by itself and the template carries one Resource fewer.
|
|
|
1792
1792
|
A template naming the SAM transform reaches the same resource types.
|
|
1793
1793
|
`AWS::Serverless::Api` becomes a REST API with its deployment and stage, and the `Api` event of an
|
|
1794
1794
|
`AWS::Serverless::Function` becomes the path resources, the method and the invoke permission that
|
|
1795
|
-
put the function behind it. Events naming no `RestApiId` share one API on a `Prod` stage.
|
|
1795
|
+
put the function behind it. Events naming no `RestApiId` share one API on a `Prod` stage. An `Auth`
|
|
1796
|
+
block on the API becomes the `AWS::ApiGateway::Authorizer` resources it declares, and `Auth` on the
|
|
1797
|
+
event picks which of them guards that method.
|
|
1796
1798
|
[The SAM section of the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#rest-apis) covers both.
|
|
1797
1799
|
|
|
1798
1800
|
### CDK
|