@kensio/yulin 1.21.2 → 1.21.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
- package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
- package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
- package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
- package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
- package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
- package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
- package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
- package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
- package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
- package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
- package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
- package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
- package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
- package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
- package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
- package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
- package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
- package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
- package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
- package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
- package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
- package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
- package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
- package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
- package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
- package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
- package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
- package/dist/service/athena/index.d.ts +1 -1
- package/dist/service/athena/index.js +1 -1
- package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
- package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
- package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
- package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
- package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
- package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
- package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
- package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
- package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
- package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +12 -12
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
- package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
- package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
- package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
- package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
- package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
- package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
- package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
- package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +8 -15
- package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
- package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
- package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
- package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
- package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
- package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
- package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
- package/dist/service/cloudformation/resource/factory/sim-cfn-resource-factory.type.d.ts +9 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
- package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
- package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +19 -0
- package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
- package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
- package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
- package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
- package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.d.ts +26 -0
- package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.js +55 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
- package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
- package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
- package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
- package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
- package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
- package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
- package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
- package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
- package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
- package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
- package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
- package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
- package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
- package/dist/service/cloudformation/sim-cloudformation.js +56 -9
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
- package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +51 -3
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +84 -6
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +16 -1
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +27 -0
- package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +7 -1
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
- package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
- package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
- package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
- package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
- package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
- package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
- package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
- package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +5 -0
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.d.ts +24 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.js +38 -0
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
- package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
- package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
- package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
- package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
- package/dist/service/dynamodb/table/sim-dynamodb-index-update.js +1 -2
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
- package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
- package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
- package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
- package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
- package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
- package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
- package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
- package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
- package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
- package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
- package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
- package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
- package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
- package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
- package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
- package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
- package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
- package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
- package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
- package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
- package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
- package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
- package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
- package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
- package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
- package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
- package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
- package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
- package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
- package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
- package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
- package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
- package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
- package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
- package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
- package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
- package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
- package/dist/service/lambda/function/sim-lambda-function.js +11 -9
- package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
- package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
- package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
- package/dist/service/lambda/index.d.ts +1 -0
- package/dist/service/lambda/index.js +1 -0
- package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
- package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
- package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
- package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
- package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
- package/dist/service/lambda/sim-lambda-commands.js +11 -0
- package/dist/service/lambda/sim-lambda.d.ts +12 -0
- package/dist/service/lambda/sim-lambda.js +13 -0
- package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
- package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
- package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
- package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
- package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
- package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
- package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
- package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
- package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
- package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
- package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
- package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
- package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
- package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
- package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
- package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
- package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
- package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
- package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
- package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
- package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
- package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
- package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
- package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
- package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
- package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
- package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
- package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
- package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
- package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
- package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
- package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
- package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
- package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
- package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
- package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
- package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
- package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
- package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
- package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
- package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
- package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
- package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
- package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
- package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
- package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
- package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
- package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
- package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
- package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
- package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
- package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
- package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
- package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
- package/dist/service/s3/error/sim-s3.error.js +26 -40
- package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
- package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
- package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
- package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
- package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
- package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
- package/dist/service/s3/object/s3-key-encoding.js +14 -0
- package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
- package/dist/service/s3/object/s3-listing-encoding.js +75 -0
- package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
- package/dist/service/s3/object/s3-object-response-headers.js +49 -2
- package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
- package/dist/service/s3/object/s3-object-storage-report.js +18 -0
- package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
- package/dist/service/s3/object/s3-object-summary.js +1 -10
- package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
- package/dist/service/s3/object/s3-object-tags.js +77 -0
- package/dist/service/s3/object/s3-object.d.ts +49 -0
- package/dist/service/s3/object/s3-object.js +52 -1
- package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
- package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
- package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
- package/dist/service/s3/object/s3-storage-class.js +67 -0
- package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
- package/dist/service/s3/object/s3-write-metadata.js +43 -0
- package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
- package/dist/service/s3/object/s3-write-storage.js +21 -0
- package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
- package/dist/service/s3/object/s3-write-tagging.js +19 -0
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
- package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
- package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
- package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
- package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
- package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
- package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
- package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
- package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
- package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
- package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
- package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
- package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
- package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
- package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
- package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
- package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
- package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
- package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
- package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
- package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
- package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
- package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
- package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
- package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
- package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
- package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
- package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
- package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
- package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
- package/dist/service/s3/sim-s3-commands.d.ts +4 -0
- package/dist/service/s3/sim-s3-commands.js +6 -0
- package/dist/service/s3/sim-s3-operations.d.ts +11 -4
- package/dist/service/s3/sim-s3-operations.js +17 -4
- package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
- package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
- package/dist/service/s3/sim-s3.d.ts +12 -0
- package/dist/service/s3/sim-s3.js +13 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
- package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
- package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
- package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
- package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
- package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
- package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
- package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
- package/dist/util/background/background-clock-waits.d.ts +52 -0
- package/dist/util/background/background-clock-waits.js +76 -0
- package/dist/util/background/background-jitter.js +1 -0
- package/dist/util/background/background-pending-tasks.d.ts +55 -0
- package/dist/util/background/background-pending-tasks.js +117 -0
- package/dist/util/background/background-settled-tasks.d.ts +4 -1
- package/dist/util/background/background-settled-tasks.js +4 -1
- package/dist/util/background/background.d.ts +43 -0
- package/dist/util/background/background.js +27 -19
- package/dist/util/background/non-deterministic-background.d.ts +12 -0
- package/dist/util/background/non-deterministic-background.js +24 -20
- package/dist/util/clock/sim-clock-control.js +23 -2
- package/docs/services/apigateway/README.md +3 -1
- package/docs/services/athena/README.md +126 -3
- package/docs/services/cloudformation/README.md +775 -65
- package/docs/services/cognito/README.md +5 -0
- package/docs/services/dynamodb/README.md +86 -11
- package/docs/services/lambda/README.md +603 -39
- package/docs/services/s3/README.md +688 -57
- package/package.json +8 -2
|
@@ -10,6 +10,8 @@ export declare const defaultAthenaResultType = "varchar";
|
|
|
10
10
|
* read back out as `true` or `false` by the type the Glue column declared.
|
|
11
11
|
*/
|
|
12
12
|
export declare function simAthenaSqliteAffinity(glueType: string | undefined): string;
|
|
13
|
+
/** Whether a Glue column type holds a day with no time on it. */
|
|
14
|
+
export declare function simAthenaIsDateType(glueType: string | undefined): boolean;
|
|
13
15
|
/** Whether a Glue column type holds a boolean. */
|
|
14
16
|
export declare function simAthenaIsBooleanType(glueType: string | undefined): boolean;
|
|
15
17
|
/** The type name Athena reports for a Glue column type. */
|
|
@@ -65,6 +65,10 @@ export function simAthenaSqliteAffinity(glueType) {
|
|
|
65
65
|
}
|
|
66
66
|
return realTypes.has(type) ? "REAL" : "TEXT";
|
|
67
67
|
}
|
|
68
|
+
/** Whether a Glue column type holds a day with no time on it. */
|
|
69
|
+
export function simAthenaIsDateType(glueType) {
|
|
70
|
+
return baseType(glueType) === "date";
|
|
71
|
+
}
|
|
68
72
|
/** Whether a Glue column type holds a boolean. */
|
|
69
73
|
export function simAthenaIsBooleanType(glueType) {
|
|
70
74
|
return baseType(glueType) === "boolean";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SimAthenaCatalogTable } from "../table/sim-athena-catalog-table.js";
|
|
2
|
+
import type { SimAthenaDelimitedFormat } from "./sim-athena-delimited-records.js";
|
|
3
|
+
/**
|
|
4
|
+
* How one table's delimited objects are read, or nothing where its SerDe names
|
|
5
|
+
* no delimited format.
|
|
6
|
+
*/
|
|
7
|
+
export declare function simAthenaDelimitedFormat(table: SimAthenaCatalogTable, library: string): SimAthenaDelimitedFormat | undefined;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The SerDe class names that mean delimited text, and what each one reads
|
|
3
|
+
* before the table's own parameters are applied.
|
|
4
|
+
*
|
|
5
|
+
* `OpenCSVSerde` is comma separated and quoted. `LazySimpleSerDe` is what
|
|
6
|
+
* `ROW FORMAT DELIMITED` gives: it quotes nothing, and its own default
|
|
7
|
+
* delimiter is the control character Hive has always used rather than a comma.
|
|
8
|
+
*/
|
|
9
|
+
const delimitedSerDes = new Map([
|
|
10
|
+
[
|
|
11
|
+
"org.apache.hadoop.hive.serde2.opencsvserde",
|
|
12
|
+
{ delimiter: ",", quoted: true },
|
|
13
|
+
],
|
|
14
|
+
[
|
|
15
|
+
"org.apache.hadoop.hive.serde2.lazy.lazysimpleserde",
|
|
16
|
+
{ delimiter: "\u{1}", quoted: false },
|
|
17
|
+
],
|
|
18
|
+
]);
|
|
19
|
+
/**
|
|
20
|
+
* How one table's delimited objects are read, or nothing where its SerDe names
|
|
21
|
+
* no delimited format.
|
|
22
|
+
*/
|
|
23
|
+
export function simAthenaDelimitedFormat(table, library) {
|
|
24
|
+
const defaults = delimitedSerDes.get(library);
|
|
25
|
+
if (defaults === undefined) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const parameters = table.storageDescriptor?.SerdeInfo?.Parameters ?? {};
|
|
29
|
+
const quoted = defaults.quoted || parameters["quoteChar"] !== undefined;
|
|
30
|
+
return {
|
|
31
|
+
delimiter: parameters["separatorChar"] ??
|
|
32
|
+
parameters["field.delim"] ??
|
|
33
|
+
defaults.delimiter,
|
|
34
|
+
quote: quoted ? (parameters["quoteChar"] ?? '"') : undefined,
|
|
35
|
+
escape: quoted ? (parameters["escapeChar"] ?? "\\") : undefined,
|
|
36
|
+
skipHeaderLines: skippedHeaderLines(table),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* How many lines of every object are a header rather than a row.
|
|
41
|
+
*
|
|
42
|
+
* `skip.header.line.count` is a table property on real Athena, and the storage
|
|
43
|
+
* descriptor's own parameters are read as well because a template can put it
|
|
44
|
+
* in either place.
|
|
45
|
+
*/
|
|
46
|
+
function skippedHeaderLines(table) {
|
|
47
|
+
const declared = table.parameters["skip.header.line.count"] ??
|
|
48
|
+
table.storageDescriptor?.Parameters?.["skip.header.line.count"];
|
|
49
|
+
const count = Math.trunc(Number(declared ?? ""));
|
|
50
|
+
return Number.isFinite(count) && count > 0 ? count : 0;
|
|
51
|
+
}
|
|
@@ -10,6 +10,11 @@ import { simAthenaResultColumns } from "./sim-athena-result-columns.js";
|
|
|
10
10
|
export function simAthenaEngineResult(database, sql, loaded) {
|
|
11
11
|
const statement = database.prepare(sql);
|
|
12
12
|
statement.setReturnArrays(true);
|
|
13
|
+
// A whole number comes back as a BigInt, because SQLite holds a 64 bit
|
|
14
|
+
// integer and reading one past what a double represents exactly raises
|
|
15
|
+
// otherwise. A Parquet `bigint` column is what carries values that large.
|
|
16
|
+
// Every one of them renders the same either way.
|
|
17
|
+
statement.setReadBigInts(true);
|
|
13
18
|
const rows = statement.all();
|
|
14
19
|
const columns = simAthenaResultColumns(statement.columns(), rows, loaded);
|
|
15
20
|
return new SimAthenaResolvedResult({
|
|
@@ -4,6 +4,22 @@ import type { SimAthenaResolvedResult } from "../result/sim-athena-resolved-resu
|
|
|
4
4
|
import type { SimAthenaSqlParser } from "./sim-athena-parser-module.js";
|
|
5
5
|
import type { SimAthenaSqliteModule } from "./sim-athena-sqlite-module.js";
|
|
6
6
|
import type { SimAthenaTableObjects } from "./sim-athena-table-objects.js";
|
|
7
|
+
/**
|
|
8
|
+
* What the engine came to for one query.
|
|
9
|
+
*
|
|
10
|
+
* A turn-down carries why, because a strict engine fails the query with it and
|
|
11
|
+
* a reader of that failing test has to learn which of them it hit.
|
|
12
|
+
*/
|
|
13
|
+
export interface SimAthenaEngineAnswer {
|
|
14
|
+
/** The rows, where the engine ran the statement. */
|
|
15
|
+
readonly result: SimAthenaResolvedResult | undefined;
|
|
16
|
+
/** What the engine could not do, where it turned the query down. */
|
|
17
|
+
readonly turnedDown: string | undefined;
|
|
18
|
+
}
|
|
19
|
+
/** One answer the engine ran for real. */
|
|
20
|
+
export declare function simAthenaEngineAnswered(result: SimAthenaResolvedResult): SimAthenaEngineAnswer;
|
|
21
|
+
/** One query the engine turned down, and why. */
|
|
22
|
+
export declare function simAthenaEngineTurnedDown(turnedDown: string): SimAthenaEngineAnswer;
|
|
7
23
|
/** What one query is run with, once the engine is on and has somewhere to read. */
|
|
8
24
|
export interface SimAthenaEngineRun {
|
|
9
25
|
readonly parser: SimAthenaSqlParser;
|
|
@@ -22,6 +38,10 @@ export interface SimAthenaEngineRun {
|
|
|
22
38
|
* can fail on an object the caller cannot open, building the database can fail
|
|
23
39
|
* on a schema SQLite refuses, and running the statement can fail on anything
|
|
24
40
|
* the parser wrote that SQLite does not have. All three leave the declared
|
|
25
|
-
* result to answer.
|
|
41
|
+
* result to answer. So does a Parquet table in a project that has not installed
|
|
42
|
+
* the reader, and `hyparquet` is named in the docs for that reason.
|
|
43
|
+
*
|
|
44
|
+
* Each of them carries a reason out, which a strict engine fails the query
|
|
45
|
+
* with.
|
|
26
46
|
*/
|
|
27
|
-
export declare function simAthenaEngineRun(run: SimAthenaEngineRun): Promise<
|
|
47
|
+
export declare function simAthenaEngineRun(run: SimAthenaEngineRun): Promise<SimAthenaEngineAnswer>;
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
import { simAthenaRunFailure } from "./sim-athena-turn-down.js";
|
|
1
2
|
import { simAthenaEngineResult } from "./sim-athena-engine-result.js";
|
|
2
3
|
import { simAthenaSqliteDatabase } from "./sim-athena-sqlite-database.js";
|
|
3
|
-
import {
|
|
4
|
+
import { simAthenaLoadedTables } from "./sim-athena-loaded-tables.js";
|
|
5
|
+
/** One answer the engine ran for real. */
|
|
6
|
+
export function simAthenaEngineAnswered(result) {
|
|
7
|
+
return { result, turnedDown: undefined };
|
|
8
|
+
}
|
|
9
|
+
/** One query the engine turned down, and why. */
|
|
10
|
+
export function simAthenaEngineTurnedDown(turnedDown) {
|
|
11
|
+
return { result: undefined, turnedDown };
|
|
12
|
+
}
|
|
4
13
|
/**
|
|
5
14
|
* Load the tables, build the database and run the statement.
|
|
6
15
|
*
|
|
@@ -8,13 +17,17 @@ import { simAthenaTableRows, } from "./sim-athena-table-rows.js";
|
|
|
8
17
|
* can fail on an object the caller cannot open, building the database can fail
|
|
9
18
|
* on a schema SQLite refuses, and running the statement can fail on anything
|
|
10
19
|
* the parser wrote that SQLite does not have. All three leave the declared
|
|
11
|
-
* result to answer.
|
|
20
|
+
* result to answer. So does a Parquet table in a project that has not installed
|
|
21
|
+
* the reader, and `hyparquet` is named in the docs for that reason.
|
|
22
|
+
*
|
|
23
|
+
* Each of them carries a reason out, which a strict engine fails the query
|
|
24
|
+
* with.
|
|
12
25
|
*/
|
|
13
26
|
export async function simAthenaEngineRun(run) {
|
|
14
27
|
try {
|
|
15
|
-
const loaded = await
|
|
16
|
-
if (loaded ===
|
|
17
|
-
return
|
|
28
|
+
const loaded = await simAthenaLoadedTables(run);
|
|
29
|
+
if (typeof loaded === "string") {
|
|
30
|
+
return simAthenaEngineTurnedDown(loaded);
|
|
18
31
|
}
|
|
19
32
|
const database = simAthenaSqliteDatabase({
|
|
20
33
|
sqlite: run.sqlite,
|
|
@@ -23,36 +36,13 @@ export async function simAthenaEngineRun(run) {
|
|
|
23
36
|
startedAt: run.startedAt,
|
|
24
37
|
});
|
|
25
38
|
try {
|
|
26
|
-
return simAthenaEngineResult(database, run.sql, loaded);
|
|
39
|
+
return simAthenaEngineAnswered(simAthenaEngineResult(database, run.sql, loaded));
|
|
27
40
|
}
|
|
28
41
|
finally {
|
|
29
42
|
database.close();
|
|
30
43
|
}
|
|
31
44
|
}
|
|
32
|
-
catch {
|
|
33
|
-
return
|
|
45
|
+
catch (error) {
|
|
46
|
+
return simAthenaEngineTurnedDown(simAthenaRunFailure(error));
|
|
34
47
|
}
|
|
35
48
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Every table the query reads, loaded once each.
|
|
38
|
-
*
|
|
39
|
-
* A statement naming one table twice resolves to two entries, and loading each
|
|
40
|
-
* of them would read the objects twice and then fail to create the table.
|
|
41
|
-
*/
|
|
42
|
-
async function loadedTables(run) {
|
|
43
|
-
const loaded = await Promise.all(distinctTables(run.tables).map(async (planned) => simAthenaTableRows({ planned, objects: run.objects, caller: run.caller })));
|
|
44
|
-
return loaded.includes(undefined)
|
|
45
|
-
? undefined
|
|
46
|
-
: loaded;
|
|
47
|
-
}
|
|
48
|
-
function distinctTables(tables) {
|
|
49
|
-
const seen = new Set();
|
|
50
|
-
return tables.filter((planned) => {
|
|
51
|
-
const identity = `${planned.table.databaseName}.${planned.table.name}`.toLowerCase();
|
|
52
|
-
if (seen.has(identity)) {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
seen.add(identity);
|
|
56
|
-
return true;
|
|
57
|
-
});
|
|
58
|
-
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SimAthenaEngineRun } from "./sim-athena-engine-run.js";
|
|
2
|
+
import { type SimAthenaLoadedTable } from "./sim-athena-table-rows.js";
|
|
3
|
+
/**
|
|
4
|
+
* Every table the query reads, loaded once each, or the reason one of them
|
|
5
|
+
* could not be.
|
|
6
|
+
*
|
|
7
|
+
* A statement naming one table twice resolves to two entries, and loading each
|
|
8
|
+
* of them would read the objects twice and then fail to create the table.
|
|
9
|
+
*/
|
|
10
|
+
export declare function simAthenaLoadedTables(run: SimAthenaEngineRun): Promise<readonly SimAthenaLoadedTable[] | string>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { simAthenaTableRows, } from "./sim-athena-table-rows.js";
|
|
2
|
+
import { simAthenaUnreadableFormat } from "./sim-athena-turn-down.js";
|
|
3
|
+
/**
|
|
4
|
+
* Every table the query reads, loaded once each, or the reason one of them
|
|
5
|
+
* could not be.
|
|
6
|
+
*
|
|
7
|
+
* A statement naming one table twice resolves to two entries, and loading each
|
|
8
|
+
* of them would read the objects twice and then fail to create the table.
|
|
9
|
+
*/
|
|
10
|
+
export async function simAthenaLoadedTables(run) {
|
|
11
|
+
const loaded = await Promise.all(distinctTables(run.tables).map(async (planned) => ({
|
|
12
|
+
planned,
|
|
13
|
+
rows: await simAthenaTableRows({
|
|
14
|
+
planned,
|
|
15
|
+
objects: run.objects,
|
|
16
|
+
caller: run.caller,
|
|
17
|
+
}),
|
|
18
|
+
})));
|
|
19
|
+
const unread = loaded.find((one) => one.rows === undefined);
|
|
20
|
+
if (unread !== undefined) {
|
|
21
|
+
return simAthenaUnreadableFormat(unread.planned.table);
|
|
22
|
+
}
|
|
23
|
+
return loaded.flatMap((one) => one.rows ?? []);
|
|
24
|
+
}
|
|
25
|
+
function distinctTables(tables) {
|
|
26
|
+
const seen = new Set();
|
|
27
|
+
return tables.filter((planned) => {
|
|
28
|
+
const identity = `${planned.table.databaseName}.${planned.table.name}`.toLowerCase();
|
|
29
|
+
if (seen.has(identity)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
seen.add(identity);
|
|
33
|
+
return true;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** One Parquet file's rows, keyed by the names the file's own schema holds. */
|
|
2
|
+
export type SimAthenaParquetRow = Record<string, unknown>;
|
|
3
|
+
/** What one Parquet file is read with. */
|
|
4
|
+
export interface SimAthenaParquetOptions {
|
|
5
|
+
readonly file: ArrayBuffer;
|
|
6
|
+
readonly compressors: Readonly<Record<string, (bytes: Uint8Array, size: number) => Uint8Array>>;
|
|
7
|
+
/** Whether a `BYTE_ARRAY` column reads as text, which a Hive string is. */
|
|
8
|
+
readonly utf8: boolean;
|
|
9
|
+
}
|
|
10
|
+
/** The one thing the engine needs out of `hyparquet`. */
|
|
11
|
+
export interface SimAthenaParquetReader {
|
|
12
|
+
parquetReadObjects(options: SimAthenaParquetOptions): Promise<SimAthenaParquetRow[]>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The Parquet reader, loaded the first time a query reaches a Parquet table.
|
|
16
|
+
*
|
|
17
|
+
* `hyparquet` is an optional peer dependency, so a project querying only JSON
|
|
18
|
+
* and CSV tables never installs it. Loading here rather than in `enable()` is
|
|
19
|
+
* what keeps that true, since the engine has no idea what a test will query
|
|
20
|
+
* until it does.
|
|
21
|
+
*
|
|
22
|
+
* The package name is a parameter so that a test can ask for one that is not
|
|
23
|
+
* installed and read what a project without the package is told.
|
|
24
|
+
*/
|
|
25
|
+
export declare function simAthenaParquetReader(packageName?: string): Promise<SimAthenaParquetReader>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { SimAthenaSetUpError } from "../error/sim-athena.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The package name, held as a variable rather than written into the `import()`
|
|
4
|
+
* so that building this repository never turns an optional dependency into a
|
|
5
|
+
* required one.
|
|
6
|
+
*/
|
|
7
|
+
const parquetPackage = "hyparquet";
|
|
8
|
+
const missingPackage = `Simulated Athena needs hyparquet to read a Parquet table. Add it to your ` +
|
|
9
|
+
`project as a dev dependency, or declare what each query over that table ` +
|
|
10
|
+
`answers with through results().`;
|
|
11
|
+
/**
|
|
12
|
+
* The Parquet reader, loaded the first time a query reaches a Parquet table.
|
|
13
|
+
*
|
|
14
|
+
* `hyparquet` is an optional peer dependency, so a project querying only JSON
|
|
15
|
+
* and CSV tables never installs it. Loading here rather than in `enable()` is
|
|
16
|
+
* what keeps that true, since the engine has no idea what a test will query
|
|
17
|
+
* until it does.
|
|
18
|
+
*
|
|
19
|
+
* The package name is a parameter so that a test can ask for one that is not
|
|
20
|
+
* installed and read what a project without the package is told.
|
|
21
|
+
*/
|
|
22
|
+
export async function simAthenaParquetReader(packageName = parquetPackage) {
|
|
23
|
+
const module = await importedReader(packageName);
|
|
24
|
+
const { parquetReadObjects } = module;
|
|
25
|
+
if (typeof parquetReadObjects !== "function") {
|
|
26
|
+
throw new SimAthenaSetUpError(`${packageName} carries no parquetReadObjects. ${missingPackage}`);
|
|
27
|
+
}
|
|
28
|
+
return { parquetReadObjects };
|
|
29
|
+
}
|
|
30
|
+
async function importedReader(packageName) {
|
|
31
|
+
try {
|
|
32
|
+
return (await import(packageName));
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
const missing = new SimAthenaSetUpError(missingPackage);
|
|
36
|
+
missing.cause = error;
|
|
37
|
+
throw missing;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SimAthenaEngineRow } from "./sim-athena-engine-row.js";
|
|
2
|
+
/**
|
|
3
|
+
* One Parquet object's rows.
|
|
4
|
+
*
|
|
5
|
+
* A Parquet file carries its own schema, so nothing here reads the table's Glue
|
|
6
|
+
* columns. A column the table declares and the file has not got reads null, the
|
|
7
|
+
* way a JSON record missing a key already does.
|
|
8
|
+
*
|
|
9
|
+
* `utf8` reads a `BYTE_ARRAY` column as text. Hive's `string` is what nearly
|
|
10
|
+
* every one of them holds, and a Glue `binary` column already arrives as text
|
|
11
|
+
* everywhere else in this engine.
|
|
12
|
+
*/
|
|
13
|
+
export declare function simAthenaParquetRows(bytes: Uint8Array): Promise<readonly SimAthenaEngineRow[]>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { brotliDecompressSync, gunzipSync, inflateSync, zstdDecompressSync, } from "node:zlib";
|
|
2
|
+
import { simAthenaParquetReader } from "./sim-athena-parquet-module.js";
|
|
3
|
+
/**
|
|
4
|
+
* The Parquet codecs Node's own zlib covers.
|
|
5
|
+
*
|
|
6
|
+
* `hyparquet` decompresses `UNCOMPRESSED` and `SNAPPY` itself, and snappy is
|
|
7
|
+
* what Athena and Glue write by default. The three here are what `node:zlib`
|
|
8
|
+
* adds for nothing. `LZO`, `LZ4` and `LZ4_RAW` are what is left, and a file in
|
|
9
|
+
* one of those turns the query down.
|
|
10
|
+
*
|
|
11
|
+
* A Parquet file compresses per column chunk inside itself, so none of this
|
|
12
|
+
* has anything to do with the codec an object's key names.
|
|
13
|
+
*/
|
|
14
|
+
const compressors = {
|
|
15
|
+
GZIP: (bytes, size) => sized(gunzipSync(bytes), size),
|
|
16
|
+
ZSTD: (bytes, size) => sized(zstdDecompressSync(bytes), size),
|
|
17
|
+
BROTLI: (bytes, size) => sized(brotliDecompressSync(bytes), size),
|
|
18
|
+
DEFLATE: (bytes, size) => sized(inflateSync(bytes), size),
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* One decompressed page, cut to the length the page header declares.
|
|
22
|
+
*
|
|
23
|
+
* `hyparquet` checks the length itself and refuses a page that comes back
|
|
24
|
+
* longer, which a codec padding its output would produce.
|
|
25
|
+
*/
|
|
26
|
+
function sized(buffer, size) {
|
|
27
|
+
return new Uint8Array(buffer.buffer, buffer.byteOffset, size);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* One Parquet object's rows.
|
|
31
|
+
*
|
|
32
|
+
* A Parquet file carries its own schema, so nothing here reads the table's Glue
|
|
33
|
+
* columns. A column the table declares and the file has not got reads null, the
|
|
34
|
+
* way a JSON record missing a key already does.
|
|
35
|
+
*
|
|
36
|
+
* `utf8` reads a `BYTE_ARRAY` column as text. Hive's `string` is what nearly
|
|
37
|
+
* every one of them holds, and a Glue `binary` column already arrives as text
|
|
38
|
+
* everywhere else in this engine.
|
|
39
|
+
*/
|
|
40
|
+
export async function simAthenaParquetRows(bytes) {
|
|
41
|
+
const reader = await simAthenaParquetReader();
|
|
42
|
+
return reader.parquetReadObjects({
|
|
43
|
+
file: arrayBuffer(bytes),
|
|
44
|
+
compressors,
|
|
45
|
+
utf8: true,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* One object's bytes as the `ArrayBuffer` the reader takes.
|
|
50
|
+
*
|
|
51
|
+
* A `Buffer` read out of simulated S3 is a view onto a larger pool, so the
|
|
52
|
+
* whole of its own buffer is more than the object and the offsets have to be
|
|
53
|
+
* carried through.
|
|
54
|
+
*/
|
|
55
|
+
function arrayBuffer(bytes) {
|
|
56
|
+
return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
57
|
+
}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
|
|
2
2
|
import type { SimAthenaPlannedTable } from "../execution/sim-athena-query-refusal.js";
|
|
3
|
-
import type
|
|
3
|
+
import { type SimAthenaEngineAnswer } from "./sim-athena-engine-run.js";
|
|
4
4
|
import type { SimAthenaTableObjects } from "./sim-athena-table-objects.js";
|
|
5
|
+
/** How one scope's engine is turned on. */
|
|
6
|
+
export interface SimAthenaEngineOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Whether a query the engine turns down fails rather than falling back.
|
|
9
|
+
*
|
|
10
|
+
* Off by default, which leaves every turn-down answering from a declaration
|
|
11
|
+
* the way it always has. A test suite meaning to exercise the engine turns
|
|
12
|
+
* this on, and then a query the engine quietly stopped running shows up as a
|
|
13
|
+
* failing test rather than as one passing on rows nobody meant to use.
|
|
14
|
+
*/
|
|
15
|
+
readonly strict?: boolean;
|
|
16
|
+
}
|
|
5
17
|
/** What one query is run against. */
|
|
6
18
|
export interface SimAthenaEngineRequest {
|
|
7
19
|
readonly queryString: string;
|
|
@@ -28,12 +40,15 @@ export interface SimAthenaEngineRequest {
|
|
|
28
40
|
* Everything the engine cannot do, it turns down. A statement Athena's grammar
|
|
29
41
|
* refuses, a table in a format it has no reader for, an object it cannot open
|
|
30
42
|
* and a statement SQLite will not run all end the same way: no result, and the
|
|
31
|
-
* declaration a test wrote answers the query instead.
|
|
43
|
+
* declaration a test wrote answers the query instead. A strict engine fails the
|
|
44
|
+
* query instead of falling back, and the reason says which of them it hit.
|
|
32
45
|
*/
|
|
33
46
|
export declare class SimAthenaQueryEngine {
|
|
34
47
|
#private;
|
|
35
48
|
/** Whether this scope runs queries rather than answering from declarations. */
|
|
36
49
|
get isEnabled(): boolean;
|
|
50
|
+
/** Whether a query this engine turns down fails rather than falling back. */
|
|
51
|
+
get isStrict(): boolean;
|
|
37
52
|
/**
|
|
38
53
|
* Run queries in this scope for real, loading the SQL parser.
|
|
39
54
|
*
|
|
@@ -41,11 +56,14 @@ export declare class SimAthenaQueryEngine {
|
|
|
41
56
|
* optional peer dependency, so a project that never runs a query never
|
|
42
57
|
* installs it.
|
|
43
58
|
*/
|
|
44
|
-
enable(): Promise<void>;
|
|
59
|
+
enable(options?: SimAthenaEngineOptions): Promise<void>;
|
|
45
60
|
/** Answer queries from declarations again. */
|
|
46
61
|
disable(): void;
|
|
47
62
|
/**
|
|
48
|
-
* What one query answers with, or
|
|
63
|
+
* What one query answers with, or why the engine turned it down.
|
|
64
|
+
*
|
|
65
|
+
* An engine nobody turned on turns nothing down. It has no opinion about the
|
|
66
|
+
* query, and a scope left alone answers from declarations as it always did.
|
|
49
67
|
*/
|
|
50
|
-
run(request: SimAthenaEngineRequest): Promise<
|
|
68
|
+
run(request: SimAthenaEngineRequest): Promise<SimAthenaEngineAnswer>;
|
|
51
69
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { simAthenaEngineRun } from "./sim-athena-engine-run.js";
|
|
1
|
+
import { simAthenaEngineRun, simAthenaEngineTurnedDown, } from "./sim-athena-engine-run.js";
|
|
2
2
|
import { simAthenaSqlParser, } from "./sim-athena-parser-module.js";
|
|
3
3
|
import { simAthenaSqliteModule, } from "./sim-athena-sqlite-module.js";
|
|
4
4
|
import { simAthenaSqliteSql } from "./sim-athena-sql-translation.js";
|
|
5
|
+
import { simAthenaNoObjects } from "./sim-athena-turn-down.js";
|
|
5
6
|
/**
|
|
6
7
|
* The query engine one simulated Athena scope answers with, when a test turns
|
|
7
8
|
* it on.
|
|
@@ -18,15 +19,21 @@ import { simAthenaSqliteSql } from "./sim-athena-sql-translation.js";
|
|
|
18
19
|
* Everything the engine cannot do, it turns down. A statement Athena's grammar
|
|
19
20
|
* refuses, a table in a format it has no reader for, an object it cannot open
|
|
20
21
|
* and a statement SQLite will not run all end the same way: no result, and the
|
|
21
|
-
* declaration a test wrote answers the query instead.
|
|
22
|
+
* declaration a test wrote answers the query instead. A strict engine fails the
|
|
23
|
+
* query instead of falling back, and the reason says which of them it hit.
|
|
22
24
|
*/
|
|
23
25
|
export class SimAthenaQueryEngine {
|
|
24
26
|
#parser;
|
|
25
27
|
#sqlite;
|
|
28
|
+
#strict = false;
|
|
26
29
|
/** Whether this scope runs queries rather than answering from declarations. */
|
|
27
30
|
get isEnabled() {
|
|
28
31
|
return this.#parser !== undefined;
|
|
29
32
|
}
|
|
33
|
+
/** Whether a query this engine turns down fails rather than falling back. */
|
|
34
|
+
get isStrict() {
|
|
35
|
+
return this.#strict;
|
|
36
|
+
}
|
|
30
37
|
/**
|
|
31
38
|
* Run queries in this scope for real, loading the SQL parser.
|
|
32
39
|
*
|
|
@@ -34,32 +41,46 @@ export class SimAthenaQueryEngine {
|
|
|
34
41
|
* optional peer dependency, so a project that never runs a query never
|
|
35
42
|
* installs it.
|
|
36
43
|
*/
|
|
37
|
-
async enable() {
|
|
44
|
+
async enable(options = {}) {
|
|
38
45
|
const parser = await simAthenaSqlParser();
|
|
39
46
|
this.#sqlite = await simAthenaSqliteModule();
|
|
40
47
|
this.#parser = parser;
|
|
48
|
+
this.#strict = options.strict ?? false;
|
|
41
49
|
}
|
|
42
50
|
/** Answer queries from declarations again. */
|
|
43
51
|
disable() {
|
|
44
52
|
this.#parser = undefined;
|
|
53
|
+
this.#strict = false;
|
|
45
54
|
}
|
|
46
55
|
/**
|
|
47
|
-
* What one query answers with, or
|
|
56
|
+
* What one query answers with, or why the engine turned it down.
|
|
57
|
+
*
|
|
58
|
+
* An engine nobody turned on turns nothing down. It has no opinion about the
|
|
59
|
+
* query, and a scope left alone answers from declarations as it always did.
|
|
48
60
|
*/
|
|
49
61
|
async run(request) {
|
|
50
62
|
const parser = this.#parser;
|
|
51
63
|
const sqlite = this.#sqlite;
|
|
52
64
|
const { objects } = request;
|
|
53
|
-
if (parser === undefined || sqlite === undefined
|
|
54
|
-
return undefined;
|
|
65
|
+
if (parser === undefined || sqlite === undefined) {
|
|
66
|
+
return { result: undefined, turnedDown: undefined };
|
|
67
|
+
}
|
|
68
|
+
if (objects === undefined) {
|
|
69
|
+
return simAthenaEngineTurnedDown(simAthenaNoObjects);
|
|
55
70
|
}
|
|
56
|
-
const
|
|
71
|
+
const translated = simAthenaSqliteSql({
|
|
57
72
|
parser,
|
|
58
73
|
athenaSql: request.queryString,
|
|
59
74
|
tables: request.tables.map((planned) => planned.table),
|
|
60
75
|
});
|
|
61
|
-
return sql === undefined
|
|
62
|
-
?
|
|
63
|
-
: simAthenaEngineRun({
|
|
76
|
+
return translated.sql === undefined
|
|
77
|
+
? simAthenaEngineTurnedDown(translated.turnedDown)
|
|
78
|
+
: simAthenaEngineRun({
|
|
79
|
+
...request,
|
|
80
|
+
parser,
|
|
81
|
+
sqlite,
|
|
82
|
+
objects,
|
|
83
|
+
sql: translated.sql,
|
|
84
|
+
});
|
|
64
85
|
}
|
|
65
86
|
}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import type { SimAthenaCatalogTable } from "../table/sim-athena-catalog-table.js";
|
|
2
2
|
import type { SimAthenaEngineRow } from "./sim-athena-engine-row.js";
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* One object's bytes, read into the rows it holds.
|
|
5
|
+
*
|
|
6
|
+
* The bytes rather than the text, because Parquet is binary and carries its own
|
|
7
|
+
* schema. A reader may answer with a promise for the same reason, since reading
|
|
8
|
+
* one is asynchronous.
|
|
9
|
+
*/
|
|
10
|
+
export type SimAthenaRecordReader = (bytes: Uint8Array) => readonly SimAthenaEngineRow[] | Promise<readonly SimAthenaEngineRow[]>;
|
|
5
11
|
/**
|
|
6
12
|
* How one table's objects are decoded, or nothing where this simulation has no
|
|
7
13
|
* reader for what the table declares.
|
|
8
14
|
*
|
|
9
15
|
* The SerDe is what says so, the way it says so on real Athena. A table
|
|
10
|
-
* holding
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
16
|
+
* holding ORC lands here, and the query falls back to whatever a test declared.
|
|
17
|
+
* A table declaring no SerDe at all lands here too. Nothing else in the catalog
|
|
18
|
+
* says what the bytes are, and guessing would answer with nonsense where
|
|
19
|
+
* turning the query down is the honest reply.
|
|
14
20
|
*/
|
|
15
21
|
export declare function simAthenaRecordReader(table: SimAthenaCatalogTable): SimAthenaRecordReader | undefined;
|