@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
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
2
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
3
|
+
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
|
+
import { SimS3EncryptionAuthorizer } from "../encryption/sim-s3-encryption-authorizer.js";
|
|
5
|
+
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
6
|
+
/**
|
|
7
|
+
* Simulated S3 GetBucketEncryptionCommand handler.
|
|
8
|
+
*
|
|
9
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetBucketEncryptionCommand/
|
|
10
|
+
*/
|
|
11
|
+
export class GetBucketEncryptionCommandHandler {
|
|
12
|
+
buckets;
|
|
13
|
+
authorizer;
|
|
14
|
+
background;
|
|
15
|
+
constructor(properties) {
|
|
16
|
+
const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
|
|
17
|
+
this.buckets = buckets;
|
|
18
|
+
this.authorizer = new SimS3EncryptionAuthorizer({ iam });
|
|
19
|
+
this.background = background;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Authorize and report a Bucket's default encryption.
|
|
23
|
+
*
|
|
24
|
+
* A Bucket nobody has configured answers with the SSE-S3 rule rather than an
|
|
25
|
+
* error, which is what real S3 has answered since it began encrypting every
|
|
26
|
+
* Bucket by default.
|
|
27
|
+
*/
|
|
28
|
+
async handle(command, options) {
|
|
29
|
+
assertDefined(command.input.Bucket, "GetBucketEncryptionCommand.input.Bucket");
|
|
30
|
+
const bucketName = command.input.Bucket;
|
|
31
|
+
const bucket = requireSimS3Bucket(this.buckets, bucketName);
|
|
32
|
+
await this.background.sequence();
|
|
33
|
+
this.authorizer.authorizeRead(bucket, options);
|
|
34
|
+
return {
|
|
35
|
+
ServerSideEncryptionConfiguration: bucket.getEncryption().configuration,
|
|
36
|
+
$metadata: {},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -7,21 +7,24 @@ interface GetObjectAuthorizerProperties {
|
|
|
7
7
|
/**
|
|
8
8
|
* Applies IAM authorization to an S3 GetObject request.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* The request's source ARN and source Account go in as condition keys, which is
|
|
15
|
-
* what a Bucket policy written for a CloudFront origin access control is
|
|
16
|
-
* conditioned on.
|
|
10
|
+
* A read is authorized against the target Object ARN. A read that finds
|
|
11
|
+
* nothing is authorized a second time, against the Bucket ARN, because real S3
|
|
12
|
+
* decides between AccessDenied and NoSuchKey on `s3:ListBucket`.
|
|
17
13
|
*/
|
|
18
14
|
export declare class GetObjectAuthorizer {
|
|
19
|
-
private static readonly action;
|
|
20
15
|
private readonly iam;
|
|
21
16
|
constructor(properties: GetObjectAuthorizerProperties);
|
|
22
17
|
/**
|
|
23
18
|
* Ensure the caller may read the requested S3 Object.
|
|
24
19
|
*/
|
|
25
20
|
authorize(bucket: SimS3Bucket, key: string, options?: SimS3RequestOptions): void;
|
|
21
|
+
/**
|
|
22
|
+
* Ensure the caller may be told that the Bucket holds no such key.
|
|
23
|
+
*
|
|
24
|
+
* Which keys a Bucket holds is what a listing tells you. Real S3 admits the
|
|
25
|
+
* absence only to a caller holding `s3:ListBucket` on the Bucket. Everyone
|
|
26
|
+
* else gets the same AccessDenied whether the key is there or not.
|
|
27
|
+
*/
|
|
28
|
+
authorizeMissingKey(bucket: SimS3Bucket, options?: SimS3RequestOptions): void;
|
|
26
29
|
}
|
|
27
30
|
export {};
|
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { simS3ConditionContext } from "../authorize/sim-s3-condition-context.js";
|
|
1
|
+
import { simS3AuthorizeAction } from "../authorize/sim-s3-authorize-action.js";
|
|
3
2
|
/**
|
|
4
3
|
* Applies IAM authorization to an S3 GetObject request.
|
|
5
4
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* The request's source ARN and source Account go in as condition keys, which is
|
|
11
|
-
* what a Bucket policy written for a CloudFront origin access control is
|
|
12
|
-
* conditioned on.
|
|
5
|
+
* A read is authorized against the target Object ARN. A read that finds
|
|
6
|
+
* nothing is authorized a second time, against the Bucket ARN, because real S3
|
|
7
|
+
* decides between AccessDenied and NoSuchKey on `s3:ListBucket`.
|
|
13
8
|
*/
|
|
14
9
|
export class GetObjectAuthorizer {
|
|
15
|
-
static action = "s3:GetObject";
|
|
16
10
|
iam;
|
|
17
11
|
constructor(properties) {
|
|
18
12
|
this.iam = properties.iam;
|
|
@@ -21,30 +15,28 @@ export class GetObjectAuthorizer {
|
|
|
21
15
|
* Ensure the caller may read the requested S3 Object.
|
|
22
16
|
*/
|
|
23
17
|
authorize(bucket, key, options) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
18
|
+
simS3AuthorizeAction({
|
|
19
|
+
iam: this.iam,
|
|
20
|
+
action: "s3:GetObject",
|
|
21
|
+
resource: `arn:aws:s3:::${bucket.bucketName}/${key}`,
|
|
22
|
+
bucket,
|
|
23
|
+
options,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Ensure the caller may be told that the Bucket holds no such key.
|
|
28
|
+
*
|
|
29
|
+
* Which keys a Bucket holds is what a listing tells you. Real S3 admits the
|
|
30
|
+
* absence only to a caller holding `s3:ListBucket` on the Bucket. Everyone
|
|
31
|
+
* else gets the same AccessDenied whether the key is there or not.
|
|
32
|
+
*/
|
|
33
|
+
authorizeMissingKey(bucket, options) {
|
|
34
|
+
simS3AuthorizeAction({
|
|
35
|
+
iam: this.iam,
|
|
36
|
+
action: "s3:ListBucket",
|
|
37
|
+
resource: `arn:aws:s3:::${bucket.bucketName}`,
|
|
38
|
+
bucket,
|
|
39
|
+
options,
|
|
40
40
|
});
|
|
41
|
-
if (decision.isDenied) {
|
|
42
|
-
throw new SimIamAccessDenied({
|
|
43
|
-
principal: decision.caller.principal,
|
|
44
|
-
reason: decision.denialReason,
|
|
45
|
-
action: GetObjectAuthorizer.action,
|
|
46
|
-
resource,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
41
|
}
|
|
50
42
|
}
|
|
@@ -10,8 +10,8 @@ import type { SimGetObjectCommandOutput } from "./get-object.command.js";
|
|
|
10
10
|
* This class owns both storage lookup and response conversion because the SDK
|
|
11
11
|
* response is a representation of the stored Object:
|
|
12
12
|
*
|
|
13
|
-
* - a
|
|
14
|
-
*
|
|
13
|
+
* - a `VersionId` naming a version the Bucket never issued becomes
|
|
14
|
+
* NoSuchVersion;
|
|
15
15
|
* - the stored Buffer, or the part of it the read asked for, becomes the
|
|
16
16
|
* readable response body;
|
|
17
17
|
* - what S3 was told about the Object becomes the response's own fields, and
|
|
@@ -25,6 +25,10 @@ export declare class GetObjectLoader {
|
|
|
25
25
|
/**
|
|
26
26
|
* Read an Object, or the range of it that was asked for, from the resolved
|
|
27
27
|
* Bucket, and build its SDK command output.
|
|
28
|
+
*
|
|
29
|
+
* Answering `undefined` means the key holds nothing. The command handler
|
|
30
|
+
* turns that into the error the caller's permissions allow, which for a
|
|
31
|
+
* missing key is a decision of its own.
|
|
28
32
|
*/
|
|
29
|
-
load(bucket: SimS3Bucket, key: string, rangeHeader?: string, versionId?: string): Promise<SimGetObjectCommandOutput>;
|
|
33
|
+
load(bucket: SimS3Bucket, key: string, rangeHeader?: string, versionId?: string): Promise<SimGetObjectCommandOutput | undefined>;
|
|
30
34
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Readable } from "node:stream";
|
|
2
|
-
import { SimS3NoSuchKey } from "../../error/sim-s3.error.js";
|
|
3
2
|
import { simS3QuotedETag } from "../../object/s3-object-etag.js";
|
|
3
|
+
import { simS3ObjectStorageReport } from "../../object/s3-object-storage-report.js";
|
|
4
4
|
import { simS3ContentRange, simS3ReadObjectRange, } from "../../object/s3-object-range.js";
|
|
5
5
|
import { simS3ReadObjectVersion } from "../object/sim-s3-read-object-version.js";
|
|
6
6
|
/**
|
|
@@ -13,8 +13,8 @@ import { simS3ReadObjectVersion } from "../object/sim-s3-read-object-version.js"
|
|
|
13
13
|
* This class owns both storage lookup and response conversion because the SDK
|
|
14
14
|
* response is a representation of the stored Object:
|
|
15
15
|
*
|
|
16
|
-
* - a
|
|
17
|
-
*
|
|
16
|
+
* - a `VersionId` naming a version the Bucket never issued becomes
|
|
17
|
+
* NoSuchVersion;
|
|
18
18
|
* - the stored Buffer, or the part of it the read asked for, becomes the
|
|
19
19
|
* readable response body;
|
|
20
20
|
* - what S3 was told about the Object becomes the response's own fields, and
|
|
@@ -28,11 +28,15 @@ export class GetObjectLoader {
|
|
|
28
28
|
/**
|
|
29
29
|
* Read an Object, or the range of it that was asked for, from the resolved
|
|
30
30
|
* Bucket, and build its SDK command output.
|
|
31
|
+
*
|
|
32
|
+
* Answering `undefined` means the key holds nothing. The command handler
|
|
33
|
+
* turns that into the error the caller's permissions allow, which for a
|
|
34
|
+
* missing key is a decision of its own.
|
|
31
35
|
*/
|
|
32
36
|
async load(bucket, key, rangeHeader, versionId) {
|
|
33
37
|
const read = await simS3ReadObjectVersion(bucket, key, versionId);
|
|
34
38
|
if (read === undefined) {
|
|
35
|
-
|
|
39
|
+
return undefined;
|
|
36
40
|
}
|
|
37
41
|
const object = read.object;
|
|
38
42
|
const size = object.body.length;
|
|
@@ -51,6 +55,7 @@ export class GetObjectLoader {
|
|
|
51
55
|
LastModified: object.lastModified,
|
|
52
56
|
ContentLength: body.length,
|
|
53
57
|
...(read.versionId !== undefined && { VersionId: read.versionId }),
|
|
58
|
+
...simS3ObjectStorageReport(object),
|
|
54
59
|
...read.lock?.reported,
|
|
55
60
|
...(range !== undefined && {
|
|
56
61
|
ContentRange: simS3ContentRange(range, size),
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Readable } from "node:stream";
|
|
2
2
|
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
3
3
|
import type { SimS3ObjectLockOutput } from "../../bucket/lock/sim-s3-object-lock-output.js";
|
|
4
|
+
import type { SimS3ObjectStorageReport } from "../../object/s3-object-storage-report.js";
|
|
4
5
|
import type { SimS3SystemMetadataOutput } from "../../object/s3-system-metadata-read.js";
|
|
5
6
|
/**
|
|
6
7
|
* Minimal structural sim S3 GetObject command.
|
|
@@ -41,7 +42,7 @@ export interface SimGetObjectCommandInput {
|
|
|
41
42
|
* when it was written. `Metadata` is what the caller attached to it, and holds
|
|
42
43
|
* nothing else.
|
|
43
44
|
*/
|
|
44
|
-
export interface SimGetObjectCommandOutput extends SimS3SystemMetadataOutput, SimS3ObjectLockOutput {
|
|
45
|
+
export interface SimGetObjectCommandOutput extends SimS3SystemMetadataOutput, SimS3ObjectLockOutput, SimS3ObjectStorageReport {
|
|
45
46
|
readonly Body?: Readable;
|
|
46
47
|
readonly Metadata?: Record<string, string>;
|
|
47
48
|
readonly ETag?: string;
|
|
@@ -33,6 +33,10 @@ export declare class GetObjectCommandHandler implements CommandHandler<SimGetObj
|
|
|
33
33
|
*
|
|
34
34
|
* A stated `Range` reaches the loader with the key, since which bytes of an
|
|
35
35
|
* Object a caller may read is not something IAM decides.
|
|
36
|
+
*
|
|
37
|
+
* A key holding nothing goes back to authorization before the absence is
|
|
38
|
+
* reported. Real S3 tells a caller that a key is missing only where it may
|
|
39
|
+
* list the Bucket, and answers AccessDenied otherwise.
|
|
36
40
|
*/
|
|
37
41
|
handle(command: SimGetObjectCommand, options?: SimS3RequestOptions): Promise<SimGetObjectCommandOutput>;
|
|
38
42
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
-
import {
|
|
2
|
+
import { SimS3NoSuchKey } from "../../error/sim-s3.error.js";
|
|
3
3
|
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
4
4
|
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
5
|
+
import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
|
|
5
6
|
import { GetObjectAuthorizer } from "./get-object-authorizer.js";
|
|
6
7
|
import { GetObjectLoader } from "./get-object-loader.js";
|
|
7
8
|
/**
|
|
@@ -33,18 +34,23 @@ export class GetObjectCommandHandler {
|
|
|
33
34
|
*
|
|
34
35
|
* A stated `Range` reaches the loader with the key, since which bytes of an
|
|
35
36
|
* Object a caller may read is not something IAM decides.
|
|
37
|
+
*
|
|
38
|
+
* A key holding nothing goes back to authorization before the absence is
|
|
39
|
+
* reported. Real S3 tells a caller that a key is missing only where it may
|
|
40
|
+
* list the Bucket, and answers AccessDenied otherwise.
|
|
36
41
|
*/
|
|
37
42
|
async handle(command, options) {
|
|
38
43
|
assertDefined(command.input.Bucket, "GetObjectCommand.input.Bucket");
|
|
39
44
|
assertDefined(command.input.Key, "GetObjectCommand.input.Key");
|
|
40
|
-
const
|
|
41
|
-
const bucket = this.buckets.get(bucketName);
|
|
42
|
-
if (bucket === undefined) {
|
|
43
|
-
throw new SimS3NoSuchBucket(`No S3 Bucket named ${bucketName}`);
|
|
44
|
-
}
|
|
45
|
+
const bucket = requireSimS3Bucket(this.buckets, command.input.Bucket);
|
|
45
46
|
// Complete request sequencing before authorization and storage access.
|
|
46
47
|
await this.background.sequence();
|
|
47
48
|
this.authorizer.authorize(bucket, command.input.Key, options);
|
|
48
|
-
|
|
49
|
+
const output = await this.loader.load(bucket, command.input.Key, command.input.Range, command.input.VersionId);
|
|
50
|
+
if (output !== undefined) {
|
|
51
|
+
return output;
|
|
52
|
+
}
|
|
53
|
+
this.authorizer.authorizeMissingKey(bucket, options);
|
|
54
|
+
throw new SimS3NoSuchKey(`No S3 Object named ${command.input.Key}`);
|
|
49
55
|
}
|
|
50
56
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
|
+
import type { SimS3ObjectTag } from "../../object/s3-object-tags.js";
|
|
3
|
+
/**
|
|
4
|
+
* Minimal structural sim S3 GetObjectTagging command.
|
|
5
|
+
*/
|
|
6
|
+
export interface SimGetObjectTaggingCommand {
|
|
7
|
+
readonly input: SimGetObjectTaggingCommandInput;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Minimal structural sim S3 GetObjectTagging input.
|
|
11
|
+
*/
|
|
12
|
+
export interface SimGetObjectTaggingCommandInput {
|
|
13
|
+
readonly Bucket?: string | undefined;
|
|
14
|
+
readonly Key?: string | undefined;
|
|
15
|
+
/** The version to read. A request naming none reads the current one. */
|
|
16
|
+
readonly VersionId?: string | undefined;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Minimal structural sim S3 GetObjectTagging output.
|
|
20
|
+
*
|
|
21
|
+
* `TagSet` is always present, and is empty for an Object nobody has tagged.
|
|
22
|
+
* Real S3 answers an untagged Object with an empty set rather than refusing,
|
|
23
|
+
* because having no tags is not the same as not existing.
|
|
24
|
+
*/
|
|
25
|
+
export interface SimGetObjectTaggingCommandOutput {
|
|
26
|
+
readonly TagSet: readonly SimS3ObjectTag[];
|
|
27
|
+
readonly VersionId?: string | undefined;
|
|
28
|
+
readonly $metadata: SimResponseMetadata;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import { type SimS3ObjectTaggingAccessProperties } from "../tagging/sim-s3-object-tagging-access.js";
|
|
3
|
+
import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
|
|
4
|
+
import type { SimGetObjectTaggingCommand, SimGetObjectTaggingCommandOutput } from "./get-object-tagging.command.js";
|
|
5
|
+
/**
|
|
6
|
+
* Simulated S3 GetObjectTaggingCommand handler.
|
|
7
|
+
*
|
|
8
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetObjectTaggingCommand/
|
|
9
|
+
*/
|
|
10
|
+
export declare class GetObjectTaggingCommandHandler implements CommandHandler<SimGetObjectTaggingCommand, SimGetObjectTaggingCommandOutput> {
|
|
11
|
+
private readonly access;
|
|
12
|
+
constructor(properties: SimS3ObjectTaggingAccessProperties);
|
|
13
|
+
/**
|
|
14
|
+
* Read the tags on an Object, or on the version the request named.
|
|
15
|
+
*
|
|
16
|
+
* An Object nobody has tagged answers with an empty set rather than a
|
|
17
|
+
* refusal, as real S3 does. Nothing is announced: real S3 raises a tagging
|
|
18
|
+
* event for a change to the tags, and a read changes nothing.
|
|
19
|
+
*/
|
|
20
|
+
handle(command: SimGetObjectTaggingCommand, options?: SimS3RequestOptions): Promise<SimGetObjectTaggingCommandOutput>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SimS3ObjectTaggingAccess, } from "../tagging/sim-s3-object-tagging-access.js";
|
|
2
|
+
/**
|
|
3
|
+
* Simulated S3 GetObjectTaggingCommand handler.
|
|
4
|
+
*
|
|
5
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetObjectTaggingCommand/
|
|
6
|
+
*/
|
|
7
|
+
export class GetObjectTaggingCommandHandler {
|
|
8
|
+
access;
|
|
9
|
+
constructor(properties) {
|
|
10
|
+
this.access = new SimS3ObjectTaggingAccess(properties);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Read the tags on an Object, or on the version the request named.
|
|
14
|
+
*
|
|
15
|
+
* An Object nobody has tagged answers with an empty set rather than a
|
|
16
|
+
* refusal, as real S3 does. Nothing is announced: real S3 raises a tagging
|
|
17
|
+
* event for a change to the tags, and a read changes nothing.
|
|
18
|
+
*/
|
|
19
|
+
async handle(command, options) {
|
|
20
|
+
const { taggable } = await this.access.reach({
|
|
21
|
+
commandName: "GetObjectTaggingCommand",
|
|
22
|
+
action: "s3:GetObjectTagging",
|
|
23
|
+
input: command.input,
|
|
24
|
+
}, options);
|
|
25
|
+
return {
|
|
26
|
+
TagSet: taggable.tagSet.tags,
|
|
27
|
+
...(taggable.versionId !== undefined && {
|
|
28
|
+
VersionId: taggable.versionId,
|
|
29
|
+
}),
|
|
30
|
+
$metadata: {},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SimS3NotFound } from "../../error/sim-s3.error.js";
|
|
2
2
|
import { simS3QuotedETag } from "../../object/s3-object-etag.js";
|
|
3
|
+
import { simS3ObjectStorageReport } from "../../object/s3-object-storage-report.js";
|
|
3
4
|
import { simS3ReadObjectVersion } from "../object/sim-s3-read-object-version.js";
|
|
4
5
|
/**
|
|
5
6
|
* Describes an authorized S3 Object without reading it out.
|
|
@@ -26,6 +27,7 @@ export class HeadObjectLoader {
|
|
|
26
27
|
ETag: simS3QuotedETag(object.etag),
|
|
27
28
|
LastModified: object.lastModified,
|
|
28
29
|
...(read.versionId !== undefined && { VersionId: read.versionId }),
|
|
30
|
+
...simS3ObjectStorageReport(object),
|
|
29
31
|
...read.lock?.reported,
|
|
30
32
|
$metadata: {},
|
|
31
33
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
2
|
import type { SimS3ObjectLockOutput } from "../../bucket/lock/sim-s3-object-lock-output.js";
|
|
3
|
+
import type { SimS3ObjectStorageReport } from "../../object/s3-object-storage-report.js";
|
|
3
4
|
import type { SimS3SystemMetadataOutput } from "../../object/s3-system-metadata-read.js";
|
|
4
5
|
/**
|
|
5
6
|
* Minimal structural sim S3 HeadObject command.
|
|
@@ -26,7 +27,7 @@ export interface SimHeadObjectCommandInput {
|
|
|
26
27
|
* the Object itself, so this is a GetObject output without its body and with
|
|
27
28
|
* the length that body would have had.
|
|
28
29
|
*/
|
|
29
|
-
export interface SimHeadObjectCommandOutput extends SimS3SystemMetadataOutput, SimS3ObjectLockOutput {
|
|
30
|
+
export interface SimHeadObjectCommandOutput extends SimS3SystemMetadataOutput, SimS3ObjectLockOutput, SimS3ObjectStorageReport {
|
|
30
31
|
readonly ContentLength?: number;
|
|
31
32
|
readonly Metadata?: Record<string, string>;
|
|
32
33
|
readonly ETag?: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SimS3MalformedXml } from "../../error/sim-s3.error.js";
|
|
2
|
+
import { simS3StorageClassFrom } from "../../object/s3-storage-class.js";
|
|
2
3
|
const ruleStatuses = new Set(["Enabled", "Disabled"]);
|
|
3
4
|
/**
|
|
4
5
|
* The fields that make a rule do something, for the refusal to name.
|
|
@@ -49,4 +50,21 @@ function validateRule(rule, bucketName) {
|
|
|
49
50
|
throw new SimS3MalformedXml(`Lifecycle rule ${named} for S3 Bucket ${bucketName} must state at ` +
|
|
50
51
|
`least one of ${ruleActionNames}`);
|
|
51
52
|
}
|
|
53
|
+
validateTransitionClasses(rule, named, bucketName);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Refuse a transition to a storage class S3 has no such class for.
|
|
57
|
+
*
|
|
58
|
+
* The class is read here, where the configuration is stored, so a rule that
|
|
59
|
+
* names one nothing can transition to is refused before it is applied to
|
|
60
|
+
* anything.
|
|
61
|
+
*/
|
|
62
|
+
function validateTransitionClasses(rule, named, bucketName) {
|
|
63
|
+
const transitions = [
|
|
64
|
+
...(rule.Transitions ?? []),
|
|
65
|
+
...(rule.NoncurrentVersionTransitions ?? []),
|
|
66
|
+
];
|
|
67
|
+
for (const transition of transitions) {
|
|
68
|
+
simS3StorageClassFrom(transition.StorageClass, `lifecycle rule ${named} of S3 Bucket ${bucketName}`);
|
|
69
|
+
}
|
|
52
70
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
-
import { simS3DefaultStorageClass } from "../../object/s3-object-summary.js";
|
|
3
2
|
import { SimS3MultipartAccess, } from "../multipart/sim-s3-multipart-access.js";
|
|
4
3
|
/**
|
|
5
4
|
* Simulated S3 ListMultipartUploadsCommand handler.
|
|
@@ -33,7 +32,7 @@ export class ListMultipartUploadsCommandHandler {
|
|
|
33
32
|
Key: upload.key,
|
|
34
33
|
UploadId: upload.uploadId,
|
|
35
34
|
Initiated: upload.initiated,
|
|
36
|
-
StorageClass:
|
|
35
|
+
StorageClass: upload.storageClass,
|
|
37
36
|
})),
|
|
38
37
|
IsTruncated: false,
|
|
39
38
|
$metadata: {},
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { simS3QuotedETag } from "../../object/s3-object-etag.js";
|
|
2
|
-
import { simS3DefaultStorageClass } from "../../object/s3-object-summary.js";
|
|
3
2
|
/**
|
|
4
3
|
* Describe the Objects among a page of versions.
|
|
5
4
|
*/
|
|
@@ -13,7 +12,7 @@ export function simS3ObjectVersionSummaries(page, isLatest) {
|
|
|
13
12
|
LastModified: version.lastModified,
|
|
14
13
|
ETag: simS3QuotedETag(version.object.etag),
|
|
15
14
|
Size: version.object.body.length,
|
|
16
|
-
StorageClass:
|
|
15
|
+
StorageClass: version.object.storageClass,
|
|
17
16
|
}));
|
|
18
17
|
}
|
|
19
18
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
2
|
+
import type { SimS3ListingEncoding } from "../../object/s3-listing-encoding.js";
|
|
2
3
|
import type { SimListObjectsCommandOutput } from "./list-objects.command.js";
|
|
3
4
|
interface ListObjectsPageInput {
|
|
4
5
|
readonly bucket: SimS3Bucket;
|
|
@@ -6,6 +7,7 @@ interface ListObjectsPageInput {
|
|
|
6
7
|
readonly delimiter?: string | undefined;
|
|
7
8
|
readonly marker?: string | undefined;
|
|
8
9
|
readonly maxKeys: number;
|
|
10
|
+
readonly encoding: SimS3ListingEncoding;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* Reads, orders, and paginates Objects for a ListObjects response.
|
|
@@ -18,6 +20,9 @@ interface ListObjectsPageInput {
|
|
|
18
20
|
* operations differ in how a caller names where to resume rather than in which
|
|
19
21
|
* keys a page holds. The marker is exclusive, so a page begins after it.
|
|
20
22
|
*
|
|
23
|
+
* The keys, the prefix, the delimiter and both markers are written the way the
|
|
24
|
+
* listing asked for them, which is encoded or as they are stored.
|
|
25
|
+
*
|
|
21
26
|
* NextMarker is returned only when another page exists, and identifies the
|
|
22
27
|
* final entry in the current page. That entry is a common prefix where the
|
|
23
28
|
* page ended on one, and the marker steps over the whole rolled-up prefix.
|
|
@@ -12,6 +12,9 @@ import { simS3ObjectSummaries } from "../../object/s3-object-summary.js";
|
|
|
12
12
|
* operations differ in how a caller names where to resume rather than in which
|
|
13
13
|
* keys a page holds. The marker is exclusive, so a page begins after it.
|
|
14
14
|
*
|
|
15
|
+
* The keys, the prefix, the delimiter and both markers are written the way the
|
|
16
|
+
* listing asked for them, which is encoded or as they are stored.
|
|
17
|
+
*
|
|
15
18
|
* NextMarker is returned only when another page exists, and identifies the
|
|
16
19
|
* final entry in the current page. That entry is a common prefix where the
|
|
17
20
|
* page ended on one, and the marker steps over the whole rolled-up prefix.
|
|
@@ -28,16 +31,18 @@ export class ListObjectsPageBuilder {
|
|
|
28
31
|
startAfter: input.marker,
|
|
29
32
|
maxKeys: input.maxKeys,
|
|
30
33
|
});
|
|
34
|
+
const { encoding } = input;
|
|
31
35
|
return {
|
|
32
|
-
Contents: simS3ObjectSummaries(page.objects),
|
|
33
|
-
CommonPrefixes: simS3CommonPrefixes(page.commonPrefixes),
|
|
36
|
+
Contents: encoding.summaries(simS3ObjectSummaries(page.objects)),
|
|
37
|
+
CommonPrefixes: encoding.commonPrefixes(simS3CommonPrefixes(page.commonPrefixes)),
|
|
34
38
|
Name: input.bucket.bucketName,
|
|
35
|
-
Prefix: input.prefix,
|
|
36
|
-
Delimiter: input.delimiter,
|
|
37
|
-
Marker: input.marker,
|
|
39
|
+
Prefix: encoding.value(input.prefix),
|
|
40
|
+
Delimiter: encoding.value(input.delimiter),
|
|
41
|
+
Marker: encoding.value(input.marker),
|
|
38
42
|
MaxKeys: input.maxKeys,
|
|
39
43
|
IsTruncated: page.isTruncated,
|
|
40
|
-
NextMarker: page.resumeAfter,
|
|
44
|
+
NextMarker: encoding.value(page.resumeAfter),
|
|
45
|
+
EncodingType: encoding.encodingType,
|
|
41
46
|
$metadata: {},
|
|
42
47
|
};
|
|
43
48
|
}
|
|
@@ -12,7 +12,9 @@ export interface SimListObjectsCommand {
|
|
|
12
12
|
* Minimal structural sim S3 ListObjects input.
|
|
13
13
|
*
|
|
14
14
|
* `Delimiter` rolls every key holding it after the `Prefix` up into a common
|
|
15
|
-
* prefix, which is how a Bucket is walked one folder at a time.
|
|
15
|
+
* prefix, which is how a Bucket is walked one folder at a time. `EncodingType`
|
|
16
|
+
* asks for the keys the listing answers with to be encoded, so that a key
|
|
17
|
+
* holding a character XML cannot carry survives the response.
|
|
16
18
|
*/
|
|
17
19
|
export interface SimListObjectsCommandInput {
|
|
18
20
|
readonly Bucket?: string | undefined;
|
|
@@ -20,6 +22,7 @@ export interface SimListObjectsCommandInput {
|
|
|
20
22
|
readonly Delimiter?: string | undefined;
|
|
21
23
|
readonly Marker?: string | undefined;
|
|
22
24
|
readonly MaxKeys?: number | undefined;
|
|
25
|
+
readonly EncodingType?: string | undefined;
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* Minimal structural sim S3 ListObjects output.
|
|
@@ -34,5 +37,6 @@ export interface SimListObjectsCommandOutput {
|
|
|
34
37
|
readonly MaxKeys?: number;
|
|
35
38
|
readonly IsTruncated?: boolean;
|
|
36
39
|
readonly NextMarker?: string | undefined;
|
|
40
|
+
readonly EncodingType?: string | undefined;
|
|
37
41
|
readonly $metadata: SimResponseMetadata;
|
|
38
42
|
}
|
|
@@ -2,6 +2,7 @@ import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
|
2
2
|
import { SimS3NoSuchBucket } from "../../error/sim-s3.error.js";
|
|
3
3
|
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
4
4
|
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
5
|
+
import { SimS3ListingEncoding } from "../../object/s3-listing-encoding.js";
|
|
5
6
|
import { simS3EffectiveMaxKeys } from "../../object/s3-object-listing.js";
|
|
6
7
|
import { SimS3ObjectListingLimits } from "../../object/s3-object-listing-limits.js";
|
|
7
8
|
import { ListObjectsAuthorizer } from "./list-objects-authorizer.js";
|
|
@@ -40,6 +41,9 @@ export class ListObjectsCommandHandler {
|
|
|
40
41
|
}
|
|
41
42
|
// Complete request sequencing before authorization and storage access.
|
|
42
43
|
await this.background.sequence();
|
|
44
|
+
// Refused before anything is listed, the way real S3 refuses an argument
|
|
45
|
+
// it cannot read, rather than after a page has been built.
|
|
46
|
+
const encoding = new SimS3ListingEncoding(command.input.EncodingType);
|
|
43
47
|
const maxKeys = simS3EffectiveMaxKeys(command.input.MaxKeys, this.listing.maxKeysPerPage);
|
|
44
48
|
this.authorizer.authorize({
|
|
45
49
|
bucket,
|
|
@@ -54,6 +58,7 @@ export class ListObjectsCommandHandler {
|
|
|
54
58
|
delimiter: command.input.Delimiter,
|
|
55
59
|
marker: command.input.Marker,
|
|
56
60
|
maxKeys,
|
|
61
|
+
encoding,
|
|
57
62
|
});
|
|
58
63
|
}
|
|
59
64
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
2
|
+
import type { SimS3ListingEncoding } from "../../object/s3-listing-encoding.js";
|
|
2
3
|
import type { SimListObjectsV2CommandOutput } from "./list-objects-v2.command.js";
|
|
3
4
|
interface ListObjectsV2PageInput {
|
|
4
5
|
readonly bucket: SimS3Bucket;
|
|
@@ -7,6 +8,7 @@ interface ListObjectsV2PageInput {
|
|
|
7
8
|
readonly continuationToken?: string | undefined;
|
|
8
9
|
readonly startAfter?: string | undefined;
|
|
9
10
|
readonly maxKeys: number;
|
|
11
|
+
readonly encoding: SimS3ListingEncoding;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* Reads, orders, and paginates Objects for a ListObjectsV2 response.
|
|
@@ -15,6 +17,10 @@ interface ListObjectsV2PageInput {
|
|
|
15
17
|
* called, as it is for the first version of the operation, so a denied request
|
|
16
18
|
* cannot examine Object keys or sizes.
|
|
17
19
|
*
|
|
20
|
+
* The keys, the prefix, the delimiter and the key a first page started after
|
|
21
|
+
* are written the way the listing asked for them, which is encoded or as they
|
|
22
|
+
* are stored. A continuation token is not, because it is opaque either way.
|
|
23
|
+
*
|
|
18
24
|
* The keys on a page are chosen exactly as ListObjects chooses them. What
|
|
19
25
|
* differs is how a caller says where to carry on from: a continuation token
|
|
20
26
|
* from the previous page, which wins, or a StartAfter key that positions the
|
|
@@ -9,6 +9,10 @@ import { simS3ContinuationToken, simS3ContinuationTokenKey, } from "./list-objec
|
|
|
9
9
|
* called, as it is for the first version of the operation, so a denied request
|
|
10
10
|
* cannot examine Object keys or sizes.
|
|
11
11
|
*
|
|
12
|
+
* The keys, the prefix, the delimiter and the key a first page started after
|
|
13
|
+
* are written the way the listing asked for them, which is encoded or as they
|
|
14
|
+
* are stored. A continuation token is not, because it is opaque either way.
|
|
15
|
+
*
|
|
12
16
|
* The keys on a page are chosen exactly as ListObjects chooses them. What
|
|
13
17
|
* differs is how a caller says where to carry on from: a continuation token
|
|
14
18
|
* from the previous page, which wins, or a StartAfter key that positions the
|
|
@@ -27,12 +31,13 @@ export class ListObjectsV2PageBuilder {
|
|
|
27
31
|
startAfter: this.resumeAfter(input),
|
|
28
32
|
maxKeys: input.maxKeys,
|
|
29
33
|
});
|
|
34
|
+
const { encoding } = input;
|
|
30
35
|
return {
|
|
31
|
-
Contents: simS3ObjectSummaries(page.objects),
|
|
32
|
-
CommonPrefixes: simS3CommonPrefixes(page.commonPrefixes),
|
|
36
|
+
Contents: encoding.summaries(simS3ObjectSummaries(page.objects)),
|
|
37
|
+
CommonPrefixes: encoding.commonPrefixes(simS3CommonPrefixes(page.commonPrefixes)),
|
|
33
38
|
Name: input.bucket.bucketName,
|
|
34
|
-
Prefix: input.prefix,
|
|
35
|
-
Delimiter: input.delimiter,
|
|
39
|
+
Prefix: encoding.value(input.prefix),
|
|
40
|
+
Delimiter: encoding.value(input.delimiter),
|
|
36
41
|
MaxKeys: input.maxKeys,
|
|
37
42
|
KeyCount: page.objects.length + page.commonPrefixes.length,
|
|
38
43
|
IsTruncated: page.isTruncated,
|
|
@@ -40,7 +45,8 @@ export class ListObjectsV2PageBuilder {
|
|
|
40
45
|
NextContinuationToken: page.resumeAfter === undefined
|
|
41
46
|
? undefined
|
|
42
47
|
: simS3ContinuationToken(page.resumeAfter),
|
|
43
|
-
StartAfter: input.startAfter,
|
|
48
|
+
StartAfter: encoding.value(input.startAfter),
|
|
49
|
+
EncodingType: encoding.encodingType,
|
|
44
50
|
$metadata: {},
|
|
45
51
|
};
|
|
46
52
|
}
|