@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SimSdkWireDispatcher } from "../../../../sdk/wire/sim-sdk-wire-dispatcher.js";
|
|
2
2
|
import { readSimSdkWireCredentialScope, readSimSdkWireOperation, } from "../../../../sdk/wire/sim-sdk-wire-operation.js";
|
|
3
|
+
import { SimS3ApiEndpoint } from "../../../s3/serve/api/sim-s3-api.js";
|
|
3
4
|
import { simLambdaOutboundWireRequest, simLambdaOutboundWireResponse, } from "./sim-lambda-outbound-wire.js";
|
|
4
5
|
/**
|
|
5
6
|
* The hostname suffixes AWS issues its service API endpoints under.
|
|
@@ -27,6 +28,17 @@ const awsEndpointSuffixes = [
|
|
|
27
28
|
* way it answers for every other hostname a resource is issued.
|
|
28
29
|
*/
|
|
29
30
|
const resourceEndpointLabel = ".execute-api.";
|
|
31
|
+
/**
|
|
32
|
+
* The SigV4 signing name of the one service here whose requests an endpoint of
|
|
33
|
+
* its own reads.
|
|
34
|
+
*
|
|
35
|
+
* S3 states its operation in the method, the path and a query-string
|
|
36
|
+
* sub-resource. `SimS3ApiEndpoint` reads those. The signing name is where a
|
|
37
|
+
* signed request says which service it is for, whatever protocol that service
|
|
38
|
+
* speaks, and that is what selects the endpoint here, as it is on the served
|
|
39
|
+
* AWS API endpoint.
|
|
40
|
+
*/
|
|
41
|
+
const s3SigningName = "s3";
|
|
30
42
|
/**
|
|
31
43
|
* Whether a hostname is an AWS service API endpoint.
|
|
32
44
|
*/
|
|
@@ -64,8 +76,10 @@ export function isSimAwsApiRequest(request) {
|
|
|
64
76
|
*/
|
|
65
77
|
export class SimLambdaAwsApiOutbound {
|
|
66
78
|
dispatcher;
|
|
79
|
+
s3;
|
|
67
80
|
constructor(properties) {
|
|
68
81
|
this.dispatcher = new SimSdkWireDispatcher(properties.simAws, properties.regionName);
|
|
82
|
+
this.s3 = new SimS3ApiEndpoint({ simAws: properties.simAws });
|
|
69
83
|
}
|
|
70
84
|
/**
|
|
71
85
|
* Whether a hostname is one of the AWS service API endpoints.
|
|
@@ -75,8 +89,20 @@ export class SimLambdaAwsApiOutbound {
|
|
|
75
89
|
}
|
|
76
90
|
/**
|
|
77
91
|
* Answer an AWS API request from the simulated operation it names.
|
|
92
|
+
*
|
|
93
|
+
* A request signed for S3 goes to the endpoint that reads S3's protocol,
|
|
94
|
+
* since S3 names its operation where the wire dispatcher looks for a header.
|
|
95
|
+
* No caller travels with it. The SDK signed it with the placeholder
|
|
96
|
+
* credentials the runtime puts in the environment, and the invocation is
|
|
97
|
+
* already running as the execution Role, the ambient caller every other call
|
|
98
|
+
* out of function code runs as.
|
|
78
99
|
*/
|
|
79
100
|
async fetch(request) {
|
|
80
|
-
|
|
101
|
+
const wireRequest = await simLambdaOutboundWireRequest(request);
|
|
102
|
+
const scope = readSimSdkWireCredentialScope(wireRequest);
|
|
103
|
+
if (scope?.signingName === s3SigningName) {
|
|
104
|
+
return await this.s3.handle(request, wireRequest.body, undefined, scope.regionName);
|
|
105
|
+
}
|
|
106
|
+
return simLambdaOutboundWireResponse(await this.dispatcher.dispatch(wireRequest));
|
|
81
107
|
}
|
|
82
108
|
}
|
|
@@ -49,8 +49,8 @@ export declare class SimLambdaFunction {
|
|
|
49
49
|
readonly metrics: SimLambdaFunctionMetrics;
|
|
50
50
|
private readonly properties;
|
|
51
51
|
private readonly runAsOwner;
|
|
52
|
-
private readonly runner;
|
|
53
52
|
private readonly clock;
|
|
53
|
+
private readonly background;
|
|
54
54
|
private readonly logging;
|
|
55
55
|
private readonly outboundHttp;
|
|
56
56
|
constructor(properties: SimLambdaFunctionProperties);
|
|
@@ -6,9 +6,8 @@ import { SimLambdaHandlerReferenceCode, } from "./code/sim-lambda-executable-cod
|
|
|
6
6
|
import { SimLambdaEnvironment } from "./environment/sim-lambda-environment.js";
|
|
7
7
|
import { SimLambdaFunctionLogging } from "./logging/sim-lambda-function-logging.js";
|
|
8
8
|
import { SimLambdaFunctionPolicy } from "./policy/sim-lambda-function-policy.js";
|
|
9
|
-
import {
|
|
9
|
+
import { SimLambdaInvocation } from "./invoke/sim-lambda-invocation.js";
|
|
10
10
|
import { SimLambdaFunctionMetrics } from "../metric/sim-lambda-function-metrics.js";
|
|
11
|
-
import { SimLambdaInvokeContextBuilder } from "./invoke/sim-lambda-invoke-context-builder.js";
|
|
12
11
|
import { runSimLambdaInHostScope } from "./invoke/sim-lambda-host-scope.js";
|
|
13
12
|
import { SimRealClock } from "../../../util/clock/sim-clock.js";
|
|
14
13
|
import { defaultLambdaHandler } from "./sim-lambda-handler.type.js";
|
|
@@ -56,14 +55,15 @@ export class SimLambdaFunction {
|
|
|
56
55
|
#code;
|
|
57
56
|
properties;
|
|
58
57
|
runAsOwner;
|
|
59
|
-
runner = new SimLambdaHandlerRunner();
|
|
60
58
|
clock;
|
|
59
|
+
background;
|
|
61
60
|
logging;
|
|
62
61
|
outboundHttp;
|
|
63
62
|
constructor(properties) {
|
|
64
|
-
const { name, roleArn, accountRegionScope = simAwsAccountRegionScopeFactory.make(), handlerFunction = defaultLambdaHandler, code, state = "Pending", handlerName, runtimeName, description, timeoutSeconds = DEFAULT_SIM_LAMBDA_TIMEOUT_SECONDS, memorySizeMb = DEFAULT_SIM_LAMBDA_MEMORY_SIZE_MB, environment, deadLetterTargetArn, runAsOwner = this, version = SIM_LAMBDA_LATEST_VERSION, clock = new SimRealClock(),
|
|
63
|
+
const { name, roleArn, accountRegionScope = simAwsAccountRegionScopeFactory.make(), handlerFunction = defaultLambdaHandler, code, state = "Pending", handlerName, runtimeName, description, timeoutSeconds = DEFAULT_SIM_LAMBDA_TIMEOUT_SECONDS, memorySizeMb = DEFAULT_SIM_LAMBDA_MEMORY_SIZE_MB, environment, deadLetterTargetArn, runAsOwner = this, version = SIM_LAMBDA_LATEST_VERSION, clock = new SimRealClock(), background, metrics, outboundHttp, } = properties;
|
|
65
64
|
this.properties = properties;
|
|
66
65
|
this.clock = clock;
|
|
66
|
+
this.background = background;
|
|
67
67
|
this.version = version;
|
|
68
68
|
this.name = name;
|
|
69
69
|
this.roleArn = roleArn;
|
|
@@ -88,7 +88,8 @@ export class SimLambdaFunction {
|
|
|
88
88
|
this.metrics = new SimLambdaFunctionMetrics({ metrics, clock });
|
|
89
89
|
this.logging = new SimLambdaFunctionLogging({
|
|
90
90
|
functionName: name,
|
|
91
|
-
logs,
|
|
91
|
+
logs: properties.logs,
|
|
92
|
+
output: properties.output,
|
|
92
93
|
clock,
|
|
93
94
|
});
|
|
94
95
|
}
|
|
@@ -181,18 +182,19 @@ export class SimLambdaFunction {
|
|
|
181
182
|
* Runtime.* cold-start error.
|
|
182
183
|
*/
|
|
183
184
|
async invoke(event) {
|
|
184
|
-
const
|
|
185
|
+
const invocation = new SimLambdaInvocation({
|
|
185
186
|
functionName: this.name,
|
|
186
187
|
functionVersion: this.version,
|
|
187
188
|
invokedFunctionArn: this.arn,
|
|
188
189
|
timeoutSeconds: this.timeoutSeconds,
|
|
189
190
|
memorySizeMb: this.memorySizeMb,
|
|
190
191
|
clock: this.clock,
|
|
192
|
+
background: this.background,
|
|
191
193
|
logGroupName: this.logging.logGroupName,
|
|
192
194
|
logStreamName: this.logging.logStreamName(),
|
|
193
195
|
});
|
|
194
196
|
this.logging.recordFrom(this.#code);
|
|
195
|
-
return await this.metrics.around(String(this.name), async () => simAwsRunAsContext.run(this.runAsOwner, { kind: "arn", arn: this.roleArn }, async () => await this.environment.runWith(async () => await this.runInHostScope(async () => await this.logging.around(async () => await
|
|
197
|
+
return await this.metrics.around(String(this.name), async () => simAwsRunAsContext.run(this.runAsOwner, { kind: "arn", arn: this.roleArn }, async () => await this.environment.runWith(async () => await this.runInHostScope(async () => await this.logging.around(async () => await invocation.run(this.#code.handlerFunction(), event))))));
|
|
196
198
|
}
|
|
197
199
|
/**
|
|
198
200
|
* Run an invocation with the process globals host-scope code reads bridged
|
|
@@ -204,7 +206,7 @@ export class SimLambdaFunction {
|
|
|
204
206
|
return await run();
|
|
205
207
|
}
|
|
206
208
|
const { clock, outboundHttp } = this;
|
|
207
|
-
const
|
|
208
|
-
return await runSimLambdaInHostScope(
|
|
209
|
+
const scope = { clock, outboundHttp, ...this.logging.outputScope() };
|
|
210
|
+
return await runSimLambdaInHostScope(scope, run);
|
|
209
211
|
}
|
|
210
212
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../../util/background/background.js";
|
|
1
2
|
import type { Brand } from "../../../util/brand.type.js";
|
|
2
3
|
import type { SimClock } from "../../../util/clock/sim-clock.js";
|
|
3
4
|
import type { SimAwsRunAsOwner } from "../../aws/caller/sim-aws-run-as-context.js";
|
|
4
5
|
import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
|
|
5
6
|
import type { SimCloudWatchServiceWriter } from "../../cloudwatch/write/sim-cloudwatch-service-writer.js";
|
|
7
|
+
import type { SimLambdaOutput } from "./logging/sim-lambda-output.js";
|
|
6
8
|
import type { SimLogsServiceWriter } from "../../logs/write/sim-logs-service-writer.js";
|
|
7
9
|
import type { SimLambdaExecutableCode } from "./code/sim-lambda-executable-code.js";
|
|
8
10
|
import type { SimLambdaEnvironment } from "./environment/sim-lambda-environment.js";
|
|
@@ -42,12 +44,25 @@ export interface SimLambdaFunctionProperties {
|
|
|
42
44
|
* real clock.
|
|
43
45
|
*/
|
|
44
46
|
clock?: SimClock | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Scheduler this function's handler timers and invocation deadline wait on.
|
|
49
|
+
* A function built standalone, outside a SimAws instance, has none, and its
|
|
50
|
+
* handler keeps the host timers and runs for as long as it likes.
|
|
51
|
+
*/
|
|
52
|
+
background?: BackgroundScheduler | undefined;
|
|
45
53
|
/**
|
|
46
54
|
* Where this function's handler output is recorded. A function built
|
|
47
55
|
* standalone, outside a SimAws instance, has nowhere to record to and writes
|
|
48
56
|
* only to the host streams.
|
|
49
57
|
*/
|
|
50
58
|
logs?: SimLogsServiceWriter | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Where this function's output goes besides its log group, shared with every
|
|
61
|
+
* other function of the same simulated Lambda. A function built standalone
|
|
62
|
+
* gets settings of its own, which nothing else can reach and which leave the
|
|
63
|
+
* host console printing.
|
|
64
|
+
*/
|
|
65
|
+
output?: SimLambdaOutput | undefined;
|
|
51
66
|
/**
|
|
52
67
|
* Where this function's invocations are counted. A function built
|
|
53
68
|
* standalone, outside a SimAws instance, has no simulated CloudWatch to
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The cross-origin resource sharing settings of one Function URL.
|
|
3
|
+
*
|
|
4
|
+
* The member names are AWS's own. What `GetFunctionUrlConfig` reports is the
|
|
5
|
+
* record `CreateFunctionUrlConfig` was given.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/lambda/latest/api/API_Cors.html
|
|
8
|
+
*/
|
|
9
|
+
export interface SimLambdaFunctionUrlCors {
|
|
10
|
+
readonly AllowCredentials?: boolean | undefined;
|
|
11
|
+
readonly AllowHeaders?: readonly string[] | undefined;
|
|
12
|
+
readonly AllowMethods?: readonly string[] | undefined;
|
|
13
|
+
readonly AllowOrigins?: readonly string[] | undefined;
|
|
14
|
+
readonly ExposeHeaders?: readonly string[] | undefined;
|
|
15
|
+
readonly MaxAge?: number | undefined;
|
|
16
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DynamicFactory } from "@kensio/part-factory";
|
|
2
|
+
/**
|
|
3
|
+
* A CORS configuration whose lists are mutable. That is the shape the AWS
|
|
4
|
+
* SDK's own command input takes, so a test can hand what this factory makes
|
|
5
|
+
* straight to a `CreateFunctionUrlConfigCommand`.
|
|
6
|
+
*/
|
|
7
|
+
export interface SimLambdaFunctionUrlCorsParts {
|
|
8
|
+
AllowCredentials: boolean;
|
|
9
|
+
AllowHeaders: string[];
|
|
10
|
+
AllowMethods: string[];
|
|
11
|
+
AllowOrigins: string[];
|
|
12
|
+
ExposeHeaders: string[];
|
|
13
|
+
MaxAge: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Makes a valid Function URL CORS configuration, so a test states only the
|
|
17
|
+
* part of it the test is about.
|
|
18
|
+
*
|
|
19
|
+
* The default allows one named Origin. That is the case where the headers
|
|
20
|
+
* served depend on the request that asked for them.
|
|
21
|
+
*/
|
|
22
|
+
export declare const simLambdaFunctionUrlCorsFactory: DynamicFactory<SimLambdaFunctionUrlCorsParts, undefined>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { faker } from "@faker-js/faker";
|
|
2
|
+
import { DynamicFactory } from "@kensio/part-factory";
|
|
3
|
+
/**
|
|
4
|
+
* Makes a valid Function URL CORS configuration, so a test states only the
|
|
5
|
+
* part of it the test is about.
|
|
6
|
+
*
|
|
7
|
+
* The default allows one named Origin. That is the case where the headers
|
|
8
|
+
* served depend on the request that asked for them.
|
|
9
|
+
*/
|
|
10
|
+
export const simLambdaFunctionUrlCorsFactory = new DynamicFactory(() => ({
|
|
11
|
+
AllowCredentials: false,
|
|
12
|
+
AllowHeaders: ["content-type"],
|
|
13
|
+
AllowMethods: ["GET"],
|
|
14
|
+
AllowOrigins: [`https://${faker.internet.domainName()}`],
|
|
15
|
+
ExposeHeaders: ["x-request-id"],
|
|
16
|
+
MaxAge: faker.number.int({ min: 1, max: 86_400 }),
|
|
17
|
+
}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
|
|
2
2
|
import type { SimLambdaUrlRegistry } from "../../registry/sim-lambda-url-registry.js";
|
|
3
3
|
import type { SimLambdaFunction } from "../sim-lambda-function.js";
|
|
4
|
+
import type { SimLambdaFunctionUrlCors } from "./sim-lambda-function-url-cors.js";
|
|
4
5
|
import { SimLambdaFunctionUrl, type SimLambdaFunctionUrlAuthType, type SimLambdaFunctionUrlInvokeMode } from "./sim-lambda-function-url.js";
|
|
5
6
|
import { type SimClock } from "../../../../util/clock/sim-clock.js";
|
|
6
7
|
export interface SimLambdaFunctionUrlFactoryProperties {
|
|
@@ -12,6 +13,7 @@ interface MakeSimLambdaFunctionUrlProperties {
|
|
|
12
13
|
readonly simFunction: SimLambdaFunction;
|
|
13
14
|
readonly authType?: SimLambdaFunctionUrlAuthType | undefined;
|
|
14
15
|
readonly invokeMode?: SimLambdaFunctionUrlInvokeMode | undefined;
|
|
16
|
+
readonly cors?: SimLambdaFunctionUrlCors | undefined;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* Builds Function URLs, taking their ids from the cross-Account registry.
|
|
@@ -19,7 +19,7 @@ export class SimLambdaFunctionUrlFactory {
|
|
|
19
19
|
* Make a registered Function URL for a function.
|
|
20
20
|
*/
|
|
21
21
|
make(properties) {
|
|
22
|
-
const { simFunction, authType, invokeMode } = properties;
|
|
22
|
+
const { simFunction, authType, invokeMode, cors } = properties;
|
|
23
23
|
const urlId = this.urlRegistry.allocateFunctionUrlId();
|
|
24
24
|
this.urlRegistry.registerFunctionUrl(urlId, this.accountRegionScope.accountId);
|
|
25
25
|
return new SimLambdaFunctionUrl({
|
|
@@ -29,6 +29,7 @@ export class SimLambdaFunctionUrlFactory {
|
|
|
29
29
|
accountRegionScope: this.accountRegionScope,
|
|
30
30
|
authType,
|
|
31
31
|
invokeMode,
|
|
32
|
+
cors,
|
|
32
33
|
clock: this.clock,
|
|
33
34
|
});
|
|
34
35
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { SimLambdaFunction } from "../sim-lambda-function.js";
|
|
2
2
|
import { type SimLambdaFunctionUrlFactoryProperties } from "./sim-lambda-function-url-factory.js";
|
|
3
|
+
import type { SimLambdaFunctionUrlCors } from "./sim-lambda-function-url-cors.js";
|
|
3
4
|
import type { SimLambdaFunctionUrl, SimLambdaFunctionUrlAuthType, SimLambdaFunctionUrlId, SimLambdaFunctionUrlInvokeMode } from "./sim-lambda-function-url.js";
|
|
4
5
|
interface CreateSimLambdaFunctionUrlProperties {
|
|
5
6
|
readonly simFunction: SimLambdaFunction;
|
|
6
7
|
readonly authType?: SimLambdaFunctionUrlAuthType | undefined;
|
|
7
8
|
readonly invokeMode?: SimLambdaFunctionUrlInvokeMode | undefined;
|
|
9
|
+
readonly cors?: SimLambdaFunctionUrlCors | undefined;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Function URL state for one Account/Region scope of simulated Lambda.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Brand } from "../../../../util/brand.type.js";
|
|
2
2
|
import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
|
|
3
3
|
import type { SimLambdaFunctionName } from "../sim-lambda-function.js";
|
|
4
|
+
import type { SimLambdaFunctionUrlCors } from "./sim-lambda-function-url-cors.js";
|
|
4
5
|
import { type SimClock } from "../../../../util/clock/sim-clock.js";
|
|
5
6
|
/**
|
|
6
7
|
* The id AWS allocates for one Function URL, which is the leading DNS label of
|
|
@@ -31,6 +32,7 @@ interface SimLambdaFunctionUrlProperties {
|
|
|
31
32
|
readonly accountRegionScope: SimAwsAccountRegionScope;
|
|
32
33
|
readonly authType?: SimLambdaFunctionUrlAuthType | undefined;
|
|
33
34
|
readonly invokeMode?: SimLambdaFunctionUrlInvokeMode | undefined;
|
|
35
|
+
readonly cors?: SimLambdaFunctionUrlCors | undefined;
|
|
34
36
|
/**
|
|
35
37
|
* Clock stamping this Function URL's creation and last modified times. A
|
|
36
38
|
* Function URL built standalone, outside a SimAws instance, falls back to the
|
|
@@ -42,12 +44,16 @@ interface SimLambdaFunctionUrlProperties {
|
|
|
42
44
|
* Minimal structural Function URL configuration, as returned by the
|
|
43
45
|
* CreateFunctionUrlConfig, GetFunctionUrlConfig and UpdateFunctionUrlConfig
|
|
44
46
|
* commands.
|
|
47
|
+
*
|
|
48
|
+
* A URL configured without CORS has no `Cors` member at all. An empty block
|
|
49
|
+
* would still decide headers.
|
|
45
50
|
*/
|
|
46
51
|
export interface SimLambdaFunctionUrlConfiguration {
|
|
47
52
|
FunctionUrl: string;
|
|
48
53
|
FunctionArn: string;
|
|
49
54
|
AuthType: SimLambdaFunctionUrlAuthType;
|
|
50
55
|
InvokeMode: SimLambdaFunctionUrlInvokeMode;
|
|
56
|
+
Cors?: SimLambdaFunctionUrlCors | undefined;
|
|
51
57
|
CreationTime: string;
|
|
52
58
|
LastModifiedTime: string;
|
|
53
59
|
}
|
|
@@ -75,6 +81,11 @@ export declare class SimLambdaFunctionUrl {
|
|
|
75
81
|
* Get the invocation mode for this Function URL.
|
|
76
82
|
*/
|
|
77
83
|
get invokeMode(): SimLambdaFunctionUrlInvokeMode;
|
|
84
|
+
/**
|
|
85
|
+
* Get the CORS configuration for this Function URL. A URL without one sends
|
|
86
|
+
* no CORS headers of its own.
|
|
87
|
+
*/
|
|
88
|
+
get cors(): SimLambdaFunctionUrlCors | undefined;
|
|
78
89
|
/**
|
|
79
90
|
* Get the endpoint hostname for this Function URL.
|
|
80
91
|
*/
|
|
@@ -88,10 +99,15 @@ export declare class SimLambdaFunctionUrl {
|
|
|
88
99
|
* Apply an update to this Function URL's configuration.
|
|
89
100
|
*
|
|
90
101
|
* Omitted values are left as they are, as real UpdateFunctionUrlConfig does.
|
|
102
|
+
*
|
|
103
|
+
* A stated `Cors` replaces the whole block. An update naming only
|
|
104
|
+
* `AllowOrigins` drops the methods and headers the URL was created with, the
|
|
105
|
+
* way it does on AWS.
|
|
91
106
|
*/
|
|
92
107
|
update(properties: {
|
|
93
108
|
readonly authType?: SimLambdaFunctionUrlAuthType | undefined;
|
|
94
109
|
readonly invokeMode?: SimLambdaFunctionUrlInvokeMode | undefined;
|
|
110
|
+
readonly cors?: SimLambdaFunctionUrlCors | undefined;
|
|
95
111
|
}): void;
|
|
96
112
|
/**
|
|
97
113
|
* Get the AWS-like configuration for this Function URL.
|
|
@@ -23,10 +23,11 @@ export class SimLambdaFunctionUrl {
|
|
|
23
23
|
creationTime;
|
|
24
24
|
#authType;
|
|
25
25
|
#invokeMode;
|
|
26
|
+
#cors;
|
|
26
27
|
#lastModifiedTime;
|
|
27
28
|
clock;
|
|
28
29
|
constructor(properties) {
|
|
29
|
-
const { urlId, functionName, functionArn, accountRegionScope, authType = "NONE", invokeMode = "BUFFERED", clock = new SimRealClock(), } = properties;
|
|
30
|
+
const { urlId, functionName, functionArn, accountRegionScope, authType = "NONE", invokeMode = "BUFFERED", cors, clock = new SimRealClock(), } = properties;
|
|
30
31
|
this.clock = clock;
|
|
31
32
|
this.urlId = urlId;
|
|
32
33
|
this.functionName = functionName;
|
|
@@ -34,6 +35,7 @@ export class SimLambdaFunctionUrl {
|
|
|
34
35
|
this.accountRegionScope = accountRegionScope;
|
|
35
36
|
this.#authType = authType;
|
|
36
37
|
this.#invokeMode = invokeMode;
|
|
38
|
+
this.#cors = cors;
|
|
37
39
|
this.creationTime = clock.now().toISOString();
|
|
38
40
|
this.#lastModifiedTime = this.creationTime;
|
|
39
41
|
}
|
|
@@ -49,6 +51,13 @@ export class SimLambdaFunctionUrl {
|
|
|
49
51
|
get invokeMode() {
|
|
50
52
|
return this.#invokeMode;
|
|
51
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Get the CORS configuration for this Function URL. A URL without one sends
|
|
56
|
+
* no CORS headers of its own.
|
|
57
|
+
*/
|
|
58
|
+
get cors() {
|
|
59
|
+
return this.#cors;
|
|
60
|
+
}
|
|
52
61
|
/**
|
|
53
62
|
* Get the endpoint hostname for this Function URL.
|
|
54
63
|
*/
|
|
@@ -69,10 +78,15 @@ export class SimLambdaFunctionUrl {
|
|
|
69
78
|
* Apply an update to this Function URL's configuration.
|
|
70
79
|
*
|
|
71
80
|
* Omitted values are left as they are, as real UpdateFunctionUrlConfig does.
|
|
81
|
+
*
|
|
82
|
+
* A stated `Cors` replaces the whole block. An update naming only
|
|
83
|
+
* `AllowOrigins` drops the methods and headers the URL was created with, the
|
|
84
|
+
* way it does on AWS.
|
|
72
85
|
*/
|
|
73
86
|
update(properties) {
|
|
74
87
|
this.#authType = properties.authType ?? this.#authType;
|
|
75
88
|
this.#invokeMode = properties.invokeMode ?? this.#invokeMode;
|
|
89
|
+
this.#cors = properties.cors ?? this.#cors;
|
|
76
90
|
this.#lastModifiedTime = this.clock.now().toISOString();
|
|
77
91
|
}
|
|
78
92
|
/**
|
|
@@ -84,6 +98,7 @@ export class SimLambdaFunctionUrl {
|
|
|
84
98
|
FunctionArn: this.functionArn,
|
|
85
99
|
AuthType: this.#authType,
|
|
86
100
|
InvokeMode: this.#invokeMode,
|
|
101
|
+
...(this.#cors !== undefined && { Cors: this.#cors }),
|
|
87
102
|
CreationTime: this.creationTime,
|
|
88
103
|
LastModifiedTime: this.#lastModifiedTime,
|
|
89
104
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SimLambda } from "./sim-lambda.js";
|
|
2
|
+
export { SimLambdaOutput } from "./function/logging/sim-lambda-output.js";
|
|
2
3
|
export { SimLambdaNoVmSdkModuleProvider, type SimLambdaVmSdkModuleProvider, } from "./function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.js";
|
|
3
4
|
export { SimSdkLambdaVmModuleProvider } from "./function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js";
|
|
4
5
|
export { makeLambdaZipFileInput } from "./function/code/lambda-zip-file-input.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SimLambda } from "./sim-lambda.js";
|
|
2
|
+
export { SimLambdaOutput } from "./function/logging/sim-lambda-output.js";
|
|
2
3
|
export { SimLambdaNoVmSdkModuleProvider, } from "./function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.js";
|
|
3
4
|
export { SimSdkLambdaVmModuleProvider } from "./function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js";
|
|
4
5
|
export { makeLambdaZipFileInput } from "./function/code/lambda-zip-file-input.js";
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { SimLambdaFunctionUrlCors } from "../../function/url/sim-lambda-function-url-cors.js";
|
|
2
|
+
/**
|
|
3
|
+
* The CORS headers one Function URL configuration decides for a request.
|
|
4
|
+
*
|
|
5
|
+
* Lambda adds these to every response the URL serves, and answers a preflight
|
|
6
|
+
* with them itself. `AllowOrigins` is the one member whose header depends on
|
|
7
|
+
* the request. A browser reads one value there, so Lambda sends back either the
|
|
8
|
+
* Origin that asked or the wildcard.
|
|
9
|
+
*
|
|
10
|
+
* https://docs.aws.amazon.com/lambda/latest/dg/urls-configuration.html
|
|
11
|
+
*/
|
|
12
|
+
export declare class SimLambdaUrlCorsHeaders {
|
|
13
|
+
private readonly cors;
|
|
14
|
+
constructor(cors: SimLambdaFunctionUrlCors);
|
|
15
|
+
/**
|
|
16
|
+
* Whether this request is the preflight a browser sends before a
|
|
17
|
+
* cross-origin call it is not allowed to make blind.
|
|
18
|
+
*/
|
|
19
|
+
isPreflight(request: Request): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The answer Lambda gives a preflight request itself.
|
|
22
|
+
*
|
|
23
|
+
* The function never runs for one. The configured headers are the whole
|
|
24
|
+
* response, and the handler has said nothing that could conflict with them.
|
|
25
|
+
*/
|
|
26
|
+
preflightResponse(request: Request): Response;
|
|
27
|
+
/**
|
|
28
|
+
* Add the configured CORS headers to a response the function produced.
|
|
29
|
+
*
|
|
30
|
+
* They are appended. A handler that sends CORS headers of its own keeps them
|
|
31
|
+
* and the response carries both values, which is what AWS documents for
|
|
32
|
+
* anything but a preflight.
|
|
33
|
+
*/
|
|
34
|
+
apply(headers: Headers, request: Request): void;
|
|
35
|
+
/**
|
|
36
|
+
* Which Origin this request is told it may read the response from.
|
|
37
|
+
*
|
|
38
|
+
* A list holding the wildcard allows every Origin outright. Otherwise the
|
|
39
|
+
* Origin has to be one the list names. A request carrying no Origin at all,
|
|
40
|
+
* such as one from curl, is told nothing.
|
|
41
|
+
*/
|
|
42
|
+
private allowOrigin;
|
|
43
|
+
/**
|
|
44
|
+
* Send a configured list as one comma-separated header.
|
|
45
|
+
*
|
|
46
|
+
* An empty list names nothing. A header carrying an empty value says
|
|
47
|
+
* something else to a browser, so the header is left off.
|
|
48
|
+
*/
|
|
49
|
+
private appendList;
|
|
50
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The request header a browser states the method it is asking about in.
|
|
3
|
+
*
|
|
4
|
+
* A preflight names it and nothing else does. That is what separates a
|
|
5
|
+
* preflight from an ordinary `OPTIONS` request the function should handle.
|
|
6
|
+
*/
|
|
7
|
+
const requestMethodHeader = "access-control-request-method";
|
|
8
|
+
/**
|
|
9
|
+
* The CORS headers one Function URL configuration decides for a request.
|
|
10
|
+
*
|
|
11
|
+
* Lambda adds these to every response the URL serves, and answers a preflight
|
|
12
|
+
* with them itself. `AllowOrigins` is the one member whose header depends on
|
|
13
|
+
* the request. A browser reads one value there, so Lambda sends back either the
|
|
14
|
+
* Origin that asked or the wildcard.
|
|
15
|
+
*
|
|
16
|
+
* https://docs.aws.amazon.com/lambda/latest/dg/urls-configuration.html
|
|
17
|
+
*/
|
|
18
|
+
export class SimLambdaUrlCorsHeaders {
|
|
19
|
+
cors;
|
|
20
|
+
constructor(cors) {
|
|
21
|
+
this.cors = cors;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Whether this request is the preflight a browser sends before a
|
|
25
|
+
* cross-origin call it is not allowed to make blind.
|
|
26
|
+
*/
|
|
27
|
+
isPreflight(request) {
|
|
28
|
+
return (request.method === "OPTIONS" &&
|
|
29
|
+
request.headers.has("origin") &&
|
|
30
|
+
request.headers.has(requestMethodHeader));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The answer Lambda gives a preflight request itself.
|
|
34
|
+
*
|
|
35
|
+
* The function never runs for one. The configured headers are the whole
|
|
36
|
+
* response, and the handler has said nothing that could conflict with them.
|
|
37
|
+
*/
|
|
38
|
+
preflightResponse(request) {
|
|
39
|
+
const headers = new Headers();
|
|
40
|
+
this.apply(headers, request);
|
|
41
|
+
return new Response(null, { status: 200, headers });
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Add the configured CORS headers to a response the function produced.
|
|
45
|
+
*
|
|
46
|
+
* They are appended. A handler that sends CORS headers of its own keeps them
|
|
47
|
+
* and the response carries both values, which is what AWS documents for
|
|
48
|
+
* anything but a preflight.
|
|
49
|
+
*/
|
|
50
|
+
apply(headers, request) {
|
|
51
|
+
const allowOrigin = this.allowOrigin(request.headers.get("origin"));
|
|
52
|
+
if (allowOrigin !== undefined) {
|
|
53
|
+
headers.append("access-control-allow-origin", allowOrigin);
|
|
54
|
+
}
|
|
55
|
+
// A false Access-Control-Allow-Credentials is not a value the fetch spec
|
|
56
|
+
// recognises. The header is left off instead.
|
|
57
|
+
if (this.cors.AllowCredentials === true) {
|
|
58
|
+
headers.append("access-control-allow-credentials", "true");
|
|
59
|
+
}
|
|
60
|
+
this.appendList(headers, "allow-methods", this.cors.AllowMethods);
|
|
61
|
+
this.appendList(headers, "allow-headers", this.cors.AllowHeaders);
|
|
62
|
+
this.appendList(headers, "expose-headers", this.cors.ExposeHeaders);
|
|
63
|
+
if (this.cors.MaxAge !== undefined) {
|
|
64
|
+
headers.append("access-control-max-age", String(this.cors.MaxAge));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Which Origin this request is told it may read the response from.
|
|
69
|
+
*
|
|
70
|
+
* A list holding the wildcard allows every Origin outright. Otherwise the
|
|
71
|
+
* Origin has to be one the list names. A request carrying no Origin at all,
|
|
72
|
+
* such as one from curl, is told nothing.
|
|
73
|
+
*/
|
|
74
|
+
allowOrigin(requestOrigin) {
|
|
75
|
+
const allowOrigins = this.cors.AllowOrigins ?? [];
|
|
76
|
+
if (allowOrigins.includes("*")) {
|
|
77
|
+
return "*";
|
|
78
|
+
}
|
|
79
|
+
if (requestOrigin === null || !allowOrigins.includes(requestOrigin)) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
return requestOrigin;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Send a configured list as one comma-separated header.
|
|
86
|
+
*
|
|
87
|
+
* An empty list names nothing. A header carrying an empty value says
|
|
88
|
+
* something else to a browser, so the header is left off.
|
|
89
|
+
*/
|
|
90
|
+
appendList(headers, suffix, values) {
|
|
91
|
+
if (values === undefined || values.length === 0) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
headers.append(`access-control-${suffix}`, values.join(","));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -16,6 +16,11 @@ interface SimLambdaServiceControllerProperties {
|
|
|
16
16
|
* Either way the function itself runs as its execution Role, as it does for
|
|
17
17
|
* any other invocation. Who invoked it and what it runs as are separate
|
|
18
18
|
* questions on real Lambda, and stay separate here.
|
|
19
|
+
*
|
|
20
|
+
* A URL configured for CORS answers a preflight request itself, once the
|
|
21
|
+
* request has got past whatever its auth type asks of it. A browser cannot sign
|
|
22
|
+
* a preflight, and an `AWS_IAM` URL refuses one on the same terms it refuses
|
|
23
|
+
* any other unsigned request.
|
|
19
24
|
*/
|
|
20
25
|
export declare class SimLambdaServiceController implements SimAwsServiceController {
|
|
21
26
|
private readonly router;
|
|
@@ -46,6 +51,15 @@ export declare class SimLambdaServiceController implements SimAwsServiceControll
|
|
|
46
51
|
* payload, so it is refused here rather than reaching the function.
|
|
47
52
|
*/
|
|
48
53
|
private invokeAuthenticated;
|
|
54
|
+
/**
|
|
55
|
+
* Serve a request the Function URL has admitted.
|
|
56
|
+
*
|
|
57
|
+
* CORS is settled around the invocation. A preflight is answered from the
|
|
58
|
+
* configuration alone, and every other response carries the configured
|
|
59
|
+
* headers alongside whatever the handler sent, including a duplicate where
|
|
60
|
+
* the two disagree.
|
|
61
|
+
*/
|
|
49
62
|
private invoke;
|
|
63
|
+
private invokeFunction;
|
|
50
64
|
}
|
|
51
65
|
export {};
|
|
@@ -2,6 +2,7 @@ import { SimPayload2EventBuilder } from "../../../serve/payload-2/sim-payload-2-
|
|
|
2
2
|
import { SimPayload2ResponseBuilder } from "../../../serve/payload-2/sim-payload-2-response-builder.js";
|
|
3
3
|
import { SimAws } from "../../aws/sim-aws.js";
|
|
4
4
|
import { simLambdaUrlEndpoint } from "./event/sim-lambda-url-endpoint.js";
|
|
5
|
+
import { SimLambdaUrlCorsHeaders } from "./response/sim-lambda-url-cors-headers.js";
|
|
5
6
|
import { SimLambdaUrlErrorResponse } from "./response/sim-lambda-url-error-response.js";
|
|
6
7
|
import { SimLambdaUrlRouter, } from "./sim-lambda-url-router.js";
|
|
7
8
|
import { SimLambdaUrlAuthorizer } from "./auth/sim-lambda-url-authorizer.js";
|
|
@@ -17,6 +18,11 @@ import { simLambdaUrlPayloadRefusal } from "./auth/sim-lambda-url-payload-hash.j
|
|
|
17
18
|
* Either way the function itself runs as its execution Role, as it does for
|
|
18
19
|
* any other invocation. Who invoked it and what it runs as are separate
|
|
19
20
|
* questions on real Lambda, and stay separate here.
|
|
21
|
+
*
|
|
22
|
+
* A URL configured for CORS answers a preflight request itself, once the
|
|
23
|
+
* request has got past whatever its auth type asks of it. A browser cannot sign
|
|
24
|
+
* a preflight, and an `AWS_IAM` URL refuses one on the same terms it refuses
|
|
25
|
+
* any other unsigned request.
|
|
20
26
|
*/
|
|
21
27
|
export class SimLambdaServiceController {
|
|
22
28
|
router;
|
|
@@ -82,7 +88,28 @@ export class SimLambdaServiceController {
|
|
|
82
88
|
}
|
|
83
89
|
return await this.invoke(route, serviceRequest.request, caller);
|
|
84
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Serve a request the Function URL has admitted.
|
|
93
|
+
*
|
|
94
|
+
* CORS is settled around the invocation. A preflight is answered from the
|
|
95
|
+
* configuration alone, and every other response carries the configured
|
|
96
|
+
* headers alongside whatever the handler sent, including a duplicate where
|
|
97
|
+
* the two disagree.
|
|
98
|
+
*/
|
|
85
99
|
async invoke(route, request, authenticatedCaller) {
|
|
100
|
+
const { cors } = route.functionUrl;
|
|
101
|
+
if (cors === undefined) {
|
|
102
|
+
return await this.invokeFunction(route, request, authenticatedCaller);
|
|
103
|
+
}
|
|
104
|
+
const corsHeaders = new SimLambdaUrlCorsHeaders(cors);
|
|
105
|
+
if (corsHeaders.isPreflight(request)) {
|
|
106
|
+
return corsHeaders.preflightResponse(request);
|
|
107
|
+
}
|
|
108
|
+
const response = await this.invokeFunction(route, request, authenticatedCaller);
|
|
109
|
+
corsHeaders.apply(response.headers, request);
|
|
110
|
+
return response;
|
|
111
|
+
}
|
|
112
|
+
async invokeFunction(route, request, authenticatedCaller) {
|
|
86
113
|
try {
|
|
87
114
|
const event = await this.eventBuilder.build(request, simLambdaUrlEndpoint(route.functionUrl), { caller: authenticatedCaller });
|
|
88
115
|
return this.responseBuilder.build(await route.simFunction.invoke(event));
|