@kensio/yulin 1.21.3 → 1.21.5
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/assets/sim-cdk-assets-publisher.d.ts +18 -13
- package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +16 -24
- 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/cdk/sim-cdk-cloud-assembly.factory.d.ts +12 -0
- package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.js +16 -7
- 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.d.ts +3 -0
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +16 -13
- 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.d.ts +6 -0
- package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +15 -16
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.d.ts +10 -0
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.js +14 -0
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +3 -2
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +5 -8
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +0 -14
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +2 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +10 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
- 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-deploy-context.d.ts +47 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.js +46 -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 +53 -20
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +79 -32
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +60 -32
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +21 -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-maker.d.ts +31 -0
- package/dist/service/s3/bucket/sim-s3-bucket-maker.js +41 -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-bucket/create-bucket.handler.d.ts +2 -2
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js +4 -12
- 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 +10 -0
- package/dist/service/s3/sim-s3-commands.js +13 -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 +28 -0
- package/dist/service/s3/sim-s3.js +38 -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 +831 -67
- 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
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import type * as simS3Commands from "./command/sim-s3-command.types.js";
|
|
2
2
|
import type { SimS3RequestOptions } from "./command/sim-s3-request-options.js";
|
|
3
|
-
import {
|
|
3
|
+
import { SimS3TaggingOperations } from "./sim-s3-tagging-operations.js";
|
|
4
4
|
/**
|
|
5
5
|
* The AWS operations simulated S3 answers. One delegation per SDK Command,
|
|
6
6
|
* onto the handler in `SimS3Commands` that runs it.
|
|
7
7
|
*
|
|
8
8
|
* `SimS3` extends this. A caller reaches every operation on the one service
|
|
9
9
|
* object, alongside the simulator-only controls `SimS3` holds itself. The
|
|
10
|
-
* operations that
|
|
11
|
-
* `SimS3VersionOperations
|
|
10
|
+
* operations that tag an Object are on `SimS3TaggingOperations`, and the ones
|
|
11
|
+
* that make a Bucket keep what it held are on `SimS3VersionOperations` below
|
|
12
|
+
* it, both of which this extends.
|
|
12
13
|
*/
|
|
13
|
-
export declare abstract class SimS3Operations extends
|
|
14
|
+
export declare abstract class SimS3Operations extends SimS3TaggingOperations {
|
|
14
15
|
/** Handle a Create Bucket Command from the SDK. */
|
|
15
16
|
createBucket(command: simS3Commands.SimCreateBucketCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimCreateBucketCommandOutput>;
|
|
16
17
|
/** Handle a Head Bucket Command from the SDK. */
|
|
@@ -33,6 +34,12 @@ export declare abstract class SimS3Operations extends SimS3VersionOperations {
|
|
|
33
34
|
getPublicAccessBlock(command: simS3Commands.SimGetPublicAccessBlockCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetPublicAccessBlockCommandOutput>;
|
|
34
35
|
/** Handle a Delete Public Access Block Command from the SDK. */
|
|
35
36
|
deletePublicAccessBlock(command: simS3Commands.SimDeletePublicAccessBlockCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeletePublicAccessBlockCommandOutput>;
|
|
37
|
+
/** Handle a Put Bucket Encryption Command from the SDK. */
|
|
38
|
+
putBucketEncryption(command: simS3Commands.SimPutBucketEncryptionCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutBucketEncryptionCommandOutput>;
|
|
39
|
+
/** Handle a Get Bucket Encryption Command from the SDK. */
|
|
40
|
+
getBucketEncryption(command: simS3Commands.SimGetBucketEncryptionCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetBucketEncryptionCommandOutput>;
|
|
41
|
+
/** Handle a Delete Bucket Encryption Command from the SDK. */
|
|
42
|
+
deleteBucketEncryption(command: simS3Commands.SimDeleteBucketEncryptionCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteBucketEncryptionCommandOutput>;
|
|
36
43
|
/** Handle a Put Bucket Website Command from the SDK. */
|
|
37
44
|
putBucketWebsite(command: simS3Commands.SimPutBucketWebsiteCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutBucketWebsiteCommandOutput>;
|
|
38
45
|
/** Handle a Put Bucket Notification Configuration Command from the SDK. */
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SimS3TaggingOperations } from "./sim-s3-tagging-operations.js";
|
|
2
2
|
/**
|
|
3
3
|
* The AWS operations simulated S3 answers. One delegation per SDK Command,
|
|
4
4
|
* onto the handler in `SimS3Commands` that runs it.
|
|
5
5
|
*
|
|
6
6
|
* `SimS3` extends this. A caller reaches every operation on the one service
|
|
7
7
|
* object, alongside the simulator-only controls `SimS3` holds itself. The
|
|
8
|
-
* operations that
|
|
9
|
-
* `SimS3VersionOperations
|
|
8
|
+
* operations that tag an Object are on `SimS3TaggingOperations`, and the ones
|
|
9
|
+
* that make a Bucket keep what it held are on `SimS3VersionOperations` below
|
|
10
|
+
* it, both of which this extends.
|
|
10
11
|
*/
|
|
11
|
-
export class SimS3Operations extends
|
|
12
|
+
export class SimS3Operations extends SimS3TaggingOperations {
|
|
12
13
|
/** Handle a Create Bucket Command from the SDK. */
|
|
13
14
|
async createBucket(command, options) {
|
|
14
15
|
return await this.commands.buckets.create(command, options);
|
|
@@ -53,6 +54,18 @@ export class SimS3Operations extends SimS3VersionOperations {
|
|
|
53
54
|
async deletePublicAccessBlock(command, options) {
|
|
54
55
|
return await this.commands.publicAccessBlocks.delete(command, options);
|
|
55
56
|
}
|
|
57
|
+
/** Handle a Put Bucket Encryption Command from the SDK. */
|
|
58
|
+
async putBucketEncryption(command, options) {
|
|
59
|
+
return await this.commands.encryption.put(command, options);
|
|
60
|
+
}
|
|
61
|
+
/** Handle a Get Bucket Encryption Command from the SDK. */
|
|
62
|
+
async getBucketEncryption(command, options) {
|
|
63
|
+
return await this.commands.encryption.get(command, options);
|
|
64
|
+
}
|
|
65
|
+
/** Handle a Delete Bucket Encryption Command from the SDK. */
|
|
66
|
+
async deleteBucketEncryption(command, options) {
|
|
67
|
+
return await this.commands.encryption.delete(command, options);
|
|
68
|
+
}
|
|
56
69
|
/** Handle a Put Bucket Website Command from the SDK. */
|
|
57
70
|
async putBucketWebsite(command, options) {
|
|
58
71
|
return await this.commands.buckets.putWebsite(command, options);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type * as simS3Commands from "./command/sim-s3-command.types.js";
|
|
2
|
+
import type { SimS3RequestOptions } from "./command/sim-s3-request-options.js";
|
|
3
|
+
import { SimS3VersionOperations } from "./sim-s3-version-operations.js";
|
|
4
|
+
/**
|
|
5
|
+
* The AWS operations that hold tags against an Object.
|
|
6
|
+
*
|
|
7
|
+
* They sit together because real S3 grants each of them a permission of its
|
|
8
|
+
* own, and none of them is reachable through the read and the write of the
|
|
9
|
+
* Object they name.
|
|
10
|
+
*
|
|
11
|
+
* `SimS3Operations` extends this, and `SimS3` extends that, so a caller reaches
|
|
12
|
+
* all of them on the one service object.
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class SimS3TaggingOperations extends SimS3VersionOperations {
|
|
15
|
+
/** Handle a Put Object Tagging Command from the SDK. */
|
|
16
|
+
putObjectTagging(command: simS3Commands.SimPutObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutObjectTaggingCommandOutput>;
|
|
17
|
+
/** Handle a Get Object Tagging Command from the SDK. */
|
|
18
|
+
getObjectTagging(command: simS3Commands.SimGetObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetObjectTaggingCommandOutput>;
|
|
19
|
+
/** Handle a Delete Object Tagging Command from the SDK. */
|
|
20
|
+
deleteObjectTagging(command: simS3Commands.SimDeleteObjectTaggingCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteObjectTaggingCommandOutput>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SimS3VersionOperations } from "./sim-s3-version-operations.js";
|
|
2
|
+
/**
|
|
3
|
+
* The AWS operations that hold tags against an Object.
|
|
4
|
+
*
|
|
5
|
+
* They sit together because real S3 grants each of them a permission of its
|
|
6
|
+
* own, and none of them is reachable through the read and the write of the
|
|
7
|
+
* Object they name.
|
|
8
|
+
*
|
|
9
|
+
* `SimS3Operations` extends this, and `SimS3` extends that, so a caller reaches
|
|
10
|
+
* all of them on the one service object.
|
|
11
|
+
*/
|
|
12
|
+
export class SimS3TaggingOperations extends SimS3VersionOperations {
|
|
13
|
+
/** Handle a Put Object Tagging Command from the SDK. */
|
|
14
|
+
async putObjectTagging(command, options) {
|
|
15
|
+
return await this.commands.objectTagging.put(command, options);
|
|
16
|
+
}
|
|
17
|
+
/** Handle a Get Object Tagging Command from the SDK. */
|
|
18
|
+
async getObjectTagging(command, options) {
|
|
19
|
+
return await this.commands.objectTagging.get(command, options);
|
|
20
|
+
}
|
|
21
|
+
/** Handle a Delete Object Tagging Command from the SDK. */
|
|
22
|
+
async deleteObjectTagging(command, options) {
|
|
23
|
+
return await this.commands.objectTagging.delete(command, options);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -5,6 +5,7 @@ import { type SimS3Properties } from "./sim-s3-commands.js";
|
|
|
5
5
|
import { SimS3Operations } from "./sim-s3-operations.js";
|
|
6
6
|
import type { SimSdkCommandRouter } from "../../sdk/router/sim-sdk-command-router.type.js";
|
|
7
7
|
import type { SimS3NotificationDeliveryFailure } from "./notification/sim-s3-notification-failures.js";
|
|
8
|
+
import type { SimS3ObjectNotifier } from "./notification/sim-s3-object-notifier.js";
|
|
8
9
|
import type { SimS3MountFilesystemOptions } from "./mount/sim-s3-mount.type.js";
|
|
9
10
|
/**
|
|
10
11
|
* Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
|
|
@@ -17,9 +18,25 @@ import type { SimS3MountFilesystemOptions } from "./mount/sim-s3-mount.type.js";
|
|
|
17
18
|
*/
|
|
18
19
|
export declare class SimS3 extends SimS3Operations {
|
|
19
20
|
private readonly bucketAccess;
|
|
21
|
+
private readonly bucketMaker;
|
|
20
22
|
private readonly cfnFactory;
|
|
21
23
|
private readonly sdkRouter;
|
|
22
24
|
constructor(properties?: SimS3Properties);
|
|
25
|
+
/**
|
|
26
|
+
* Make a Bucket in this scope without a `CreateBucketCommand`, and so
|
|
27
|
+
* without a principal to authorize.
|
|
28
|
+
*
|
|
29
|
+
* This is for a Bucket real AWS has provisioned before the code under test
|
|
30
|
+
* runs, which nothing in the simulation is deploying. The CDK bootstrap
|
|
31
|
+
* staging Bucket is the one the simulator makes for itself: `cdk deploy`
|
|
32
|
+
* publishes assets into a Bucket the bootstrap stack created, and a
|
|
33
|
+
* deployment that had to create it would be charged permissions no real
|
|
34
|
+
* deployment needs.
|
|
35
|
+
*
|
|
36
|
+
* A name this scope cannot take is reported the way `CreateBucketCommand`
|
|
37
|
+
* reports it.
|
|
38
|
+
*/
|
|
39
|
+
makeSimBucket(bucketName: SimS3BucketName | string): SimS3Bucket;
|
|
23
40
|
/**
|
|
24
41
|
* Change how many keys one page of an Object listing holds, which real S3
|
|
25
42
|
* fixes at a thousand.
|
|
@@ -36,6 +53,17 @@ export declare class SimS3 extends SimS3Operations {
|
|
|
36
53
|
* real S3 tells the caller who wrote the Object nothing about a delivery.
|
|
37
54
|
*/
|
|
38
55
|
getNotificationDeliveryFailures(): readonly SimS3NotificationDeliveryFailure[];
|
|
56
|
+
/**
|
|
57
|
+
* Get the notifier this scope's Object commands raise their events through.
|
|
58
|
+
*
|
|
59
|
+
* A write that reaches a Bucket without going through an S3 command still
|
|
60
|
+
* owes the Bucket's destinations an event. A CDK BucketDeployment is one. It
|
|
61
|
+
* stands in for a provider function that syncs a directory into the Bucket,
|
|
62
|
+
* and the Bucket notifies whatever it was configured to notify. One notifier
|
|
63
|
+
* serves the scope, so the events a deployment raises are sequenced against
|
|
64
|
+
* the commands' own rather than starting a sequence beside them.
|
|
65
|
+
*/
|
|
66
|
+
objectNotifier(): SimS3ObjectNotifier;
|
|
39
67
|
/**
|
|
40
68
|
* Get the simulated S3 REST API endpoint URL for this Region, which is what
|
|
41
69
|
* an AWS SDK S3 client, and the presigner built on it, is configured with.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SimS3GlobalRegistry } from "./sim-s3-global-registry.js";
|
|
2
2
|
import { SimS3BucketAccess } from "./bucket/sim-s3-bucket-access.js";
|
|
3
|
+
import { SimS3BucketMaker } from "./bucket/sim-s3-bucket-maker.js";
|
|
3
4
|
import { SimS3CloudFormationResourceFactory } from "./cfn/sim-cfn-s3-resource-factory.js";
|
|
4
5
|
import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
|
|
5
6
|
import { SimS3Commands } from "./sim-s3-commands.js";
|
|
@@ -16,6 +17,7 @@ import { SimS3SdkCommandRouter } from "./sdk/sim-s3-sdk-command-router.js";
|
|
|
16
17
|
*/
|
|
17
18
|
export class SimS3 extends SimS3Operations {
|
|
18
19
|
bucketAccess;
|
|
20
|
+
bucketMaker;
|
|
19
21
|
cfnFactory = new SimS3CloudFormationResourceFactory(this);
|
|
20
22
|
sdkRouter = new SimS3SdkCommandRouter(this);
|
|
21
23
|
constructor(properties = {}) {
|
|
@@ -32,6 +34,29 @@ export class SimS3 extends SimS3Operations {
|
|
|
32
34
|
accountRegionScope,
|
|
33
35
|
s3GlobalRegistry,
|
|
34
36
|
});
|
|
37
|
+
this.bucketMaker = new SimS3BucketMaker({
|
|
38
|
+
accountRegionScope,
|
|
39
|
+
buckets,
|
|
40
|
+
s3GlobalRegistry,
|
|
41
|
+
background: this.commands.background,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Make a Bucket in this scope without a `CreateBucketCommand`, and so
|
|
46
|
+
* without a principal to authorize.
|
|
47
|
+
*
|
|
48
|
+
* This is for a Bucket real AWS has provisioned before the code under test
|
|
49
|
+
* runs, which nothing in the simulation is deploying. The CDK bootstrap
|
|
50
|
+
* staging Bucket is the one the simulator makes for itself: `cdk deploy`
|
|
51
|
+
* publishes assets into a Bucket the bootstrap stack created, and a
|
|
52
|
+
* deployment that had to create it would be charged permissions no real
|
|
53
|
+
* deployment needs.
|
|
54
|
+
*
|
|
55
|
+
* A name this scope cannot take is reported the way `CreateBucketCommand`
|
|
56
|
+
* reports it.
|
|
57
|
+
*/
|
|
58
|
+
makeSimBucket(bucketName) {
|
|
59
|
+
return this.bucketMaker.make(bucketName);
|
|
35
60
|
}
|
|
36
61
|
/**
|
|
37
62
|
* Change how many keys one page of an Object listing holds, which real S3
|
|
@@ -55,6 +80,19 @@ export class SimS3 extends SimS3Operations {
|
|
|
55
80
|
getNotificationDeliveryFailures() {
|
|
56
81
|
return this.commands.objectNotifier.deliveryFailures;
|
|
57
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Get the notifier this scope's Object commands raise their events through.
|
|
85
|
+
*
|
|
86
|
+
* A write that reaches a Bucket without going through an S3 command still
|
|
87
|
+
* owes the Bucket's destinations an event. A CDK BucketDeployment is one. It
|
|
88
|
+
* stands in for a provider function that syncs a directory into the Bucket,
|
|
89
|
+
* and the Bucket notifies whatever it was configured to notify. One notifier
|
|
90
|
+
* serves the scope, so the events a deployment raises are sequenced against
|
|
91
|
+
* the commands' own rather than starting a sequence beside them.
|
|
92
|
+
*/
|
|
93
|
+
objectNotifier() {
|
|
94
|
+
return this.commands.objectNotifier;
|
|
95
|
+
}
|
|
58
96
|
/**
|
|
59
97
|
* Get the simulated S3 REST API endpoint URL for this Region, which is what
|
|
60
98
|
* an AWS SDK S3 client, and the presigner built on it, is configured with.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { FilesystemS3BucketStorage, type FilesystemS3BucketStorageProperties } from "./s3-filesystem-storage.js";
|
|
2
|
+
interface FilesystemS3MountStorageProperties extends FilesystemS3BucketStorageProperties {
|
|
3
|
+
/**
|
|
4
|
+
* Whether the mount asked to be able to delete the files under it.
|
|
5
|
+
*/
|
|
6
|
+
readonly allowDelete?: boolean | undefined;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Filesystem-backed storage for a mount that asked to be able to delete.
|
|
10
|
+
*
|
|
11
|
+
* A mounted Bucket refuses a delete by default, for the reason
|
|
12
|
+
* `FilesystemS3BucketStorage.deleteObject` gives. `allowDelete` on the mount
|
|
13
|
+
* is what puts this in its place, and the Bucket then deletes the way an
|
|
14
|
+
* in-memory one does.
|
|
15
|
+
*/
|
|
16
|
+
export declare class DeletingFilesystemS3BucketStorage extends FilesystemS3BucketStorage {
|
|
17
|
+
/**
|
|
18
|
+
* Remove the file backing a simulated Object.
|
|
19
|
+
*
|
|
20
|
+
* The removal is reported, so the Bucket raises the event a removal raises,
|
|
21
|
+
* and the key goes through the same safety checks a read and a write do. A
|
|
22
|
+
* delete naming a path or a file type those refuse is refused here too.
|
|
23
|
+
*/
|
|
24
|
+
deleteObject(key: string): Promise<boolean>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The storage a mounted directory gets, deleting only where the mount said so.
|
|
28
|
+
*
|
|
29
|
+
* The choice is made once, when the directory is mounted, so a Bucket that may
|
|
30
|
+
* delete and a Bucket that may not are two different pieces of storage rather
|
|
31
|
+
* than one holding a flag.
|
|
32
|
+
*/
|
|
33
|
+
export declare function filesystemS3MountStorage(properties: FilesystemS3MountStorageProperties): FilesystemS3BucketStorage;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { unlinkFilesystemS3File } from "./s3-filesystem-deletion.js";
|
|
2
|
+
import { FilesystemS3BucketStorage, } from "./s3-filesystem-storage.js";
|
|
3
|
+
/**
|
|
4
|
+
* Filesystem-backed storage for a mount that asked to be able to delete.
|
|
5
|
+
*
|
|
6
|
+
* A mounted Bucket refuses a delete by default, for the reason
|
|
7
|
+
* `FilesystemS3BucketStorage.deleteObject` gives. `allowDelete` on the mount
|
|
8
|
+
* is what puts this in its place, and the Bucket then deletes the way an
|
|
9
|
+
* in-memory one does.
|
|
10
|
+
*/
|
|
11
|
+
export class DeletingFilesystemS3BucketStorage extends FilesystemS3BucketStorage {
|
|
12
|
+
/**
|
|
13
|
+
* Remove the file backing a simulated Object.
|
|
14
|
+
*
|
|
15
|
+
* The removal is reported, so the Bucket raises the event a removal raises,
|
|
16
|
+
* and the key goes through the same safety checks a read and a write do. A
|
|
17
|
+
* delete naming a path or a file type those refuse is refused here too.
|
|
18
|
+
*/
|
|
19
|
+
async deleteObject(key) {
|
|
20
|
+
return await unlinkFilesystemS3File(this.objectKeys.filePathFor(key));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The storage a mounted directory gets, deleting only where the mount said so.
|
|
25
|
+
*
|
|
26
|
+
* The choice is made once, when the directory is mounted, so a Bucket that may
|
|
27
|
+
* delete and a Bucket that may not are two different pieces of storage rather
|
|
28
|
+
* than one holding a flag.
|
|
29
|
+
*/
|
|
30
|
+
export function filesystemS3MountStorage(properties) {
|
|
31
|
+
return properties.allowDelete === true
|
|
32
|
+
? new DeletingFilesystemS3BucketStorage(properties)
|
|
33
|
+
: new FilesystemS3BucketStorage(properties);
|
|
34
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remove one file, reporting whether there was one to remove.
|
|
3
|
+
*
|
|
4
|
+
* A key the directory does not hold is what an idempotent S3 delete of a
|
|
5
|
+
* missing Object looks like, and the Bucket raises no removal event for it.
|
|
6
|
+
* The directory the file was in stays where it is, since a Bucket has no
|
|
7
|
+
* directories for an empty one to be.
|
|
8
|
+
*/
|
|
9
|
+
export declare function unlinkFilesystemS3File(filePath: string): Promise<boolean>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { unlink } from "node:fs/promises";
|
|
2
|
+
import { isMissingFilesystemPathError } from "./filesystem-path-exists.js";
|
|
3
|
+
/**
|
|
4
|
+
* Remove one file, reporting whether there was one to remove.
|
|
5
|
+
*
|
|
6
|
+
* A key the directory does not hold is what an idempotent S3 delete of a
|
|
7
|
+
* missing Object looks like, and the Bucket raises no removal event for it.
|
|
8
|
+
* The directory the file was in stays where it is, since a Bucket has no
|
|
9
|
+
* directories for an empty one to be.
|
|
10
|
+
*/
|
|
11
|
+
export async function unlinkFilesystemS3File(filePath) {
|
|
12
|
+
try {
|
|
13
|
+
// oxlint-disable-next-line security/detect-non-literal-fs-filename
|
|
14
|
+
await unlink(filePath);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
if (isMissingFilesystemPathError(error)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
/* v8 ignore next */
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { SimS3BucketStorage } from "../s3-bucket-storage.js";
|
|
2
2
|
import type { SimS3Object } from "../../object/s3-object.js";
|
|
3
|
+
import { FilesystemS3ObjectKeys } from "./s3-filesystem-object-keys.js";
|
|
3
4
|
import { SimS3DeclaredSystemMetadata } from "../../object/s3-declared-system-metadata.js";
|
|
4
|
-
interface FilesystemS3BucketStorageProperties {
|
|
5
|
+
export interface FilesystemS3BucketStorageProperties {
|
|
5
6
|
readonly directoryPath: string;
|
|
6
7
|
readonly allowedDirectoryNames?: readonly string[];
|
|
7
8
|
readonly additionalFileExtensions?: readonly string[];
|
|
@@ -21,9 +22,9 @@ interface FilesystemS3BucketStorageProperties {
|
|
|
21
22
|
* potential safety issues.
|
|
22
23
|
*/
|
|
23
24
|
export declare class FilesystemS3BucketStorage implements SimS3BucketStorage {
|
|
25
|
+
protected readonly objectKeys: FilesystemS3ObjectKeys;
|
|
24
26
|
private readonly directoryPath;
|
|
25
27
|
private readonly safety;
|
|
26
|
-
private readonly objectKeys;
|
|
27
28
|
private readonly systemMetadata;
|
|
28
29
|
constructor(properties: FilesystemS3BucketStorageProperties);
|
|
29
30
|
/**
|
|
@@ -45,8 +46,8 @@ export declare class FilesystemS3BucketStorage implements SimS3BucketStorage {
|
|
|
45
46
|
* a Bucket at an ordinary directory of the user's, and the safety checks here
|
|
46
47
|
* are local-development tooling rather than a sandbox boundary. Unlinking
|
|
47
48
|
* someone's files because a test called DeleteObject is the wrong default, so
|
|
48
|
-
*
|
|
49
|
+
* a mount that wants deletes asks for one with `allowDelete` and gets
|
|
50
|
+
* `DeletingFilesystemS3BucketStorage` in place of this.
|
|
49
51
|
*/
|
|
50
52
|
deleteObject(key: string): Promise<boolean>;
|
|
51
53
|
}
|
|
52
|
-
export {};
|
|
@@ -16,9 +16,9 @@ import { filesystemS3ObjectFile } from "./s3-filesystem-object-file.js";
|
|
|
16
16
|
* potential safety issues.
|
|
17
17
|
*/
|
|
18
18
|
export class FilesystemS3BucketStorage {
|
|
19
|
+
objectKeys;
|
|
19
20
|
directoryPath;
|
|
20
21
|
safety;
|
|
21
|
-
objectKeys;
|
|
22
22
|
systemMetadata;
|
|
23
23
|
constructor(properties) {
|
|
24
24
|
this.systemMetadata =
|
|
@@ -76,11 +76,13 @@ export class FilesystemS3BucketStorage {
|
|
|
76
76
|
* a Bucket at an ordinary directory of the user's, and the safety checks here
|
|
77
77
|
* are local-development tooling rather than a sandbox boundary. Unlinking
|
|
78
78
|
* someone's files because a test called DeleteObject is the wrong default, so
|
|
79
|
-
*
|
|
79
|
+
* a mount that wants deletes asks for one with `allowDelete` and gets
|
|
80
|
+
* `DeletingFilesystemS3BucketStorage` in place of this.
|
|
80
81
|
*/
|
|
81
82
|
deleteObject(key) {
|
|
82
83
|
return Promise.reject(new SimS3NotImplemented(`Simulated S3 will not delete ${key} from filesystem-backed storage ` +
|
|
83
84
|
`at ${this.directoryPath}, because it would remove a real file. ` +
|
|
84
|
-
`
|
|
85
|
+
`Mount the directory with { allowDelete: true } to allow it, or use ` +
|
|
86
|
+
`the default in-memory Bucket storage to simulate deletion.`));
|
|
85
87
|
}
|
|
86
88
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SimS3MalformedXml } from "../error/sim-s3.error.js";
|
|
2
|
+
import { SimS3InvalidPart, SimS3InvalidPartOrder, } from "../error/sim-s3-upload.error.js";
|
|
2
3
|
import { SimS3Object } from "../object/s3-object.js";
|
|
3
4
|
import { simS3MultipartETag, simS3UnquotedETag, } from "../object/s3-object-etag.js";
|
|
4
5
|
/**
|
|
@@ -28,6 +29,9 @@ export function simS3CompletedUploadObject(properties) {
|
|
|
28
29
|
metadata: upload.metadata,
|
|
29
30
|
lastModified: properties.completedAt,
|
|
30
31
|
etag: simS3MultipartETag(stored.map((part) => part.etag)),
|
|
32
|
+
storageClass: upload.storageClass,
|
|
33
|
+
serverSideEncryption: upload.serverSideEncryption,
|
|
34
|
+
tags: upload.tags,
|
|
31
35
|
});
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Brand } from "../../../util/brand.type.js";
|
|
2
2
|
import type { SimS3ObjectMetadata } from "../object/s3-object.js";
|
|
3
|
+
import { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
|
|
4
|
+
import type { SimS3ServerSideEncryption } from "../object/s3-server-side-encryption.js";
|
|
5
|
+
import { type SimS3StorageClass } from "../object/s3-storage-class.js";
|
|
3
6
|
export type SimS3UploadId = Brand<string, "SimS3UploadId">;
|
|
4
7
|
/**
|
|
5
8
|
* One numbered part of a multipart upload, as S3 holds it between the
|
|
@@ -21,6 +24,18 @@ interface SimS3MultipartUploadProperties {
|
|
|
21
24
|
readonly key: string;
|
|
22
25
|
readonly metadata: SimS3ObjectMetadata;
|
|
23
26
|
readonly initiated: Date;
|
|
27
|
+
/**
|
|
28
|
+
* Where and how the completed Object will be stored. Real S3 takes both at
|
|
29
|
+
* `CreateMultipartUpload`, alongside the metadata, rather than at completion.
|
|
30
|
+
*/
|
|
31
|
+
readonly storageClass?: SimS3StorageClass;
|
|
32
|
+
readonly serverSideEncryption?: SimS3ServerSideEncryption | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The tags the completed Object will carry. Real S3 takes these at
|
|
35
|
+
* `CreateMultipartUpload` too, for the same reason it takes the metadata
|
|
36
|
+
* there: the request describing the Object arrives before its bytes.
|
|
37
|
+
*/
|
|
38
|
+
readonly tags?: SimS3ObjectTagSet | undefined;
|
|
24
39
|
}
|
|
25
40
|
/**
|
|
26
41
|
* A simulated S3 multipart upload in progress.
|
|
@@ -40,6 +55,9 @@ export declare class SimS3MultipartUpload {
|
|
|
40
55
|
readonly key: string;
|
|
41
56
|
readonly metadata: SimS3ObjectMetadata;
|
|
42
57
|
readonly initiated: Date;
|
|
58
|
+
readonly storageClass: SimS3StorageClass;
|
|
59
|
+
readonly serverSideEncryption: SimS3ServerSideEncryption | undefined;
|
|
60
|
+
readonly tags: SimS3ObjectTagSet;
|
|
43
61
|
private readonly parts;
|
|
44
62
|
constructor(properties: SimS3MultipartUploadProperties);
|
|
45
63
|
/**
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
+
import { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
|
|
3
|
+
import { simS3DefaultStorageClass, } from "../object/s3-storage-class.js";
|
|
2
4
|
/**
|
|
3
5
|
* One numbered part of a multipart upload, as S3 holds it between the
|
|
4
6
|
* `UploadPart` that stored it and the `CompleteMultipartUpload` that joins it
|
|
@@ -37,12 +39,18 @@ export class SimS3MultipartUpload {
|
|
|
37
39
|
key;
|
|
38
40
|
metadata;
|
|
39
41
|
initiated;
|
|
42
|
+
storageClass;
|
|
43
|
+
serverSideEncryption;
|
|
44
|
+
tags;
|
|
40
45
|
parts = new Map();
|
|
41
46
|
constructor(properties) {
|
|
42
47
|
this.uploadId = properties.uploadId;
|
|
43
48
|
this.key = properties.key;
|
|
44
49
|
this.metadata = properties.metadata;
|
|
45
50
|
this.initiated = new Date(properties.initiated);
|
|
51
|
+
this.storageClass = properties.storageClass ?? simS3DefaultStorageClass;
|
|
52
|
+
this.serverSideEncryption = properties.serverSideEncryption;
|
|
53
|
+
this.tags = properties.tags ?? SimS3ObjectTagSet.empty();
|
|
46
54
|
}
|
|
47
55
|
/**
|
|
48
56
|
* Store a numbered part, replacing whatever was under that number.
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { SimS3ObjectMetadata } from "../object/s3-object.js";
|
|
2
|
+
import type { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
|
|
3
|
+
import type { SimS3ServerSideEncryption } from "../object/s3-server-side-encryption.js";
|
|
4
|
+
import type { SimS3StorageClass } from "../object/s3-storage-class.js";
|
|
2
5
|
import { SimS3MultipartUpload, type SimS3UploadId } from "./sim-s3-multipart-upload.js";
|
|
3
6
|
interface SimS3StartUploadProperties {
|
|
4
7
|
readonly key: string;
|
|
5
8
|
readonly metadata: SimS3ObjectMetadata;
|
|
6
9
|
readonly initiated: Date;
|
|
10
|
+
readonly storageClass?: SimS3StorageClass;
|
|
11
|
+
readonly serverSideEncryption?: SimS3ServerSideEncryption | undefined;
|
|
12
|
+
readonly tags?: SimS3ObjectTagSet | undefined;
|
|
7
13
|
}
|
|
8
14
|
/**
|
|
9
15
|
* The multipart uploads one Bucket has in progress.
|
|
@@ -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
|
+
}
|