@kensio/yulin 1.21.3 → 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/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-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 +46 -3
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +67 -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 +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-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 +7 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Brand } from "../../../util/brand.type.js";
|
|
2
2
|
import type { SimS3ObjectMetadata } from "../object/s3-object.js";
|
|
3
|
+
import { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
|
|
4
|
+
import type { SimS3ServerSideEncryption } from "../object/s3-server-side-encryption.js";
|
|
5
|
+
import { type SimS3StorageClass } from "../object/s3-storage-class.js";
|
|
3
6
|
export type SimS3UploadId = Brand<string, "SimS3UploadId">;
|
|
4
7
|
/**
|
|
5
8
|
* One numbered part of a multipart upload, as S3 holds it between the
|
|
@@ -21,6 +24,18 @@ interface SimS3MultipartUploadProperties {
|
|
|
21
24
|
readonly key: string;
|
|
22
25
|
readonly metadata: SimS3ObjectMetadata;
|
|
23
26
|
readonly initiated: Date;
|
|
27
|
+
/**
|
|
28
|
+
* Where and how the completed Object will be stored. Real S3 takes both at
|
|
29
|
+
* `CreateMultipartUpload`, alongside the metadata, rather than at completion.
|
|
30
|
+
*/
|
|
31
|
+
readonly storageClass?: SimS3StorageClass;
|
|
32
|
+
readonly serverSideEncryption?: SimS3ServerSideEncryption | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The tags the completed Object will carry. Real S3 takes these at
|
|
35
|
+
* `CreateMultipartUpload` too, for the same reason it takes the metadata
|
|
36
|
+
* there: the request describing the Object arrives before its bytes.
|
|
37
|
+
*/
|
|
38
|
+
readonly tags?: SimS3ObjectTagSet | undefined;
|
|
24
39
|
}
|
|
25
40
|
/**
|
|
26
41
|
* A simulated S3 multipart upload in progress.
|
|
@@ -40,6 +55,9 @@ export declare class SimS3MultipartUpload {
|
|
|
40
55
|
readonly key: string;
|
|
41
56
|
readonly metadata: SimS3ObjectMetadata;
|
|
42
57
|
readonly initiated: Date;
|
|
58
|
+
readonly storageClass: SimS3StorageClass;
|
|
59
|
+
readonly serverSideEncryption: SimS3ServerSideEncryption | undefined;
|
|
60
|
+
readonly tags: SimS3ObjectTagSet;
|
|
43
61
|
private readonly parts;
|
|
44
62
|
constructor(properties: SimS3MultipartUploadProperties);
|
|
45
63
|
/**
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
+
import { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
|
|
3
|
+
import { simS3DefaultStorageClass, } from "../object/s3-storage-class.js";
|
|
2
4
|
/**
|
|
3
5
|
* One numbered part of a multipart upload, as S3 holds it between the
|
|
4
6
|
* `UploadPart` that stored it and the `CompleteMultipartUpload` that joins it
|
|
@@ -37,12 +39,18 @@ export class SimS3MultipartUpload {
|
|
|
37
39
|
key;
|
|
38
40
|
metadata;
|
|
39
41
|
initiated;
|
|
42
|
+
storageClass;
|
|
43
|
+
serverSideEncryption;
|
|
44
|
+
tags;
|
|
40
45
|
parts = new Map();
|
|
41
46
|
constructor(properties) {
|
|
42
47
|
this.uploadId = properties.uploadId;
|
|
43
48
|
this.key = properties.key;
|
|
44
49
|
this.metadata = properties.metadata;
|
|
45
50
|
this.initiated = new Date(properties.initiated);
|
|
51
|
+
this.storageClass = properties.storageClass ?? simS3DefaultStorageClass;
|
|
52
|
+
this.serverSideEncryption = properties.serverSideEncryption;
|
|
53
|
+
this.tags = properties.tags ?? SimS3ObjectTagSet.empty();
|
|
46
54
|
}
|
|
47
55
|
/**
|
|
48
56
|
* Store a numbered part, replacing whatever was under that number.
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { SimS3ObjectMetadata } from "../object/s3-object.js";
|
|
2
|
+
import type { SimS3ObjectTagSet } from "../object/s3-object-tags.js";
|
|
3
|
+
import type { SimS3ServerSideEncryption } from "../object/s3-server-side-encryption.js";
|
|
4
|
+
import type { SimS3StorageClass } from "../object/s3-storage-class.js";
|
|
2
5
|
import { SimS3MultipartUpload, type SimS3UploadId } from "./sim-s3-multipart-upload.js";
|
|
3
6
|
interface SimS3StartUploadProperties {
|
|
4
7
|
readonly key: string;
|
|
5
8
|
readonly metadata: SimS3ObjectMetadata;
|
|
6
9
|
readonly initiated: Date;
|
|
10
|
+
readonly storageClass?: SimS3StorageClass;
|
|
11
|
+
readonly serverSideEncryption?: SimS3ServerSideEncryption | undefined;
|
|
12
|
+
readonly tags?: SimS3ObjectTagSet | undefined;
|
|
7
13
|
}
|
|
8
14
|
/**
|
|
9
15
|
* The multipart uploads one Bucket has in progress.
|
|
@@ -23,6 +23,11 @@ export class SimS3MultipartUploads {
|
|
|
23
23
|
key: properties.key,
|
|
24
24
|
metadata: properties.metadata,
|
|
25
25
|
initiated: properties.initiated,
|
|
26
|
+
...(properties.storageClass !== undefined && {
|
|
27
|
+
storageClass: properties.storageClass,
|
|
28
|
+
}),
|
|
29
|
+
serverSideEncryption: properties.serverSideEncryption,
|
|
30
|
+
tags: properties.tags,
|
|
26
31
|
});
|
|
27
32
|
this.uploads.set(upload.uploadId, upload);
|
|
28
33
|
return upload;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many things one running scheduled task is waiting on the clock for.
|
|
3
|
+
*/
|
|
4
|
+
export interface BackgroundClockWait {
|
|
5
|
+
count: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Which scheduled tasks are waiting for the clock rather than for the host.
|
|
9
|
+
*
|
|
10
|
+
* Completing a simulation waits for the work that can still get somewhere on
|
|
11
|
+
* its own. A task blocked on an instant the clock has not reached is not that
|
|
12
|
+
* kind of work: only moving the clock releases it, and whatever moves the
|
|
13
|
+
* clock is what waits for completion. Left in, it would be waiting for itself.
|
|
14
|
+
*
|
|
15
|
+
* A task says so for itself, from wherever inside it the wait happens, so a
|
|
16
|
+
* scheduler needs no way of telling one kind of work from another. Code
|
|
17
|
+
* running outside a scheduled task has nothing to say, and changes nothing by
|
|
18
|
+
* saying it, which is what keeps this invisible to a caller who holds the
|
|
19
|
+
* promise itself.
|
|
20
|
+
*/
|
|
21
|
+
export declare class BackgroundClockWaits {
|
|
22
|
+
private readonly storage;
|
|
23
|
+
private started;
|
|
24
|
+
/**
|
|
25
|
+
* Run outstanding work with a record of what it waits on the clock for.
|
|
26
|
+
*/
|
|
27
|
+
around<T>(wait: BackgroundClockWait, work: () => Promise<T>): Promise<T>;
|
|
28
|
+
/**
|
|
29
|
+
* The work in a set that is neither waiting on the clock nor the work asking
|
|
30
|
+
* about it.
|
|
31
|
+
*/
|
|
32
|
+
runnable(held: ReadonlyMap<Promise<unknown>, BackgroundClockWait>): Promise<unknown>[];
|
|
33
|
+
/**
|
|
34
|
+
* Whether the code running now is already inside outstanding work, and so
|
|
35
|
+
* already counted.
|
|
36
|
+
*/
|
|
37
|
+
get inWork(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Say that the task running now is waiting for simulated time to reach an
|
|
40
|
+
* instant, and get back the way to say it no longer is.
|
|
41
|
+
*/
|
|
42
|
+
begin(): () => void;
|
|
43
|
+
/**
|
|
44
|
+
* Resolves the next time a task starts waiting on the clock.
|
|
45
|
+
*
|
|
46
|
+
* Whoever is waiting for the simulation to complete takes this alongside the
|
|
47
|
+
* tasks it is waiting for, so a task that parks part way through stops the
|
|
48
|
+
* wait rather than extending it forever.
|
|
49
|
+
*/
|
|
50
|
+
get next(): Promise<undefined>;
|
|
51
|
+
private wake;
|
|
52
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
/**
|
|
3
|
+
* Which scheduled tasks are waiting for the clock rather than for the host.
|
|
4
|
+
*
|
|
5
|
+
* Completing a simulation waits for the work that can still get somewhere on
|
|
6
|
+
* its own. A task blocked on an instant the clock has not reached is not that
|
|
7
|
+
* kind of work: only moving the clock releases it, and whatever moves the
|
|
8
|
+
* clock is what waits for completion. Left in, it would be waiting for itself.
|
|
9
|
+
*
|
|
10
|
+
* A task says so for itself, from wherever inside it the wait happens, so a
|
|
11
|
+
* scheduler needs no way of telling one kind of work from another. Code
|
|
12
|
+
* running outside a scheduled task has nothing to say, and changes nothing by
|
|
13
|
+
* saying it, which is what keeps this invisible to a caller who holds the
|
|
14
|
+
* promise itself.
|
|
15
|
+
*/
|
|
16
|
+
export class BackgroundClockWaits {
|
|
17
|
+
storage = new AsyncLocalStorage();
|
|
18
|
+
started = Promise.withResolvers();
|
|
19
|
+
/**
|
|
20
|
+
* Run outstanding work with a record of what it waits on the clock for.
|
|
21
|
+
*/
|
|
22
|
+
async around(wait, work) {
|
|
23
|
+
return await this.storage.run(wait, work);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The work in a set that is neither waiting on the clock nor the work asking
|
|
27
|
+
* about it.
|
|
28
|
+
*/
|
|
29
|
+
runnable(held) {
|
|
30
|
+
const own = this.storage.getStore();
|
|
31
|
+
return held
|
|
32
|
+
.entries()
|
|
33
|
+
.filter(([, wait]) => wait.count === 0 && wait !== own)
|
|
34
|
+
.map(([promise]) => promise)
|
|
35
|
+
.toArray();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whether the code running now is already inside outstanding work, and so
|
|
39
|
+
* already counted.
|
|
40
|
+
*/
|
|
41
|
+
get inWork() {
|
|
42
|
+
return this.storage.getStore() !== undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Say that the task running now is waiting for simulated time to reach an
|
|
46
|
+
* instant, and get back the way to say it no longer is.
|
|
47
|
+
*/
|
|
48
|
+
begin() {
|
|
49
|
+
const wait = this.storage.getStore();
|
|
50
|
+
if (wait === undefined) {
|
|
51
|
+
return () => {
|
|
52
|
+
// Nothing scheduled is waiting, so nothing stops waiting either.
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
wait.count += 1;
|
|
56
|
+
this.wake();
|
|
57
|
+
return () => {
|
|
58
|
+
wait.count -= 1;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolves the next time a task starts waiting on the clock.
|
|
63
|
+
*
|
|
64
|
+
* Whoever is waiting for the simulation to complete takes this alongside the
|
|
65
|
+
* tasks it is waiting for, so a task that parks part way through stops the
|
|
66
|
+
* wait rather than extending it forever.
|
|
67
|
+
*/
|
|
68
|
+
get next() {
|
|
69
|
+
return this.started.promise;
|
|
70
|
+
}
|
|
71
|
+
wake() {
|
|
72
|
+
const { resolve } = this.started;
|
|
73
|
+
this.started = Promise.withResolvers();
|
|
74
|
+
resolve(undefined);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { BackgroundTask } from "./background.js";
|
|
2
|
+
/**
|
|
3
|
+
* The work one scheduler has outstanding, and how much of it is worth waiting
|
|
4
|
+
* for.
|
|
5
|
+
*
|
|
6
|
+
* Work gets here two ways. A task the scheduler was handed is held here until
|
|
7
|
+
* it settles, and its failure is kept for whoever waits for the simulation to
|
|
8
|
+
* complete. Work a caller started is held here too, but answers to that caller
|
|
9
|
+
* instead, because reporting the same failure twice would fail somebody who
|
|
10
|
+
* never asked for the work.
|
|
11
|
+
*
|
|
12
|
+
* Either way, what completion waits for is what can still get somewhere on its
|
|
13
|
+
* own. Work waiting on the clock cannot, and neither can the work asking for
|
|
14
|
+
* the simulation to settle.
|
|
15
|
+
*/
|
|
16
|
+
export declare class BackgroundPendingTasks {
|
|
17
|
+
#private;
|
|
18
|
+
/**
|
|
19
|
+
* Hold a task until it settles, keeping how it settled for whoever waits.
|
|
20
|
+
*/
|
|
21
|
+
hold(task: BackgroundTask): void;
|
|
22
|
+
/**
|
|
23
|
+
* Hold work a caller started, answering with what it settles with.
|
|
24
|
+
*
|
|
25
|
+
* Work already running inside a held task is counted where it is, and simply
|
|
26
|
+
* runs.
|
|
27
|
+
*/
|
|
28
|
+
holdCallers<T>(work: () => Promise<T>): Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Say that the held task running now is waiting on the clock.
|
|
31
|
+
*/
|
|
32
|
+
waitingOnClock(): () => void;
|
|
33
|
+
/**
|
|
34
|
+
* How much work is outstanding, whatever it is waiting for.
|
|
35
|
+
*/
|
|
36
|
+
get size(): number;
|
|
37
|
+
/**
|
|
38
|
+
* Wait until nothing is outstanding but work that is waiting on the clock.
|
|
39
|
+
*
|
|
40
|
+
* Work that parks part way through ends the wait rather than extending it:
|
|
41
|
+
* only moving the clock releases it, and moving the clock is what waits
|
|
42
|
+
* here. The loop then looks again at what is left running, so work that
|
|
43
|
+
* carries on is waited for again.
|
|
44
|
+
*/
|
|
45
|
+
complete(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* The work completion has anything to wait for, which is whatever is
|
|
48
|
+
* neither waiting on the clock nor waiting for completion itself.
|
|
49
|
+
*
|
|
50
|
+
* Work that asks for the simulation to settle from inside itself is left
|
|
51
|
+
* out. A handler advancing the clock is the ordinary case, and waiting for
|
|
52
|
+
* the invocation it is part of would be waiting for itself.
|
|
53
|
+
*/
|
|
54
|
+
running(): Promise<unknown>[];
|
|
55
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { BackgroundSettledTasks } from "./background-settled-tasks.js";
|
|
2
|
+
import { BackgroundClockWaits, } from "./background-clock-waits.js";
|
|
3
|
+
/**
|
|
4
|
+
* The work one scheduler has outstanding, and how much of it is worth waiting
|
|
5
|
+
* for.
|
|
6
|
+
*
|
|
7
|
+
* Work gets here two ways. A task the scheduler was handed is held here until
|
|
8
|
+
* it settles, and its failure is kept for whoever waits for the simulation to
|
|
9
|
+
* complete. Work a caller started is held here too, but answers to that caller
|
|
10
|
+
* instead, because reporting the same failure twice would fail somebody who
|
|
11
|
+
* never asked for the work.
|
|
12
|
+
*
|
|
13
|
+
* Either way, what completion waits for is what can still get somewhere on its
|
|
14
|
+
* own. Work waiting on the clock cannot, and neither can the work asking for
|
|
15
|
+
* the simulation to settle.
|
|
16
|
+
*/
|
|
17
|
+
export class BackgroundPendingTasks {
|
|
18
|
+
#held = new Map();
|
|
19
|
+
#clockWaits = new BackgroundClockWaits();
|
|
20
|
+
/**
|
|
21
|
+
* Hold a task until it settles, keeping how it settled for whoever waits.
|
|
22
|
+
*/
|
|
23
|
+
hold(task) {
|
|
24
|
+
const wait = { count: 0 };
|
|
25
|
+
this.#keep(wait, this.#clockWaits.around(wait, task));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Hold work a caller started, answering with what it settles with.
|
|
29
|
+
*
|
|
30
|
+
* Work already running inside a held task is counted where it is, and simply
|
|
31
|
+
* runs.
|
|
32
|
+
*/
|
|
33
|
+
async holdCallers(work) {
|
|
34
|
+
if (this.#clockWaits.inWork) {
|
|
35
|
+
return await work();
|
|
36
|
+
}
|
|
37
|
+
const wait = { count: 0 };
|
|
38
|
+
const answer = this.#clockWaits.around(wait, work);
|
|
39
|
+
this.#keep(wait, ignoringFailure(answer));
|
|
40
|
+
return await answer;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Say that the held task running now is waiting on the clock.
|
|
44
|
+
*/
|
|
45
|
+
waitingOnClock() {
|
|
46
|
+
return this.#clockWaits.begin();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* How much work is outstanding, whatever it is waiting for.
|
|
50
|
+
*/
|
|
51
|
+
get size() {
|
|
52
|
+
return this.#held.size;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Wait until nothing is outstanding but work that is waiting on the clock.
|
|
56
|
+
*
|
|
57
|
+
* Work that parks part way through ends the wait rather than extending it:
|
|
58
|
+
* only moving the clock releases it, and moving the clock is what waits
|
|
59
|
+
* here. The loop then looks again at what is left running, so work that
|
|
60
|
+
* carries on is waited for again.
|
|
61
|
+
*/
|
|
62
|
+
async complete() {
|
|
63
|
+
let running = this.running();
|
|
64
|
+
while (running.length > 0) {
|
|
65
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
66
|
+
const settled = await Promise.race([
|
|
67
|
+
Promise.allSettled(running),
|
|
68
|
+
this.#clockWaits.next,
|
|
69
|
+
]);
|
|
70
|
+
new BackgroundSettledTasks(settled).throwFirstFailure();
|
|
71
|
+
running = this.running();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The work completion has anything to wait for, which is whatever is
|
|
76
|
+
* neither waiting on the clock nor waiting for completion itself.
|
|
77
|
+
*
|
|
78
|
+
* Work that asks for the simulation to settle from inside itself is left
|
|
79
|
+
* out. A handler advancing the clock is the ordinary case, and waiting for
|
|
80
|
+
* the invocation it is part of would be waiting for itself.
|
|
81
|
+
*/
|
|
82
|
+
running() {
|
|
83
|
+
return this.#clockWaits.runnable(this.#held);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Keep work outstanding under its own record until it settles.
|
|
87
|
+
*/
|
|
88
|
+
#keep(wait, work) {
|
|
89
|
+
const promise = settling(work, () => {
|
|
90
|
+
this.#held.delete(promise);
|
|
91
|
+
});
|
|
92
|
+
this.#held.set(promise, wait);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Answer for work, letting go of it once it has settled either way.
|
|
97
|
+
*/
|
|
98
|
+
async function settling(work, settled) {
|
|
99
|
+
try {
|
|
100
|
+
return await work;
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
settled();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Wait for work without taking on how it failed, which the caller holding it
|
|
108
|
+
* is told about instead.
|
|
109
|
+
*/
|
|
110
|
+
async function ignoringFailure(work) {
|
|
111
|
+
try {
|
|
112
|
+
await work;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Reported to the caller, not to whoever waits for completion.
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
* throws has nowhere to report to. Waiting for tasks to settle is that
|
|
6
6
|
* moment: this is what turns a settled batch back into a thrown error, so a
|
|
7
7
|
* failure in the background surfaces to whoever waited rather than vanishing.
|
|
8
|
+
*
|
|
9
|
+
* A wait that ended on something else, such as a task parking on the clock,
|
|
10
|
+
* settled no batch at all and has no failure to report.
|
|
8
11
|
*/
|
|
9
12
|
export declare class BackgroundSettledTasks {
|
|
10
13
|
private readonly results;
|
|
11
|
-
constructor(results
|
|
14
|
+
constructor(results?: readonly PromiseSettledResult<unknown>[]);
|
|
12
15
|
/**
|
|
13
16
|
* Throw the first task failure in the batch, if there was one.
|
|
14
17
|
*/
|
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
* throws has nowhere to report to. Waiting for tasks to settle is that
|
|
6
6
|
* moment: this is what turns a settled batch back into a thrown error, so a
|
|
7
7
|
* failure in the background surfaces to whoever waited rather than vanishing.
|
|
8
|
+
*
|
|
9
|
+
* A wait that ended on something else, such as a task parking on the clock,
|
|
10
|
+
* settled no batch at all and has no failure to report.
|
|
8
11
|
*/
|
|
9
12
|
export class BackgroundSettledTasks {
|
|
10
13
|
results;
|
|
11
|
-
constructor(results) {
|
|
14
|
+
constructor(results = []) {
|
|
12
15
|
this.results = results;
|
|
13
16
|
}
|
|
14
17
|
/**
|
|
@@ -19,6 +19,27 @@ export interface BackgroundScheduler extends SimClock {
|
|
|
19
19
|
*/
|
|
20
20
|
sequence(): Promise<void>;
|
|
21
21
|
schedule(task: BackgroundTask): void;
|
|
22
|
+
/**
|
|
23
|
+
* Count work a caller started as outstanding until it settles.
|
|
24
|
+
*
|
|
25
|
+
* Completion then waits for it, so a simulation asked to settle takes in
|
|
26
|
+
* work a caller is holding the promise of as well as work it was handed.
|
|
27
|
+
* Whoever asked for it still gets what it settles with, failure included.
|
|
28
|
+
*
|
|
29
|
+
* Work already running as a scheduled task is counted where it is, and this
|
|
30
|
+
* simply runs it.
|
|
31
|
+
*/
|
|
32
|
+
outstanding<T>(work: () => Promise<T>): Promise<T>;
|
|
33
|
+
/**
|
|
34
|
+
* Run a task that is already due, and keep it outstanding until it settles.
|
|
35
|
+
*
|
|
36
|
+
* Started here and now rather than deferred to a host timer, because
|
|
37
|
+
* advancing the clock steps through every instant work falls due at and a
|
|
38
|
+
* timer for each of them would cost real time. It is counted as outstanding
|
|
39
|
+
* work all the same, so a task that goes on to wait for the clock stops
|
|
40
|
+
* holding up whatever is moving it.
|
|
41
|
+
*/
|
|
42
|
+
runDue(task: BackgroundTask): void;
|
|
22
43
|
/**
|
|
23
44
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
24
45
|
*
|
|
@@ -35,6 +56,16 @@ export interface BackgroundScheduler extends SimClock {
|
|
|
35
56
|
* already run, is nothing to give up on.
|
|
36
57
|
*/
|
|
37
58
|
cancelScheduled(task: BackgroundTask): void;
|
|
59
|
+
/**
|
|
60
|
+
* Say that the scheduled task running now is waiting for simulated time to
|
|
61
|
+
* reach an instant, and get back the way to say it no longer is.
|
|
62
|
+
*
|
|
63
|
+
* Completion stops waiting for the task while it waits here, because moving
|
|
64
|
+
* the clock is the only thing that releases it and completion is what
|
|
65
|
+
* moving the clock waits for. Called from outside a scheduled task, such as
|
|
66
|
+
* from work a caller is holding the promise of, this changes nothing.
|
|
67
|
+
*/
|
|
68
|
+
waitingOnClock(): () => void;
|
|
38
69
|
}
|
|
39
70
|
interface BackgroundTasksProperties {
|
|
40
71
|
readonly clock?: SimClock;
|
|
@@ -82,6 +113,14 @@ export declare class BackgroundTasks implements BackgroundScheduler, BackgroundC
|
|
|
82
113
|
* Schedule a task to happen asynchronously in the background.
|
|
83
114
|
*/
|
|
84
115
|
schedule(task: BackgroundTask): void;
|
|
116
|
+
/**
|
|
117
|
+
* Run a task that is already due, keeping it outstanding until it settles.
|
|
118
|
+
*/
|
|
119
|
+
runDue(task: BackgroundTask): void;
|
|
120
|
+
/**
|
|
121
|
+
* Count work a caller started as outstanding until it settles.
|
|
122
|
+
*/
|
|
123
|
+
outstanding<T>(work: () => Promise<T>): Promise<T>;
|
|
85
124
|
/**
|
|
86
125
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
87
126
|
*/
|
|
@@ -90,6 +129,10 @@ export declare class BackgroundTasks implements BackgroundScheduler, BackgroundC
|
|
|
90
129
|
* Give up on a task scheduled to happen at a simulated instant.
|
|
91
130
|
*/
|
|
92
131
|
cancelScheduled(task: BackgroundTask): void;
|
|
132
|
+
/**
|
|
133
|
+
* Say that the scheduled task running now is waiting on the clock.
|
|
134
|
+
*/
|
|
135
|
+
waitingOnClock(): () => void;
|
|
93
136
|
/**
|
|
94
137
|
* Take the next task due at or before an instant, earliest first.
|
|
95
138
|
*/
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/* oxlint-disable unicorn-js/prefer-await */
|
|
2
|
+
import { setTimeout } from "node:timers";
|
|
2
3
|
import { SimRealClock } from "../clock/sim-clock.js";
|
|
4
|
+
import { BackgroundPendingTasks } from "./background-pending-tasks.js";
|
|
3
5
|
import { BackgroundDueTasks, } from "./background-due-tasks.js";
|
|
4
6
|
/**
|
|
5
7
|
* Deterministic async background tasks scheduler.
|
|
@@ -8,7 +10,7 @@ import { BackgroundDueTasks, } from "./background-due-tasks.js";
|
|
|
8
10
|
* the order they were scheduled.
|
|
9
11
|
*/
|
|
10
12
|
export class BackgroundTasks {
|
|
11
|
-
pending = new
|
|
13
|
+
pending = new BackgroundPendingTasks();
|
|
12
14
|
dueTasks = new BackgroundDueTasks();
|
|
13
15
|
clock;
|
|
14
16
|
constructor(properties = {}) {
|
|
@@ -30,21 +32,24 @@ export class BackgroundTasks {
|
|
|
30
32
|
* Schedule a task to happen asynchronously in the background.
|
|
31
33
|
*/
|
|
32
34
|
schedule(task) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
//
|
|
39
|
-
}, (error) => {
|
|
40
|
-
// Keep the promise rejected so complete() can surface failures
|
|
41
|
-
// deterministically.
|
|
42
|
-
throw error;
|
|
43
|
-
})
|
|
44
|
-
.finally(() => {
|
|
45
|
-
this.pending.delete(promise);
|
|
35
|
+
this.pending.hold(async () => {
|
|
36
|
+
await new Promise((resolve) => {
|
|
37
|
+
setTimeout(resolve, 0);
|
|
38
|
+
});
|
|
39
|
+
await task();
|
|
46
40
|
});
|
|
47
|
-
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Run a task that is already due, keeping it outstanding until it settles.
|
|
44
|
+
*/
|
|
45
|
+
runDue(task) {
|
|
46
|
+
this.pending.hold(task);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Count work a caller started as outstanding until it settles.
|
|
50
|
+
*/
|
|
51
|
+
async outstanding(work) {
|
|
52
|
+
return await this.pending.holdCallers(work);
|
|
48
53
|
}
|
|
49
54
|
/**
|
|
50
55
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
@@ -58,6 +63,12 @@ export class BackgroundTasks {
|
|
|
58
63
|
cancelScheduled(task) {
|
|
59
64
|
this.dueTasks.cancel(task);
|
|
60
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Say that the scheduled task running now is waiting on the clock.
|
|
68
|
+
*/
|
|
69
|
+
waitingOnClock() {
|
|
70
|
+
return this.pending.waitingOnClock();
|
|
71
|
+
}
|
|
61
72
|
/**
|
|
62
73
|
* Take the next task due at or before an instant, earliest first.
|
|
63
74
|
*/
|
|
@@ -73,10 +84,7 @@ export class BackgroundTasks {
|
|
|
73
84
|
* clock releases it.
|
|
74
85
|
*/
|
|
75
86
|
async complete() {
|
|
76
|
-
|
|
77
|
-
// oxlint-disable-next-line no-await-in-loop
|
|
78
|
-
await Promise.all(this.pending);
|
|
79
|
-
}
|
|
87
|
+
await this.pending.complete();
|
|
80
88
|
}
|
|
81
89
|
/**
|
|
82
90
|
* See how many outstanding background tasks are scheduled.
|
|
@@ -28,6 +28,14 @@ export declare class NonDeterministicBackgroundTasks implements BackgroundSchedu
|
|
|
28
28
|
* Schedule a task to happen asynchronously in the background.
|
|
29
29
|
*/
|
|
30
30
|
schedule(task: BackgroundTask): void;
|
|
31
|
+
/**
|
|
32
|
+
* Run a task that is already due, keeping it outstanding until it settles.
|
|
33
|
+
*/
|
|
34
|
+
runDue(task: BackgroundTask): void;
|
|
35
|
+
/**
|
|
36
|
+
* Count work a caller started as outstanding until it settles.
|
|
37
|
+
*/
|
|
38
|
+
outstanding<T>(work: () => Promise<T>): Promise<T>;
|
|
31
39
|
/**
|
|
32
40
|
* Schedule a task to happen once simulated time reaches an instant.
|
|
33
41
|
*/
|
|
@@ -36,6 +44,10 @@ export declare class NonDeterministicBackgroundTasks implements BackgroundSchedu
|
|
|
36
44
|
* Give up on a task scheduled to happen at a simulated instant.
|
|
37
45
|
*/
|
|
38
46
|
cancelScheduled(task: BackgroundTask): void;
|
|
47
|
+
/**
|
|
48
|
+
* Say that the scheduled task running now is waiting on the clock.
|
|
49
|
+
*/
|
|
50
|
+
waitingOnClock(): () => void;
|
|
39
51
|
/**
|
|
40
52
|
* Take the next task due at or before an instant, earliest first.
|
|
41
53
|
*/
|