@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
|
@@ -60,7 +60,7 @@ export class SimS3LifecycleConfiguration {
|
|
|
60
60
|
* shortest one.
|
|
61
61
|
*/
|
|
62
62
|
expires(object, now) {
|
|
63
|
-
return this.enabledRules
|
|
63
|
+
return this.enabledRules.some((rule) => rule.Expiration !== undefined &&
|
|
64
64
|
simS3LifecycleRuleSelects(rule, object) &&
|
|
65
65
|
simS3LifecycleReached(simS3ObjectExpiryInstant(rule.Expiration, object.lastModified), now));
|
|
66
66
|
}
|
|
@@ -73,7 +73,7 @@ export class SimS3LifecycleConfiguration {
|
|
|
73
73
|
* reaches the third and everything older.
|
|
74
74
|
*/
|
|
75
75
|
expiresNoncurrent(version, now) {
|
|
76
|
-
return this.enabledRules
|
|
76
|
+
return this.enabledRules.some((rule) => {
|
|
77
77
|
const expiration = rule.NoncurrentVersionExpiration;
|
|
78
78
|
return (expiration !== undefined &&
|
|
79
79
|
version.newerVersionsAhead >=
|
|
@@ -91,7 +91,7 @@ export class SimS3LifecycleConfiguration {
|
|
|
91
91
|
* key in a listing once its last version has gone.
|
|
92
92
|
*/
|
|
93
93
|
expiresDeleteMarker(key) {
|
|
94
|
-
return this.enabledRules
|
|
94
|
+
return this.enabledRules.some((rule) => rule.Expiration?.ExpiredObjectDeleteMarker === true &&
|
|
95
95
|
simS3LifecycleRuleSelects(rule, { key }));
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
@@ -99,7 +99,7 @@ export class SimS3LifecycleConfiguration {
|
|
|
99
99
|
* instant.
|
|
100
100
|
*/
|
|
101
101
|
abandons(upload, now) {
|
|
102
|
-
return this.enabledRules
|
|
102
|
+
return this.enabledRules.some((rule) => rule.AbortIncompleteMultipartUpload !== undefined &&
|
|
103
103
|
simS3LifecycleRuleSelects(rule, { key: upload.key }) &&
|
|
104
104
|
simS3LifecycleReached(simS3UploadAbortInstant(rule.AbortIncompleteMultipartUpload, upload.initiated), now));
|
|
105
105
|
}
|
|
@@ -108,9 +108,10 @@ export class SimS3LifecycleConfiguration {
|
|
|
108
108
|
*
|
|
109
109
|
* Read from the stored rules rather than from `rules`, because every read of
|
|
110
110
|
* a Bucket asks and cloning the whole configuration each time would be the
|
|
111
|
-
* cost of having one.
|
|
111
|
+
* cost of having one. A transition is worked out from these by
|
|
112
|
+
* `simS3TransitionedObjectClass`.
|
|
112
113
|
*/
|
|
113
|
-
enabledRules() {
|
|
114
|
+
get enabledRules() {
|
|
114
115
|
return this.storedRules.filter((rule) => rule.Status === "Enabled");
|
|
115
116
|
}
|
|
116
117
|
}
|
|
@@ -32,3 +32,8 @@ export declare function simS3UploadAbortInstant(abort: SimS3LifecycleAbortIncomp
|
|
|
32
32
|
* Whether simulated time has reached a boundary.
|
|
33
33
|
*/
|
|
34
34
|
export declare function simS3LifecycleReached(boundary: Date | undefined, now: Date): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The instant a number of days after another one, which is how every lifecycle
|
|
37
|
+
* boundary measured in days is reached.
|
|
38
|
+
*/
|
|
39
|
+
export declare function simS3LifecycleAfterDays(from: Date, days: number): Date;
|
|
@@ -14,7 +14,7 @@ const millisecondsPerDay = 24 * 60 * 60 * 1000;
|
|
|
14
14
|
*/
|
|
15
15
|
export function simS3ObjectExpiryInstant(expiration, writtenAt) {
|
|
16
16
|
if (expiration.Days !== undefined) {
|
|
17
|
-
return
|
|
17
|
+
return simS3LifecycleAfterDays(writtenAt, expiration.Days);
|
|
18
18
|
}
|
|
19
19
|
if (expiration.Date !== undefined) {
|
|
20
20
|
return new Date(expiration.Date);
|
|
@@ -35,7 +35,7 @@ export function simS3NoncurrentExpiryInstant(expiration, noncurrentSince) {
|
|
|
35
35
|
expiration.NoncurrentDays === undefined) {
|
|
36
36
|
return undefined;
|
|
37
37
|
}
|
|
38
|
-
return
|
|
38
|
+
return simS3LifecycleAfterDays(noncurrentSince, expiration.NoncurrentDays);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* The instant an `AbortIncompleteMultipartUpload` abandons an upload started
|
|
@@ -45,7 +45,7 @@ export function simS3UploadAbortInstant(abort, initiated) {
|
|
|
45
45
|
if (abort.DaysAfterInitiation === undefined) {
|
|
46
46
|
return undefined;
|
|
47
47
|
}
|
|
48
|
-
return
|
|
48
|
+
return simS3LifecycleAfterDays(initiated, abort.DaysAfterInitiation);
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Whether simulated time has reached a boundary.
|
|
@@ -53,6 +53,10 @@ export function simS3UploadAbortInstant(abort, initiated) {
|
|
|
53
53
|
export function simS3LifecycleReached(boundary, now) {
|
|
54
54
|
return boundary !== undefined && now.getTime() >= boundary.getTime();
|
|
55
55
|
}
|
|
56
|
-
|
|
56
|
+
/**
|
|
57
|
+
* The instant a number of days after another one, which is how every lifecycle
|
|
58
|
+
* boundary measured in days is reached.
|
|
59
|
+
*/
|
|
60
|
+
export function simS3LifecycleAfterDays(from, days) {
|
|
57
61
|
return new Date(from.getTime() + days * millisecondsPerDay);
|
|
58
62
|
}
|
|
@@ -1,23 +1,10 @@
|
|
|
1
1
|
import type { SimS3LifecycleRule } from "../../command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.js";
|
|
2
|
-
|
|
3
|
-
* What a lifecycle rule looks at to decide whether it selects something.
|
|
4
|
-
*
|
|
5
|
-
* An Object states its size and a multipart upload leaves it out. Half an
|
|
6
|
-
* upload has no size for a rule to measure, and real S3 has no size to
|
|
7
|
-
* measure either until the parts are joined.
|
|
8
|
-
*/
|
|
9
|
-
export interface SimS3LifecycleSubject {
|
|
10
|
-
readonly key: string;
|
|
11
|
-
readonly size?: number | undefined;
|
|
12
|
-
}
|
|
2
|
+
import type { SimS3LifecycleSubject } from "./sim-s3-lifecycle-subject.js";
|
|
13
3
|
/**
|
|
14
4
|
* Whether a rule selects the Object or upload a key names.
|
|
15
5
|
*
|
|
16
6
|
* A rule states its scope either as the older top-level `Prefix` or as a
|
|
17
7
|
* `Filter`. A rule with no scope at all covers every key in the Bucket. Real
|
|
18
8
|
* S3 refuses a rule stating both.
|
|
19
|
-
*
|
|
20
|
-
* Simulated S3 has no Object tags. A `Tag` or a `TagFilters` entry names a
|
|
21
|
-
* condition the simulator has no answer for, and selects no key.
|
|
22
9
|
*/
|
|
23
10
|
export declare function simS3LifecycleRuleSelects(rule: SimS3LifecycleRule, subject: SimS3LifecycleSubject): boolean;
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
* A rule states its scope either as the older top-level `Prefix` or as a
|
|
5
5
|
* `Filter`. A rule with no scope at all covers every key in the Bucket. Real
|
|
6
6
|
* S3 refuses a rule stating both.
|
|
7
|
-
*
|
|
8
|
-
* Simulated S3 has no Object tags. A `Tag` or a `TagFilters` entry names a
|
|
9
|
-
* condition the simulator has no answer for, and selects no key.
|
|
10
7
|
*/
|
|
11
8
|
export function simS3LifecycleRuleSelects(rule, subject) {
|
|
12
9
|
if (rule.Filter === undefined) {
|
|
@@ -19,16 +16,27 @@ function filterSelects(filter, subject) {
|
|
|
19
16
|
return conjunctionSelects(filter.And, subject);
|
|
20
17
|
}
|
|
21
18
|
if (filter.Tag !== undefined) {
|
|
22
|
-
|
|
19
|
+
// A bare `Tag` filter is scoped by the tag alone. It says nothing about
|
|
20
|
+
// the key, so every Object carrying the tag is selected wherever it is.
|
|
21
|
+
return tagsSelect([filter.Tag], subject);
|
|
23
22
|
}
|
|
24
23
|
return (subject.key.startsWith(filter.Prefix ?? "") && sizeWithin(filter, subject));
|
|
25
24
|
}
|
|
26
25
|
function conjunctionSelects(operator, subject) {
|
|
27
|
-
if ((operator.Tags ?? []).length > 0) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
26
|
return (subject.key.startsWith(operator.Prefix ?? "") &&
|
|
31
|
-
sizeWithin(operator, subject)
|
|
27
|
+
sizeWithin(operator, subject) &&
|
|
28
|
+
tagsSelect(operator.Tags ?? [], subject));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Whether the subject carries every tag the filter names.
|
|
32
|
+
*
|
|
33
|
+
* Both halves of a tag have to match, because a rule for `archive=true` says
|
|
34
|
+
* nothing about an Object tagged `archive=false`. A subject carrying no tag
|
|
35
|
+
* set at all, meaning an upload in progress or a delete marker, matches no
|
|
36
|
+
* named tag and is selected only by a filter naming none.
|
|
37
|
+
*/
|
|
38
|
+
function tagsSelect(tags, subject) {
|
|
39
|
+
return tags.every((tag) => subject.tags?.has(tag.Key ?? "", tag.Value ?? "") === true);
|
|
32
40
|
}
|
|
33
41
|
/**
|
|
34
42
|
* Whether the subject's size falls inside the bounds a filter states.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { SimS3ObjectTagSet } from "../../object/s3-object-tags.js";
|
|
2
|
+
/**
|
|
3
|
+
* What a lifecycle rule looks at to decide whether it selects something.
|
|
4
|
+
*
|
|
5
|
+
* An Object states its size and its tags, and a multipart upload states
|
|
6
|
+
* neither. Half an upload has no size for a rule to measure, and real S3 has no
|
|
7
|
+
* size to measure either until the parts are joined. A delete marker holds no
|
|
8
|
+
* Object, so it carries no tags for a rule to match.
|
|
9
|
+
*/
|
|
10
|
+
export interface SimS3LifecycleSubject {
|
|
11
|
+
readonly key: string;
|
|
12
|
+
readonly size?: number | undefined;
|
|
13
|
+
readonly tags?: SimS3ObjectTagSet | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* An Object as a lifecycle rule reads it.
|
|
17
|
+
*/
|
|
18
|
+
export interface SimS3LifecycleObject extends SimS3LifecycleSubject {
|
|
19
|
+
readonly size: number;
|
|
20
|
+
readonly lastModified: Date;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A noncurrent version as a lifecycle rule reads it.
|
|
24
|
+
*
|
|
25
|
+
* `newerVersionsAhead` is how many noncurrent versions of the same key are
|
|
26
|
+
* newer than this one, which is what `NewerNoncurrentVersions` counts. The
|
|
27
|
+
* current version is not one of them, since a rule for noncurrent versions
|
|
28
|
+
* never reaches it.
|
|
29
|
+
*/
|
|
30
|
+
export interface SimS3LifecycleNoncurrentVersion extends SimS3LifecycleSubject {
|
|
31
|
+
readonly size: number;
|
|
32
|
+
readonly noncurrentSince: Date | undefined;
|
|
33
|
+
readonly newerVersionsAhead: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A multipart upload in progress as a lifecycle rule reads it.
|
|
37
|
+
*/
|
|
38
|
+
export interface SimS3LifecycleUpload {
|
|
39
|
+
readonly key: string;
|
|
40
|
+
readonly initiated: Date;
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -14,6 +14,11 @@ import type { SimS3LifecycleConfiguration } from "./sim-s3-lifecycle-configurati
|
|
|
14
14
|
* `simS3ObjectExpiryInstant` for why the boundary is a pure function of the
|
|
15
15
|
* current time.
|
|
16
16
|
*
|
|
17
|
+
* A transition is answered here as well. An Object past the day a
|
|
18
|
+
* `Transitions` rule names reads back in the class that rule moves it to, and
|
|
19
|
+
* the bytes stay where they are, which is all a transition does to an Object a
|
|
20
|
+
* caller can still read.
|
|
21
|
+
*
|
|
17
22
|
* Nothing is announced. Real S3 raises `s3:LifecycleExpiration:Delete` for an
|
|
18
23
|
* expiry, and that event family is among the ones simulated S3 leaves out.
|
|
19
24
|
*
|
|
@@ -41,6 +46,15 @@ export declare class SimS3LifecycleSweep {
|
|
|
41
46
|
* ones still there.
|
|
42
47
|
*/
|
|
43
48
|
objects(objects: readonly SimS3Object[]): Promise<SimS3Object[]>;
|
|
49
|
+
/**
|
|
50
|
+
* The Object in the class the rules have transitioned it into.
|
|
51
|
+
*
|
|
52
|
+
* The class is worked out on each read rather than written back, for the
|
|
53
|
+
* same reason an expiry is: it is a pure function of the rules and the
|
|
54
|
+
* current time, and storage that maps Objects onto files has nowhere to
|
|
55
|
+
* record one. See `simS3ObjectExpiryInstant`.
|
|
56
|
+
*/
|
|
57
|
+
private transitioned;
|
|
44
58
|
/**
|
|
45
59
|
* Take one expired key out of what a read of the Bucket can see.
|
|
46
60
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { simS3TransitionedObjectClass } from "./sim-s3-lifecycle-transition.js";
|
|
1
2
|
/**
|
|
2
3
|
* One pass over what a Bucket's lifecycle rules have expired.
|
|
3
4
|
*
|
|
@@ -10,6 +11,11 @@
|
|
|
10
11
|
* `simS3ObjectExpiryInstant` for why the boundary is a pure function of the
|
|
11
12
|
* current time.
|
|
12
13
|
*
|
|
14
|
+
* A transition is answered here as well. An Object past the day a
|
|
15
|
+
* `Transitions` rule names reads back in the class that rule moves it to, and
|
|
16
|
+
* the bytes stay where they are, which is all a transition does to an Object a
|
|
17
|
+
* caller can still read.
|
|
18
|
+
*
|
|
13
19
|
* Nothing is announced. Real S3 raises `s3:LifecycleExpiration:Delete` for an
|
|
14
20
|
* expiry, and that event family is among the ones simulated S3 leaves out.
|
|
15
21
|
*
|
|
@@ -37,9 +43,12 @@ export class SimS3LifecycleSweep {
|
|
|
37
43
|
* so a read hands on whatever it gets. A key holding nothing stays nothing.
|
|
38
44
|
*/
|
|
39
45
|
async object(object) {
|
|
40
|
-
if (object === undefined
|
|
46
|
+
if (object === undefined) {
|
|
41
47
|
return object;
|
|
42
48
|
}
|
|
49
|
+
if (!this.expires(object)) {
|
|
50
|
+
return this.transitioned(object);
|
|
51
|
+
}
|
|
43
52
|
await this.expire(object.key);
|
|
44
53
|
return undefined;
|
|
45
54
|
}
|
|
@@ -55,7 +64,27 @@ export class SimS3LifecycleSweep {
|
|
|
55
64
|
await Promise.all(expiredKeys.values().map(async (key) => {
|
|
56
65
|
await this.expire(key);
|
|
57
66
|
}));
|
|
58
|
-
return objects
|
|
67
|
+
return objects
|
|
68
|
+
.filter((object) => !expiredKeys.has(object.key))
|
|
69
|
+
.map((object) => this.transitioned(object));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The Object in the class the rules have transitioned it into.
|
|
73
|
+
*
|
|
74
|
+
* The class is worked out on each read rather than written back, for the
|
|
75
|
+
* same reason an expiry is: it is a pure function of the rules and the
|
|
76
|
+
* current time, and storage that maps Objects onto files has nowhere to
|
|
77
|
+
* record one. See `simS3ObjectExpiryInstant`.
|
|
78
|
+
*/
|
|
79
|
+
transitioned(object) {
|
|
80
|
+
if (this.lifecycle.isEmpty) {
|
|
81
|
+
return object;
|
|
82
|
+
}
|
|
83
|
+
const storageClass = simS3TransitionedObjectClass(this.lifecycle.enabledRules, lifecycleObject(object), this.now);
|
|
84
|
+
if (storageClass === undefined || storageClass === object.storageClass) {
|
|
85
|
+
return object;
|
|
86
|
+
}
|
|
87
|
+
return object.withStorageClass(storageClass);
|
|
59
88
|
}
|
|
60
89
|
/**
|
|
61
90
|
* Take one expired key out of what a read of the Bucket can see.
|
|
@@ -85,5 +114,6 @@ function lifecycleObject(object) {
|
|
|
85
114
|
key: object.key,
|
|
86
115
|
size: object.body.length,
|
|
87
116
|
lastModified: object.lastModified,
|
|
117
|
+
tags: object.tags,
|
|
88
118
|
};
|
|
89
119
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { SimS3LifecycleNoncurrentVersionTransition, SimS3LifecycleTransition } from "../../command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.js";
|
|
2
|
+
import { type SimS3StorageClass } from "../../object/s3-storage-class.js";
|
|
3
|
+
import type { SimS3LifecycleNoncurrentVersion } from "./sim-s3-lifecycle-subject.js";
|
|
4
|
+
/**
|
|
5
|
+
* One transition a rule has reached, as the class it moves an Object into and
|
|
6
|
+
* the instant it moved.
|
|
7
|
+
*
|
|
8
|
+
* The instant is what decides between two transitions that have both been
|
|
9
|
+
* reached. Real S3 walks an Object down the classes a rule lists as their days
|
|
10
|
+
* pass, so the one that came last is where the Object is now.
|
|
11
|
+
*/
|
|
12
|
+
export interface SimS3ReachedTransition {
|
|
13
|
+
readonly storageClass: SimS3StorageClass;
|
|
14
|
+
readonly at: Date;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The transition a `Transitions` entry has made by an instant, if it has.
|
|
18
|
+
*
|
|
19
|
+
* `Days` counts from when the Object was written and `Date` names the day
|
|
20
|
+
* itself, the same two forms an `Expiration` takes. A transition naming
|
|
21
|
+
* neither, or naming no storage class, moves nothing.
|
|
22
|
+
*/
|
|
23
|
+
export declare function simS3ReachedTransitionOf(transition: SimS3LifecycleTransition, writtenAt: Date, now: Date): SimS3ReachedTransition | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* The transition a `NoncurrentVersionTransitions` entry has made by an
|
|
26
|
+
* instant, counted from when the version stopped being the current one.
|
|
27
|
+
*
|
|
28
|
+
* A version that is still current has no such instant, as it has none for a
|
|
29
|
+
* `NoncurrentVersionExpiration`. `NewerNoncurrentVersions` holds back the most
|
|
30
|
+
* recent noncurrent versions as it does for an expiry, so a rule keeping two
|
|
31
|
+
* reaches the third and everything older.
|
|
32
|
+
*/
|
|
33
|
+
export declare function simS3ReachedNoncurrentTransitionOf(transition: SimS3LifecycleNoncurrentVersionTransition, version: SimS3LifecycleNoncurrentVersion, now: Date): SimS3ReachedTransition | undefined;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { simS3StorageClassFrom, } from "../../object/s3-storage-class.js";
|
|
2
|
+
import { simS3LifecycleAfterDays, simS3LifecycleReached, } from "./sim-s3-lifecycle-expiry.js";
|
|
3
|
+
/**
|
|
4
|
+
* The transition a `Transitions` entry has made by an instant, if it has.
|
|
5
|
+
*
|
|
6
|
+
* `Days` counts from when the Object was written and `Date` names the day
|
|
7
|
+
* itself, the same two forms an `Expiration` takes. A transition naming
|
|
8
|
+
* neither, or naming no storage class, moves nothing.
|
|
9
|
+
*/
|
|
10
|
+
export function simS3ReachedTransitionOf(transition, writtenAt, now) {
|
|
11
|
+
return reached(transitionInstant(transition, writtenAt), transition.StorageClass, now);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The transition a `NoncurrentVersionTransitions` entry has made by an
|
|
15
|
+
* instant, counted from when the version stopped being the current one.
|
|
16
|
+
*
|
|
17
|
+
* A version that is still current has no such instant, as it has none for a
|
|
18
|
+
* `NoncurrentVersionExpiration`. `NewerNoncurrentVersions` holds back the most
|
|
19
|
+
* recent noncurrent versions as it does for an expiry, so a rule keeping two
|
|
20
|
+
* reaches the third and everything older.
|
|
21
|
+
*/
|
|
22
|
+
export function simS3ReachedNoncurrentTransitionOf(transition, version, now) {
|
|
23
|
+
const { noncurrentSince } = version;
|
|
24
|
+
if (noncurrentSince === undefined ||
|
|
25
|
+
transition.NoncurrentDays === undefined ||
|
|
26
|
+
version.newerVersionsAhead < (transition.NewerNoncurrentVersions ?? 0)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
return reached(simS3LifecycleAfterDays(noncurrentSince, transition.NoncurrentDays), transition.StorageClass, now);
|
|
30
|
+
}
|
|
31
|
+
function transitionInstant(transition, writtenAt) {
|
|
32
|
+
if (transition.Days !== undefined) {
|
|
33
|
+
return simS3LifecycleAfterDays(writtenAt, transition.Days);
|
|
34
|
+
}
|
|
35
|
+
if (transition.Date !== undefined) {
|
|
36
|
+
return new Date(transition.Date);
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
function reached(at, storageClass, now) {
|
|
41
|
+
const target = simS3StorageClassFrom(storageClass, "a lifecycle transition");
|
|
42
|
+
if (at === undefined || target === undefined) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return simS3LifecycleReached(at, now)
|
|
46
|
+
? { storageClass: target, at }
|
|
47
|
+
: undefined;
|
|
48
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SimS3LifecycleRule } from "../../command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.js";
|
|
2
|
+
import type { SimS3StorageClass } from "../../object/s3-storage-class.js";
|
|
3
|
+
import type { SimS3LifecycleNoncurrentVersion, SimS3LifecycleObject } from "./sim-s3-lifecycle-subject.js";
|
|
4
|
+
/**
|
|
5
|
+
* The class the rules have transitioned an Object into by an instant.
|
|
6
|
+
*
|
|
7
|
+
* Every rule selecting the Object contributes the transitions it has reached,
|
|
8
|
+
* because real S3 applies the whole configuration to a key rather than the
|
|
9
|
+
* first rule that matches it.
|
|
10
|
+
*/
|
|
11
|
+
export declare function simS3TransitionedObjectClass(rules: readonly SimS3LifecycleRule[], object: SimS3LifecycleObject, now: Date): SimS3StorageClass | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* The class the rules have transitioned a noncurrent version into by an
|
|
14
|
+
* instant.
|
|
15
|
+
*/
|
|
16
|
+
export declare function simS3TransitionedVersionClass(rules: readonly SimS3LifecycleRule[], version: SimS3LifecycleNoncurrentVersion, now: Date): SimS3StorageClass | undefined;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { simS3ReachedNoncurrentTransitionOf, simS3ReachedTransitionOf, } from "./sim-s3-lifecycle-transition-instant.js";
|
|
2
|
+
import { simS3LifecycleRuleSelects } from "./sim-s3-lifecycle-selection.js";
|
|
3
|
+
/**
|
|
4
|
+
* The class the rules have transitioned an Object into by an instant.
|
|
5
|
+
*
|
|
6
|
+
* Every rule selecting the Object contributes the transitions it has reached,
|
|
7
|
+
* because real S3 applies the whole configuration to a key rather than the
|
|
8
|
+
* first rule that matches it.
|
|
9
|
+
*/
|
|
10
|
+
export function simS3TransitionedObjectClass(rules, object, now) {
|
|
11
|
+
return latestReached(rules
|
|
12
|
+
.filter((rule) => simS3LifecycleRuleSelects(rule, object))
|
|
13
|
+
.flatMap((rule) => reachedTransitions(rule.Transitions, (transition) => simS3ReachedTransitionOf(transition, object.lastModified, now))));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The class the rules have transitioned a noncurrent version into by an
|
|
17
|
+
* instant.
|
|
18
|
+
*/
|
|
19
|
+
export function simS3TransitionedVersionClass(rules, version, now) {
|
|
20
|
+
return latestReached(rules
|
|
21
|
+
.filter((rule) => simS3LifecycleRuleSelects(rule, version))
|
|
22
|
+
.flatMap((rule) => reachedTransitions(rule.NoncurrentVersionTransitions, (transition) => simS3ReachedNoncurrentTransitionOf(transition, version, now))));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The transitions among a rule's that have been reached.
|
|
26
|
+
*/
|
|
27
|
+
function reachedTransitions(transitions, reach) {
|
|
28
|
+
return (transitions ?? [])
|
|
29
|
+
.map((transition) => reach(transition))
|
|
30
|
+
.filter((transition) => transition !== undefined);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The class an Object is in once every transition that has been reached has
|
|
34
|
+
* been applied, or nothing where none has.
|
|
35
|
+
*
|
|
36
|
+
* The latest one wins. Two reached at the same instant are settled by the
|
|
37
|
+
* order the rules list them in, so the last transition a configuration states
|
|
38
|
+
* is where an Object past all of them ends up.
|
|
39
|
+
*/
|
|
40
|
+
function latestReached(transitions) {
|
|
41
|
+
return transitions
|
|
42
|
+
.toSorted((one, other) => one.at.getTime() - other.at.getTime())
|
|
43
|
+
.at(-1)?.storageClass;
|
|
44
|
+
}
|
|
@@ -41,5 +41,13 @@ export declare class SimS3NoncurrentSweep {
|
|
|
41
41
|
* marker was the only thing left holding the key there.
|
|
42
42
|
*/
|
|
43
43
|
private sweepDeleteMarker;
|
|
44
|
+
/**
|
|
45
|
+
* Move a surviving noncurrent version into the class the rules have
|
|
46
|
+
* transitioned it to.
|
|
47
|
+
*
|
|
48
|
+
* The current version and a delete marker are left alone. Neither is
|
|
49
|
+
* something a `NoncurrentVersionTransitions` rule reaches.
|
|
50
|
+
*/
|
|
51
|
+
private transition;
|
|
44
52
|
private expires;
|
|
45
53
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { simS3TransitionedVersionClass } from "./sim-s3-lifecycle-transition.js";
|
|
1
2
|
/**
|
|
2
3
|
* One pass over what a Bucket's rules have expired in its version history.
|
|
3
4
|
*
|
|
@@ -45,6 +46,7 @@ export class SimS3NoncurrentSweep {
|
|
|
45
46
|
for (const [index, version] of held.entries()) {
|
|
46
47
|
if (index === 0 || !this.expires(version, index - 1)) {
|
|
47
48
|
kept.push(version);
|
|
49
|
+
this.transition(version, index - 1);
|
|
48
50
|
continue;
|
|
49
51
|
}
|
|
50
52
|
versions.removeExpired(version.key, version.versionId);
|
|
@@ -66,12 +68,37 @@ export class SimS3NoncurrentSweep {
|
|
|
66
68
|
versions.removeExpired(marker.key, marker.versionId);
|
|
67
69
|
}
|
|
68
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Move a surviving noncurrent version into the class the rules have
|
|
73
|
+
* transitioned it to.
|
|
74
|
+
*
|
|
75
|
+
* The current version and a delete marker are left alone. Neither is
|
|
76
|
+
* something a `NoncurrentVersionTransitions` rule reaches.
|
|
77
|
+
*/
|
|
78
|
+
transition(version, ahead) {
|
|
79
|
+
if (ahead < 0 || version.isDeleteMarker) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const storageClass = simS3TransitionedVersionClass(this.lifecycle.enabledRules, {
|
|
83
|
+
key: version.key,
|
|
84
|
+
size: version.object.body.length,
|
|
85
|
+
noncurrentSince: version.noncurrentSince,
|
|
86
|
+
newerVersionsAhead: ahead,
|
|
87
|
+
tags: version.object.tags,
|
|
88
|
+
}, this.now);
|
|
89
|
+
if (storageClass !== undefined) {
|
|
90
|
+
version.transitionTo(storageClass);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
69
93
|
expires(version, ahead) {
|
|
70
94
|
return this.lifecycle.expiresNoncurrent({
|
|
71
95
|
key: version.key,
|
|
72
96
|
size: version.isDeleteMarker ? 0 : version.object.body.length,
|
|
73
97
|
noncurrentSince: version.noncurrentSince,
|
|
74
98
|
newerVersionsAhead: ahead,
|
|
99
|
+
// A delete marker holds no Object, so it carries no tags and a rule
|
|
100
|
+
// filtering on one leaves it alone.
|
|
101
|
+
tags: version.isDeleteMarker ? undefined : version.object.tags,
|
|
75
102
|
}, this.now);
|
|
76
103
|
}
|
|
77
104
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* has many more, and the ones it has that this simulator cannot produce are
|
|
6
6
|
* refused by name rather than accepted and never delivered.
|
|
7
7
|
*/
|
|
8
|
-
export declare const SIM_S3_NOTIFICATION_EVENTS: readonly ["s3:ObjectCreated:Put", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"];
|
|
8
|
+
export declare const SIM_S3_NOTIFICATION_EVENTS: readonly ["s3:ObjectCreated:Put", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"];
|
|
9
9
|
export type SimS3NotificationEvent = (typeof SIM_S3_NOTIFICATION_EVENTS)[number];
|
|
10
10
|
/**
|
|
11
11
|
* The concrete events a configured event type covers.
|
|
@@ -13,6 +13,8 @@ export const SIM_S3_NOTIFICATION_EVENTS = [
|
|
|
13
13
|
"s3:ObjectCreated:CompleteMultipartUpload",
|
|
14
14
|
"s3:ObjectRemoved:Delete",
|
|
15
15
|
"s3:ObjectRemoved:DeleteMarkerCreated",
|
|
16
|
+
"s3:ObjectTagging:Put",
|
|
17
|
+
"s3:ObjectTagging:Delete",
|
|
16
18
|
];
|
|
17
19
|
/**
|
|
18
20
|
* What each configurable event type expands to.
|
|
@@ -50,6 +52,9 @@ const eventExpansions = new Map([
|
|
|
50
52
|
"s3:ObjectRemoved:DeleteMarkerCreated",
|
|
51
53
|
["s3:ObjectRemoved:DeleteMarkerCreated"],
|
|
52
54
|
],
|
|
55
|
+
["s3:ObjectTagging:*", ["s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"]],
|
|
56
|
+
["s3:ObjectTagging:Put", ["s3:ObjectTagging:Put"]],
|
|
57
|
+
["s3:ObjectTagging:Delete", ["s3:ObjectTagging:Delete"]],
|
|
53
58
|
]);
|
|
54
59
|
/**
|
|
55
60
|
* The concrete events a configured event type covers.
|
|
@@ -21,9 +21,6 @@ export const SIM_S3_UNSIMULATED_NOTIFICATION_EVENTS = new Set([
|
|
|
21
21
|
"s3:ObjectRestore:Completed",
|
|
22
22
|
"s3:ObjectRestore:Delete",
|
|
23
23
|
"s3:ObjectRestore:Post",
|
|
24
|
-
"s3:ObjectTagging:*",
|
|
25
|
-
"s3:ObjectTagging:Delete",
|
|
26
|
-
"s3:ObjectTagging:Put",
|
|
27
24
|
"s3:ReducedRedundancyLostObject",
|
|
28
25
|
"s3:Replication:*",
|
|
29
26
|
"s3:Replication:OperationFailedReplication",
|
|
@@ -59,6 +59,9 @@ export declare class SimS3BucketAccess {
|
|
|
59
59
|
* cached. A deployment into the same Bucket has already said it, so the mount
|
|
60
60
|
* inherits what the Bucket was told, and `systemMetadata` is where it
|
|
61
61
|
* declares the rest or answers differently.
|
|
62
|
+
*
|
|
63
|
+
* The Bucket serves and accepts writes but refuses a delete, since the files
|
|
64
|
+
* are the user's own. `allowDelete` is how a mount asks for one.
|
|
62
65
|
*/
|
|
63
66
|
mountFilesystem(bucketName: SimS3BucketName | string, directoryPath: string, options?: SimS3MountFilesystemOptions): void;
|
|
64
67
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assertDefined } from "../../../util/type-guard/defined.js";
|
|
2
|
-
import {
|
|
2
|
+
import { filesystemS3MountStorage } from "../storage/filesystem/s3-filesystem-deleting-storage.js";
|
|
3
3
|
import { simS3BucketUrl, simS3ServiceUrl } from "./sim-s3-endpoint-url.js";
|
|
4
4
|
import { SimS3DeclaredSystemMetadata } from "../object/s3-declared-system-metadata.js";
|
|
5
5
|
import { SimS3MountWatches } from "../mount/sim-s3-mount-watches.js";
|
|
@@ -73,6 +73,9 @@ export class SimS3BucketAccess {
|
|
|
73
73
|
* cached. A deployment into the same Bucket has already said it, so the mount
|
|
74
74
|
* inherits what the Bucket was told, and `systemMetadata` is where it
|
|
75
75
|
* declares the rest or answers differently.
|
|
76
|
+
*
|
|
77
|
+
* The Bucket serves and accepts writes but refuses a delete, since the files
|
|
78
|
+
* are the user's own. `allowDelete` is how a mount asks for one.
|
|
76
79
|
*/
|
|
77
80
|
mountFilesystem(bucketName, directoryPath, options = {}) {
|
|
78
81
|
const bucket = this.required(bucketName);
|
|
@@ -80,11 +83,12 @@ export class SimS3BucketAccess {
|
|
|
80
83
|
inherited: bucket.getDeclaredSystemMetadata(),
|
|
81
84
|
declarations: options.systemMetadata,
|
|
82
85
|
});
|
|
83
|
-
bucket.configureSimStorage(
|
|
86
|
+
bucket.configureSimStorage(filesystemS3MountStorage({
|
|
84
87
|
directoryPath,
|
|
85
88
|
...(options.additionalFileExtensions !== undefined && {
|
|
86
89
|
additionalFileExtensions: options.additionalFileExtensions,
|
|
87
90
|
}),
|
|
91
|
+
allowDelete: options.allowDelete,
|
|
88
92
|
systemMetadata,
|
|
89
93
|
}));
|
|
90
94
|
this.mountWatches.register(bucketName, directoryPath, options);
|