@kensio/yulin 1.20.13 → 1.20.15
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/config/oxlint/cffjs2.oxlintrc.json → cffjs2.oxlintrc.json} +1 -1
- package/dist/config/oxlint/cffjs2.oxlint.config.js +4 -3
- package/dist/service/acm/cfn/certificate/sim-cfn-acm-cert-creator.js +6 -4
- package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.d.ts +2 -2
- package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.js +3 -4
- package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.d.ts +2 -1
- package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.js +2 -2
- package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.d.ts +2 -1
- package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.js +4 -4
- package/dist/service/acm/sim-acm.d.ts +1 -1
- package/dist/service/acm/sim-acm.js +3 -2
- package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.js +11 -13
- package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.js +2 -4
- package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.js +2 -4
- package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.js +3 -5
- package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.d.ts +2 -1
- package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.js +3 -3
- package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.js +2 -4
- package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.d.ts +2 -1
- package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.js +3 -5
- package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-factory.js +9 -7
- package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.d.ts +2 -7
- package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.js +12 -42
- package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.d.ts +10 -0
- package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.js +21 -0
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.d.ts +2 -1
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.js +2 -4
- package/dist/service/apigateway/serve/sim-api-gateway-router.js +5 -2
- package/dist/service/apigateway/sim-api-gateway-commands.d.ts +1 -1
- package/dist/service/apigateway/sim-api-gateway-commands.js +3 -2
- package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.js +5 -9
- package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.js +2 -4
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.d.ts +2 -9
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.js +19 -25
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.d.ts +0 -5
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.js +13 -29
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.d.ts +5 -0
- package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.js +19 -0
- package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.js +5 -13
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.d.ts +2 -1
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.js +2 -4
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-router.js +5 -2
- package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.d.ts +1 -1
- package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.js +3 -2
- package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.d.ts +3 -2
- package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.js +4 -6
- package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.d.ts +2 -2
- package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.js +7 -6
- package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.d.ts +3 -2
- package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.js +7 -11
- package/dist/service/athena/engine/sim-athena-aggregate-shims.d.ts +10 -5
- package/dist/service/athena/engine/sim-athena-aggregate-shims.js +19 -16
- package/dist/service/athena/engine/sim-athena-binary-shims.d.ts +16 -0
- package/dist/service/athena/engine/sim-athena-binary-shims.js +49 -0
- package/dist/service/athena/engine/sim-athena-binary-text.d.ts +21 -0
- package/dist/service/athena/engine/sim-athena-binary-text.js +87 -0
- package/dist/service/athena/engine/sim-athena-count-distinct.d.ts +15 -0
- package/dist/service/athena/engine/sim-athena-count-distinct.js +103 -0
- package/dist/service/athena/engine/sim-athena-distinct-values.d.ts +19 -0
- package/dist/service/athena/engine/sim-athena-distinct-values.js +37 -0
- package/dist/service/athena/engine/sim-athena-hash-words.d.ts +14 -0
- package/dist/service/athena/engine/sim-athena-hash-words.js +22 -0
- package/dist/service/athena/engine/sim-athena-murmur3-mixing.d.ts +15 -0
- package/dist/service/athena/engine/sim-athena-murmur3-mixing.js +37 -0
- package/dist/service/athena/engine/sim-athena-murmur3.d.ts +11 -0
- package/dist/service/athena/engine/sim-athena-murmur3.js +51 -0
- package/dist/service/athena/engine/sim-athena-shim-registry.d.ts +9 -0
- package/dist/service/athena/engine/sim-athena-shim-registry.js +30 -1
- package/dist/service/athena/engine/sim-athena-shims.js +2 -0
- package/dist/service/athena/engine/sim-athena-sql-rewrites.d.ts +4 -2
- package/dist/service/athena/engine/sim-athena-sql-rewrites.js +6 -3
- package/dist/service/athena/engine/sim-athena-xxhash64.d.ts +8 -0
- package/dist/service/athena/engine/sim-athena-xxhash64.js +82 -0
- package/dist/service/athena/sim-athena-executions.d.ts +1 -1
- package/dist/service/athena/sim-athena-executions.js +3 -2
- package/dist/service/bedrock/sim-bedrock.d.ts +1 -1
- package/dist/service/bedrock/sim-bedrock.js +3 -2
- package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +8 -0
- package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +6 -4
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
- package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
- package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +7 -0
- package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +3 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +9 -2
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +10 -3
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +4 -7
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +10 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +4 -2
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +11 -0
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
- package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.d.ts +16 -0
- package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.js +6 -0
- package/dist/service/cloudformation/resource/cfn/scheduler/sim-scheduler-cfn-value-adapter.js +50 -0
- package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts +11 -4
- package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js +21 -8
- package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +21 -0
- package/dist/service/cloudformation/sim-cloudformation.d.ts +1 -1
- package/dist/service/cloudformation/sim-cloudformation.js +3 -2
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +3 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +4 -1
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
- package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +17 -2
- package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +15 -4
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +5 -5
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +12 -0
- 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 +2 -0
- package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
- package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts +2 -0
- package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js +2 -2
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.d.ts +10 -0
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js +4 -3
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-scan.d.ts +11 -0
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-scan.js +21 -0
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts +24 -2
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js +50 -11
- package/dist/service/cloudformation/template/dynamic/sim-cfn-prefetched-dynamic-references.d.ts +42 -0
- package/dist/service/cloudformation/template/dynamic/sim-cfn-prefetched-dynamic-references.js +80 -0
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.d.ts +5 -0
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js +10 -3
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +2 -1
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.d.ts +2 -1
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.js +5 -7
- package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.d.ts +3 -2
- package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.js +6 -6
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -4
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +7 -15
- package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js +3 -2
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +1 -1
- package/dist/service/cloudfront/sim-cloudfront-commands.js +5 -2
- package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.d.ts +3 -2
- package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.js +4 -6
- package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.d.ts +2 -2
- package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.js +4 -3
- package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +1 -1
- package/dist/service/cloudwatch/sim-cloudwatch-commands.js +3 -2
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.js +2 -4
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.js +2 -4
- package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.js +2 -4
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.js +2 -4
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.d.ts +2 -1
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.js +18 -24
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.d.ts +2 -2
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.js +9 -7
- package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.d.ts +2 -1
- package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.js +5 -7
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts +1 -1
- package/dist/service/cognito/sim-cognito-identity-provider.js +3 -2
- package/dist/service/cognito/user-pool/trigger/sim-aws-cognito-trigger-functions.js +2 -1
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts +2 -1
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js +2 -2
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.d.ts +2 -1
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.js +2 -4
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +2 -2
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +6 -4
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.d.ts +2 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +5 -7
- package/dist/service/dynamodb/sim-dynamodb.js +3 -2
- package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.d.ts +3 -2
- package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.js +4 -6
- package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.d.ts +3 -2
- package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.js +4 -4
- package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.d.ts +5 -0
- package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.js +9 -0
- package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.d.ts +2 -2
- package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.js +11 -16
- package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.d.ts +3 -2
- package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.js +4 -6
- package/dist/service/ecs/sim-ecs-commands.js +3 -2
- package/dist/service/ecs/task/run/sim-ecs-container-environment.d.ts +12 -10
- package/dist/service/ecs/task/run/sim-ecs-container-environment.js +16 -18
- package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.d.ts +3 -2
- package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.js +4 -6
- package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.d.ts +3 -2
- package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.js +4 -6
- package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.d.ts +3 -2
- package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.js +4 -4
- package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.d.ts +2 -1
- package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.js +5 -5
- package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.d.ts +2 -2
- package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.js +8 -6
- package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.d.ts +3 -2
- package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.js +7 -11
- package/dist/service/elbv2/serve/sim-elbv2-router.js +2 -1
- package/dist/service/elbv2/sim-elbv2.js +3 -3
- package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.d.ts +2 -1
- package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.js +2 -4
- package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.d.ts +2 -1
- package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.js +5 -5
- package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.d.ts +2 -1
- package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.js +7 -7
- package/dist/service/eventbridge/cfn/sim-event-bridge-cfn-resource-factory.js +5 -3
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-failures.d.ts +16 -0
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-failures.js +19 -0
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-function.js +2 -1
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-queue.js +2 -1
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-task.js +4 -1
- package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-topic.js +2 -1
- package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.d.ts +8 -3
- package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.js +9 -3
- package/dist/service/eventbridge/sim-event-bridge.d.ts +1 -1
- package/dist/service/eventbridge/sim-event-bridge.js +3 -2
- package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.d.ts +2 -1
- package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.js +2 -2
- package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.d.ts +2 -1
- package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.js +2 -4
- package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.d.ts +1 -1
- package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.js +4 -3
- package/dist/service/firehose/sim-firehose.d.ts +1 -1
- package/dist/service/firehose/sim-firehose.js +3 -2
- package/dist/service/glue/sim-glue.d.ts +1 -1
- package/dist/service/glue/sim-glue.js +3 -2
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +15 -11
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +5 -18
- package/dist/service/iam/authorize/context/sim-iam-derived-conditions.d.ts +42 -0
- package/dist/service/iam/authorize/context/sim-iam-derived-conditions.js +44 -0
- package/dist/service/iam/authorize/match/condition/arn/equals/sim-iam-arn-equals.js +2 -2
- package/dist/service/iam/authorize/match/condition/arn/like/sim-iam-arn-like.js +2 -2
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.d.ts +20 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.js +27 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.d.ts +21 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.js +28 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.d.ts +5 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.js +36 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.d.ts +20 -0
- package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.js +29 -0
- package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.d.ts +1 -0
- package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.js +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.d.ts +26 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.js +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js +2 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts +15 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts +11 -3
- package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js +29 -11
- package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.d.ts +24 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.js +17 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js +2 -1
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js +2 -4
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js +2 -1
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js +2 -4
- package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js +2 -1
- package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js +2 -4
- package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts +1 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js +1 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +18 -1
- package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +32 -4
- package/dist/service/iam/authorize/sim-iam-decision.d.ts +12 -0
- package/dist/service/iam/authorize/sim-iam-decision.js +14 -0
- package/dist/service/iam/authorize/sim-iam-region-auth-z.d.ts +31 -0
- package/dist/service/iam/authorize/sim-iam-region-auth-z.js +65 -0
- package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.d.ts +31 -0
- package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.js +1 -0
- package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.d.ts +31 -0
- package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.js +43 -0
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts +2 -1
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js +2 -4
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts +2 -1
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +3 -3
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts +2 -1
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js +7 -7
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.d.ts +2 -1
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.js +8 -8
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.d.ts +2 -1
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.js +10 -12
- package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts +2 -1
- package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js +12 -16
- package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js +8 -5
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts +2 -1
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js +11 -11
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts +4 -2
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js +17 -3
- package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +4 -1
- package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -1
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -1
- package/dist/service/iam/command/sim-iam-command-handlers.js +6 -1
- package/dist/service/iam/policy/parse/sim-iam-document-parser.d.ts +4 -1
- package/dist/service/iam/policy/parse/sim-iam-document-parser.js +13 -15
- package/dist/service/iam/policy/sim-iam-statement-label.d.ts +28 -0
- package/dist/service/iam/policy/sim-iam-statement-label.js +17 -0
- package/dist/service/iam/policy/sim-iam-statement-strings.d.ts +11 -0
- package/dist/service/iam/policy/sim-iam-statement-strings.js +27 -0
- package/dist/service/iam/validate/sim-iam-policy-document-validator.d.ts +9 -2
- package/dist/service/iam/validate/sim-iam-policy-document-validator.js +37 -19
- package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.d.ts +2 -1
- package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.js +2 -2
- package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.d.ts +1 -1
- package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.js +4 -3
- package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.d.ts +2 -1
- package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.js +5 -7
- package/dist/service/kinesis/sim-kinesis.d.ts +1 -1
- package/dist/service/kinesis/sim-kinesis.js +3 -2
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts +2 -1
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js +2 -2
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts +6 -6
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js +11 -11
- package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.d.ts +2 -1
- package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.js +3 -5
- package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts +2 -1
- package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js +6 -4
- package/dist/service/kms/sim-kms-commands.d.ts +1 -1
- package/dist/service/kms/sim-kms-commands.js +3 -2
- package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.js +2 -2
- package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.js +2 -2
- package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.d.ts +2 -1
- package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.js +2 -4
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js +2 -2
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.js +3 -4
- package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.js +2 -2
- package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.d.ts +2 -1
- package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.js +2 -2
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.d.ts +2 -8
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.js +18 -38
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts +2 -2
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js +12 -9
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +2 -2
- package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.d.ts +2 -1
- package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.js +2 -2
- package/dist/service/lambda/function/code/sim-lambda-vm-zip-function.factory.d.ts +7 -0
- package/dist/service/lambda/function/code/sim-lambda-vm-zip-function.factory.js +1 -0
- package/dist/service/lambda/function/code/vm/sdk/sim-lambda-provided-sdk-module.d.ts +19 -0
- package/dist/service/lambda/function/code/vm/sdk/sim-lambda-provided-sdk-module.js +78 -0
- package/dist/service/lambda/function/code/vm/sdk/sim-lambda-sdk-packages-not-installed.error.d.ts +15 -0
- package/dist/service/lambda/function/code/vm/sdk/sim-lambda-sdk-packages-not-installed.error.js +27 -0
- package/dist/service/lambda/function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.d.ts +9 -0
- package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.d.ts +10 -0
- package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js +28 -34
- package/dist/service/lambda/function/code/vm/sim-lambda-host-modules.d.ts +15 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-host-modules.js +31 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-module-resolver.d.ts +7 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-module-resolver.js +15 -0
- package/dist/service/lambda/function/code/vm/sim-lambda-vm-modules.js +5 -4
- package/dist/service/lambda/serve/sim-lambda-url-router.js +2 -1
- package/dist/service/lambda/sim-lambda-commands.d.ts +1 -1
- package/dist/service/lambda/sim-lambda-commands.js +3 -2
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +3 -2
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +4 -6
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +3 -2
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +4 -6
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +3 -2
- package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +4 -4
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -1
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -4
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +2 -2
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +7 -5
- package/dist/service/logs/sim-logs-commands.d.ts +1 -1
- package/dist/service/logs/sim-logs-commands.js +3 -2
- package/dist/service/logs/subscription/lambda/sim-logs-destination-permission.js +2 -1
- package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.js +4 -6
- package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.js +4 -6
- package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.js +4 -6
- package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.js +4 -4
- package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.d.ts +3 -2
- package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.js +4 -6
- package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.d.ts +2 -2
- package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.js +7 -6
- package/dist/service/personalize/sim-personalize-data-operations.d.ts +1 -1
- package/dist/service/personalize/sim-personalize-data-operations.js +3 -2
- package/dist/service/rekognition/sim-rekognition.d.ts +1 -1
- package/dist/service/rekognition/sim-rekognition.js +3 -2
- package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.d.ts +3 -2
- package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.js +5 -5
- package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.d.ts +3 -2
- package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.js +4 -8
- package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.d.ts +2 -1
- package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.js +2 -2
- package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts +9 -1
- package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +23 -2
- package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.d.ts +5 -3
- package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.js +9 -28
- package/dist/service/route53/cfn/sim-cfn-route53-resource-factory.js +9 -5
- package/dist/service/route53/sim-route53.d.ts +1 -1
- package/dist/service/route53/sim-route53.js +5 -2
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +3 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +6 -13
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -1
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +3 -2
- package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +2 -1
- package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +2 -2
- package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.d.ts +2 -1
- package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.js +3 -7
- package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -2
- package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +6 -4
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +4 -1
- package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js +2 -1
- package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.js +2 -1
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js +2 -1
- package/dist/service/s3/sim-s3-commands.d.ts +1 -1
- package/dist/service/s3/sim-s3-commands.js +3 -2
- package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.d.ts +26 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.js +49 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.d.ts +31 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.js +48 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.d.ts +26 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.js +68 -0
- package/dist/service/scheduler/cfn/sim-cfn-schedule-properties.js +4 -10
- package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.d.ts +14 -3
- package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.js +28 -6
- package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.d.ts +10 -4
- package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.js +9 -6
- package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.d.ts +6 -8
- package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.js +20 -33
- package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +9 -8
- package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +14 -15
- package/dist/service/scheduler/command/group/group.command.d.ts +90 -0
- package/dist/service/scheduler/command/group/group.command.js +1 -0
- package/dist/service/scheduler/command/group/sim-scheduler-described-group.d.ts +15 -0
- package/dist/service/scheduler/command/group/sim-scheduler-described-group.js +29 -0
- package/dist/service/scheduler/command/group/sim-scheduler-group-access.d.ts +57 -0
- package/dist/service/scheduler/command/group/sim-scheduler-group-access.js +70 -0
- package/dist/service/scheduler/command/group/sim-scheduler-group-commands.d.ts +46 -0
- package/dist/service/scheduler/command/group/sim-scheduler-group-commands.js +72 -0
- package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.d.ts +6 -0
- package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.js +10 -0
- package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.d.ts +14 -0
- package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.js +19 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +16 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +23 -3
- package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -0
- package/dist/service/scheduler/command/sim-scheduler-commands.d.ts +4 -0
- package/dist/service/scheduler/command/sim-scheduler-commands.js +14 -1
- package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +1 -1
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-failures.d.ts +16 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-failures.js +19 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +2 -1
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-queue.js +2 -1
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-topic.js +2 -1
- package/dist/service/scheduler/delivery/sim-scheduler-execution-role.d.ts +9 -3
- package/dist/service/scheduler/delivery/sim-scheduler-execution-role.js +10 -3
- package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.d.ts +11 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.js +13 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.d.ts +46 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.js +65 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group.d.ts +25 -0
- package/dist/service/scheduler/group/sim-scheduler-schedule-group.js +32 -0
- package/dist/service/scheduler/index.d.ts +3 -1
- package/dist/service/scheduler/index.js +3 -1
- package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.d.ts +11 -9
- package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.js +15 -18
- package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.d.ts +7 -0
- package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.js +13 -0
- package/dist/service/scheduler/schedule/sim-scheduler-schedule.d.ts +13 -0
- package/dist/service/scheduler/schedule/sim-scheduler-schedule.js +16 -0
- package/dist/service/scheduler/sdk/sim-scheduler-sdk-command-router.js +16 -0
- package/dist/service/scheduler/sim-scheduler-inspection.d.ts +14 -0
- package/dist/service/scheduler/sim-scheduler-inspection.js +15 -0
- package/dist/service/scheduler/sim-scheduler.d.ts +19 -1
- package/dist/service/scheduler/sim-scheduler.js +38 -2
- package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-dynamic-reference-resolver.d.ts +13 -15
- package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-dynamic-reference-resolver.js +22 -43
- package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-stand-in.d.ts +9 -0
- package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-stand-in.js +14 -0
- package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-value.d.ts +12 -0
- package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-value.js +29 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts +2 -1
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js +2 -2
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts +2 -2
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js +4 -5
- package/dist/service/secretsmanager/sim-secrets-manager.d.ts +1 -1
- package/dist/service/secretsmanager/sim-secrets-manager.js +3 -2
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts +3 -2
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js +4 -4
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts +3 -2
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js +4 -8
- package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts +2 -2
- package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js +7 -6
- package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.d.ts +3 -2
- package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.js +4 -8
- package/dist/service/ses/sim-ses-commands.d.ts +1 -1
- package/dist/service/ses/sim-ses-commands.js +3 -2
- package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.d.ts +5 -8
- package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.js +10 -28
- package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.js +10 -5
- package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.d.ts +2 -1
- package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.js +2 -2
- package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.d.ts +2 -1
- package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.js +5 -7
- package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.d.ts +9 -1
- package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.js +20 -4
- package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.js +2 -1
- package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.js +2 -1
- package/dist/service/sns/sim-sns.d.ts +1 -1
- package/dist/service/sns/sim-sns.js +3 -2
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts +2 -1
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js +2 -4
- package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.d.ts +2 -1
- package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.js +4 -4
- package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.d.ts +2 -1
- package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.js +7 -7
- package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js +5 -3
- package/dist/service/sqs/sim-sqs.d.ts +1 -1
- package/dist/service/sqs/sim-sqs.js +3 -2
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts +22 -6
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js +39 -24
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts +10 -5
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js +10 -8
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.d.ts +2 -1
- package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.js +2 -2
- package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.d.ts +2 -2
- package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.js +4 -3
- package/dist/service/ssm/sim-ssm.d.ts +11 -3
- package/dist/service/ssm/sim-ssm.js +15 -6
- package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.d.ts +2 -1
- package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.js +2 -4
- package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.d.ts +1 -1
- package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.js +4 -3
- package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.d.ts +2 -1
- package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.js +2 -2
- package/dist/service/stepfunctions/task/sim-aws-states-task-targets.js +2 -4
- package/dist/service/stepfunctions/task/sim-states-execution-role.d.ts +3 -3
- package/dist/service/stepfunctions/task/sim-states-execution-role.js +4 -3
- package/dist/service/stepfunctions/task/sim-states-task-function.js +2 -1
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +3 -0
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +2 -7
- package/dist/service/sts/auth-z/assume-role-source-account-auth-z.d.ts +6 -0
- package/dist/service/sts/auth-z/assume-role-source-account-auth-z.js +3 -0
- package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +6 -0
- package/dist/service/sts/auth-z/assume-role-target-auth-z.js +3 -0
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +6 -0
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +1 -0
- package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
- package/dist/service/sts/command/assume-role/assume-role.handler.js +2 -1
- package/dist/service/sts/service-role/sim-service-role-source.d.ts +33 -0
- package/dist/service/sts/service-role/sim-service-role-source.js +26 -0
- package/dist/service/sts/service-role/sim-service-role-target.d.ts +26 -0
- package/dist/service/sts/service-role/sim-service-role-target.js +27 -0
- package/dist/service/sts/service-role/sim-service-role.d.ts +16 -20
- package/dist/service/sts/service-role/sim-service-role.js +7 -21
- package/dist/service/sts/sim-sts.js +1 -0
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.d.ts +3 -2
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.js +4 -6
- package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.d.ts +3 -2
- package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.js +4 -4
- package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.d.ts +3 -2
- package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.js +4 -4
- package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.d.ts +2 -1
- package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.js +5 -5
- package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.d.ts +2 -2
- package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.js +8 -6
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.d.ts +3 -2
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.js +4 -6
- package/dist/service/wafv2/sim-wafv2-commands.d.ts +1 -1
- package/dist/service/wafv2/sim-wafv2-commands.js +3 -2
- package/dist/util/clock/sim-clock-control.d.ts +3 -1
- package/dist/util/clock/sim-clock-control.js +2 -0
- package/dist/util/clock/sim-controllable-clock.d.ts +3 -1
- package/dist/util/clock/sim-controllable-clock.js +2 -0
- package/dist/util/clock/sim-duration.d.ts +6 -2
- package/dist/util/clock/sim-duration.js +8 -1
- package/package.json +4 -3
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/** The name the rewrite calls, which the aggregate shims register. */
|
|
2
|
+
export const countDistinctShim = "count_distinct";
|
|
3
|
+
/** Where one `count(DISTINCT` opens, however the statement spaced it. */
|
|
4
|
+
const opening = /\bcount\s*\(\s*DISTINCT\b/giu;
|
|
5
|
+
/** One name in a column reference, quoted or bare. */
|
|
6
|
+
const namePart = /^(?:"[^"]*"|[A-Za-z_]\w*)$/u;
|
|
7
|
+
/**
|
|
8
|
+
* `count(DISTINCT <expression>)`, written as a call the parser will take.
|
|
9
|
+
*
|
|
10
|
+
* The parser's Athena grammar takes a column after `DISTINCT` and nothing else,
|
|
11
|
+
* so `count(DISTINCT concat(a, b))` is refused outright and the whole query
|
|
12
|
+
* falls back. SQLite takes the same expression happily, and so does Athena, so
|
|
13
|
+
* the gap is the grammar rather than the engine.
|
|
14
|
+
*
|
|
15
|
+
* A plain column is left alone, since that already parses and SQLite counts it
|
|
16
|
+
* natively. Everything else becomes a call to one aggregate of the simulator's
|
|
17
|
+
* own, which counts the distinct values the same way.
|
|
18
|
+
*/
|
|
19
|
+
export function simAthenaCountDistinct(sql) {
|
|
20
|
+
const quoted = quotedPositions(sql);
|
|
21
|
+
let rewritten = "";
|
|
22
|
+
let read = 0;
|
|
23
|
+
opening.lastIndex = 0;
|
|
24
|
+
for (let match = opening.exec(sql); match !== null; match = opening.exec(sql)) {
|
|
25
|
+
const closes = closingParenthesis(sql, opening.lastIndex, quoted);
|
|
26
|
+
if (closes === undefined || quoted.at(match.index) === true) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const argument = sql.slice(opening.lastIndex, closes).trim();
|
|
30
|
+
if (isColumnReference(argument)) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
rewritten += `${sql.slice(read, match.index)}${countDistinctShim}(${argument})`;
|
|
34
|
+
read = closes + 1;
|
|
35
|
+
opening.lastIndex = read;
|
|
36
|
+
}
|
|
37
|
+
return rewritten + sql.slice(read);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Whether this argument is a column the grammar would have taken as it stands.
|
|
41
|
+
*
|
|
42
|
+
* A quoted name carrying a dot of its own reads here as two names and fails
|
|
43
|
+
* this. The call is then rewritten, and the rewrite answers the same way.
|
|
44
|
+
*/
|
|
45
|
+
function isColumnReference(argument) {
|
|
46
|
+
return argument.split(".").every((part) => namePart.test(part.trim()));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Whether the character at each position sits inside quotes.
|
|
50
|
+
*
|
|
51
|
+
* Both of SQL's quotes are tracked. A single quote opens a string literal and a
|
|
52
|
+
* double quote opens a delimited identifier, and either is free to carry the
|
|
53
|
+
* text of a call. Rewriting inside a literal would change the value a
|
|
54
|
+
* comparison is made against, and rewriting inside an identifier would name a
|
|
55
|
+
* different column.
|
|
56
|
+
*
|
|
57
|
+
* SQL escapes a quote inside either by doubling it, which reads here as one
|
|
58
|
+
* quoted run ending and another starting. The positions in between land the
|
|
59
|
+
* same way whichever reading is taken.
|
|
60
|
+
*/
|
|
61
|
+
function quotedPositions(sql) {
|
|
62
|
+
const inside = [];
|
|
63
|
+
let quote;
|
|
64
|
+
for (const character of quotableCharacters(sql)) {
|
|
65
|
+
if (quote === undefined && (character === "'" || character === '"')) {
|
|
66
|
+
quote = character;
|
|
67
|
+
}
|
|
68
|
+
else if (quote === character) {
|
|
69
|
+
quote = undefined;
|
|
70
|
+
}
|
|
71
|
+
inside.push(quote !== undefined);
|
|
72
|
+
}
|
|
73
|
+
return inside;
|
|
74
|
+
}
|
|
75
|
+
/** Each character of the statement, by position rather than by code point. */
|
|
76
|
+
function* quotableCharacters(sql) {
|
|
77
|
+
for (let at = 0; at < sql.length; at += 1) {
|
|
78
|
+
yield sql.charAt(at);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Where the parenthesis that opened this call closes, or nothing where the
|
|
83
|
+
* statement never closes it.
|
|
84
|
+
*
|
|
85
|
+
* Depth is counted so that a call carrying calls of its own is read whole, and
|
|
86
|
+
* a parenthesis inside quotes is passed over so that it is not counted.
|
|
87
|
+
*/
|
|
88
|
+
function closingParenthesis(sql, from, quoted) {
|
|
89
|
+
let depth = 0;
|
|
90
|
+
for (let at = from; at < sql.length; at += 1) {
|
|
91
|
+
const character = quoted.at(at) === true ? "" : sql.charAt(at);
|
|
92
|
+
if (character === "(") {
|
|
93
|
+
depth += 1;
|
|
94
|
+
}
|
|
95
|
+
else if (character === ")") {
|
|
96
|
+
if (depth === 0) {
|
|
97
|
+
return at;
|
|
98
|
+
}
|
|
99
|
+
depth -= 1;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SQLOutputValue } from "node:sqlite";
|
|
2
|
+
/**
|
|
3
|
+
* The values one aggregate has seen, as SQLite will carry them between rows.
|
|
4
|
+
*
|
|
5
|
+
* SQLite holds an accumulator as one of its own values rather than as an
|
|
6
|
+
* object, so the set travels as the JSON text of its keys.
|
|
7
|
+
*/
|
|
8
|
+
export type SimAthenaDistinctValues = string;
|
|
9
|
+
/** An empty accumulator, which is what an aggregate over no rows answers from. */
|
|
10
|
+
export declare const noDistinctValues: SimAthenaDistinctValues;
|
|
11
|
+
/**
|
|
12
|
+
* This value with one more added, where it is not null.
|
|
13
|
+
*
|
|
14
|
+
* Trino and SQLite both leave a null out of a distinct count, so a null row
|
|
15
|
+
* adds nothing.
|
|
16
|
+
*/
|
|
17
|
+
export declare function withDistinctValue(accumulator: SimAthenaDistinctValues, value: SQLOutputValue): SimAthenaDistinctValues;
|
|
18
|
+
/** How many distinct values this accumulator saw. */
|
|
19
|
+
export declare function countedDistinctValues(accumulator: SimAthenaDistinctValues): number;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** An empty accumulator, which is what an aggregate over no rows answers from. */
|
|
2
|
+
export const noDistinctValues = "[]";
|
|
3
|
+
/**
|
|
4
|
+
* This value with one more added, where it is not null.
|
|
5
|
+
*
|
|
6
|
+
* Trino and SQLite both leave a null out of a distinct count, so a null row
|
|
7
|
+
* adds nothing.
|
|
8
|
+
*/
|
|
9
|
+
export function withDistinctValue(accumulator, value) {
|
|
10
|
+
if (value === null) {
|
|
11
|
+
return accumulator;
|
|
12
|
+
}
|
|
13
|
+
const seen = new Set(JSON.parse(accumulator));
|
|
14
|
+
seen.add(keyOf(value));
|
|
15
|
+
return JSON.stringify([...seen]);
|
|
16
|
+
}
|
|
17
|
+
/** How many distinct values this accumulator saw. */
|
|
18
|
+
export function countedDistinctValues(accumulator) {
|
|
19
|
+
return JSON.parse(accumulator).length;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* One value as the key that tells it apart from the others.
|
|
23
|
+
*
|
|
24
|
+
* The tag is what keeps the number `1` and the text `'1'` apart, which is how
|
|
25
|
+
* SQLite keeps them apart too. A whole number arrives as a `bigint` or as a
|
|
26
|
+
* `number` by its size alone, so both take the same tag and the same spelling.
|
|
27
|
+
* Bytes are keyed by their hex, since a digest is a blob here and two rows
|
|
28
|
+
* carrying the same digest are one value.
|
|
29
|
+
*/
|
|
30
|
+
function keyOf(value) {
|
|
31
|
+
if (typeof value === "string") {
|
|
32
|
+
return `s:${value}`;
|
|
33
|
+
}
|
|
34
|
+
return value instanceof Uint8Array
|
|
35
|
+
? `b:${Buffer.from(value).toString("hex")}`
|
|
36
|
+
: `n:${String(value)}`;
|
|
37
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The 64-bit arithmetic both hand-written hashes are built on.
|
|
3
|
+
*
|
|
4
|
+
* Neither xxHash64 nor MurmurHash3 has an implementation in Node, and both are
|
|
5
|
+
* defined over 64-bit words. A BigInt carries as many bits as it is given, so
|
|
6
|
+
* every operation masks its answer back down to the width the algorithm works
|
|
7
|
+
* in.
|
|
8
|
+
*/
|
|
9
|
+
/** Every bit of one 64-bit word. */
|
|
10
|
+
export declare const hashWord: bigint;
|
|
11
|
+
/** One word rotated left, with the bits carried off the top brought back in. */
|
|
12
|
+
export declare function rotateWord(value: bigint, by: number): bigint;
|
|
13
|
+
/** Whatever bytes are left over, read as the low end of a word. */
|
|
14
|
+
export declare function partialWord(bytes: Uint8Array): bigint;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The 64-bit arithmetic both hand-written hashes are built on.
|
|
3
|
+
*
|
|
4
|
+
* Neither xxHash64 nor MurmurHash3 has an implementation in Node, and both are
|
|
5
|
+
* defined over 64-bit words. A BigInt carries as many bits as it is given, so
|
|
6
|
+
* every operation masks its answer back down to the width the algorithm works
|
|
7
|
+
* in.
|
|
8
|
+
*/
|
|
9
|
+
/** Every bit of one 64-bit word. */
|
|
10
|
+
export const hashWord = (1n << 64n) - 1n;
|
|
11
|
+
/** One word rotated left, with the bits carried off the top brought back in. */
|
|
12
|
+
export function rotateWord(value, by) {
|
|
13
|
+
return ((value << BigInt(by)) | (value >> BigInt(64 - by))) & hashWord;
|
|
14
|
+
}
|
|
15
|
+
/** Whatever bytes are left over, read as the low end of a word. */
|
|
16
|
+
export function partialWord(bytes) {
|
|
17
|
+
let value = 0n;
|
|
18
|
+
for (const [index, byte] of bytes.entries()) {
|
|
19
|
+
value |= BigInt(byte) << BigInt(8 * index);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** The two accumulators MurmurHash3 carries, the low half first. */
|
|
2
|
+
export type SimAthenaMurmurHalves = readonly [bigint, bigint];
|
|
3
|
+
/** Two words scrambled into the keys one round mixes in. */
|
|
4
|
+
export declare function murmurKeys(low: bigint, high: bigint): SimAthenaMurmurHalves;
|
|
5
|
+
/**
|
|
6
|
+
* Both accumulators taken through one round, the low half leading.
|
|
7
|
+
*
|
|
8
|
+
* The high half is crossed with the low half the round has just written, which
|
|
9
|
+
* is what carries a block into every later one.
|
|
10
|
+
*/
|
|
11
|
+
export declare function murmurRound(halves: SimAthenaMurmurHalves, keys: SimAthenaMurmurHalves): SimAthenaMurmurHalves;
|
|
12
|
+
/** Each accumulator with the other added into it, the low half first. */
|
|
13
|
+
export declare function murmurCrossed(halves: SimAthenaMurmurHalves): SimAthenaMurmurHalves;
|
|
14
|
+
/** The final mix, which spreads every bit of one half over its word. */
|
|
15
|
+
export declare function murmurAvalanche(value: bigint): bigint;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { hashWord as word, rotateWord as rotate, } from "./sim-athena-hash-words.js";
|
|
2
|
+
const constant1 = 0x87c37b91114253d5n;
|
|
3
|
+
const constant2 = 0x4cf5ad432745937fn;
|
|
4
|
+
/** Two words scrambled into the keys one round mixes in. */
|
|
5
|
+
export function murmurKeys(low, high) {
|
|
6
|
+
return [
|
|
7
|
+
scramble(low, constant1, 31, constant2),
|
|
8
|
+
scramble(high, constant2, 33, constant1),
|
|
9
|
+
];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Both accumulators taken through one round, the low half leading.
|
|
13
|
+
*
|
|
14
|
+
* The high half is crossed with the low half the round has just written, which
|
|
15
|
+
* is what carries a block into every later one.
|
|
16
|
+
*/
|
|
17
|
+
export function murmurRound(halves, keys) {
|
|
18
|
+
const low = mixed(halves[0] ^ keys[0], halves[1], 27, 0x52dce729n);
|
|
19
|
+
return [low, mixed(halves[1] ^ keys[1], low, 31, 0x38495ab5n)];
|
|
20
|
+
}
|
|
21
|
+
/** Each accumulator with the other added into it, the low half first. */
|
|
22
|
+
export function murmurCrossed(halves) {
|
|
23
|
+
const low = (halves[0] + halves[1]) & word;
|
|
24
|
+
return [low, (halves[1] + low) & word];
|
|
25
|
+
}
|
|
26
|
+
/** The final mix, which spreads every bit of one half over its word. */
|
|
27
|
+
export function murmurAvalanche(value) {
|
|
28
|
+
let spread = ((value ^ (value >> 33n)) * 0xff51afd7ed558ccdn) & word;
|
|
29
|
+
spread = ((spread ^ (spread >> 33n)) * 0xc4ceb9fe1a85ec53n) & word;
|
|
30
|
+
return spread ^ (spread >> 33n);
|
|
31
|
+
}
|
|
32
|
+
function scramble(value, before, by, after) {
|
|
33
|
+
return (rotate((value * before) & word, by) * after) & word;
|
|
34
|
+
}
|
|
35
|
+
function mixed(half, other, by, added) {
|
|
36
|
+
return ((rotate(half, by) + other) * 5n + added) & word;
|
|
37
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The 128-bit MurmurHash3 of these bytes, seeded with zero, as Trino's
|
|
3
|
+
* `murmur3` seeds it.
|
|
4
|
+
*
|
|
5
|
+
* This is the x64 variant, which answers differently from the x86 one of the
|
|
6
|
+
* same width. Trino writes each half of the answer little-endian, which is what
|
|
7
|
+
* makes `to_hex(murmur3(from_hex('69A69A69')))` read as
|
|
8
|
+
* `BA5855635569B42F4920372CA0E396EF`. That is the one worked example Trino's
|
|
9
|
+
* own documentation carries.
|
|
10
|
+
*/
|
|
11
|
+
export declare function simAthenaMurmur3(bytes: Uint8Array): Uint8Array;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { partialWord } from "./sim-athena-hash-words.js";
|
|
2
|
+
import { murmurAvalanche, murmurCrossed, murmurKeys, murmurRound, } from "./sim-athena-murmur3-mixing.js";
|
|
3
|
+
/** How many bytes one round of the body reads. */
|
|
4
|
+
const block = 16;
|
|
5
|
+
/**
|
|
6
|
+
* The 128-bit MurmurHash3 of these bytes, seeded with zero, as Trino's
|
|
7
|
+
* `murmur3` seeds it.
|
|
8
|
+
*
|
|
9
|
+
* This is the x64 variant, which answers differently from the x86 one of the
|
|
10
|
+
* same width. Trino writes each half of the answer little-endian, which is what
|
|
11
|
+
* makes `to_hex(murmur3(from_hex('69A69A69')))` read as
|
|
12
|
+
* `BA5855635569B42F4920372CA0E396EF`. That is the one worked example Trino's
|
|
13
|
+
* own documentation carries.
|
|
14
|
+
*/
|
|
15
|
+
export function simAthenaMurmur3(bytes) {
|
|
16
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
17
|
+
const body = bytes.length - (bytes.length % block);
|
|
18
|
+
let halves = [0n, 0n];
|
|
19
|
+
for (let at = 0; at < body; at += block) {
|
|
20
|
+
halves = murmurRound(halves, murmurKeys(view.getBigUint64(at, true), view.getBigUint64(at + 8, true)));
|
|
21
|
+
}
|
|
22
|
+
return written(finish(halves, bytes.subarray(body), bytes.length));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Whatever the body left over, then the final mix over both accumulators.
|
|
26
|
+
*
|
|
27
|
+
* The tail bytes are read low to high, which is the little-endian read of a
|
|
28
|
+
* partial word. Neither half is rotated for them and neither is crossed with
|
|
29
|
+
* the other, and a tail short enough to leave a half empty scrambles a zero
|
|
30
|
+
* into it, which changes nothing.
|
|
31
|
+
*/
|
|
32
|
+
function finish(halves, tail, length) {
|
|
33
|
+
const keys = murmurKeys(partialWord(tail.subarray(0, 8)), partialWord(tail.subarray(8)));
|
|
34
|
+
const counted = BigInt(length);
|
|
35
|
+
const carried = murmurCrossed([
|
|
36
|
+
halves[0] ^ keys[0] ^ counted,
|
|
37
|
+
halves[1] ^ keys[1] ^ counted,
|
|
38
|
+
]);
|
|
39
|
+
return murmurCrossed([
|
|
40
|
+
murmurAvalanche(carried[0]),
|
|
41
|
+
murmurAvalanche(carried[1]),
|
|
42
|
+
]);
|
|
43
|
+
}
|
|
44
|
+
/** Both halves as bytes, each one written little-endian, as Trino writes them. */
|
|
45
|
+
function written(halves) {
|
|
46
|
+
const digest = new Uint8Array(block);
|
|
47
|
+
const view = new DataView(digest.buffer);
|
|
48
|
+
view.setBigUint64(0, halves[0], true);
|
|
49
|
+
view.setBigUint64(8, halves[1], true);
|
|
50
|
+
return digest;
|
|
51
|
+
}
|
|
@@ -21,3 +21,12 @@ export declare function isExplicitNull(values: readonly SQLOutputValue[], index:
|
|
|
21
21
|
export declare function shimText(value: SQLOutputValue | undefined): string | undefined;
|
|
22
22
|
/** One argument as a number, or nothing where it is not one. */
|
|
23
23
|
export declare function shimNumber(value: SQLOutputValue | undefined): number | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* One argument as bytes, or nothing where it is null.
|
|
26
|
+
*
|
|
27
|
+
* The binary functions take a `varbinary`, and Trino refuses text where one is
|
|
28
|
+
* wanted rather than converting it. SQLite has no such analysis to run, so a
|
|
29
|
+
* column of text reaching `sha256` without a `to_utf8` around it is hashed as
|
|
30
|
+
* its UTF-8 bytes, which is what the missing call would have produced.
|
|
31
|
+
*/
|
|
32
|
+
export declare function shimBytes(value: SQLOutputValue | undefined): Uint8Array | undefined;
|
|
@@ -6,7 +6,20 @@
|
|
|
6
6
|
* with an optional argument would stop resolving.
|
|
7
7
|
*/
|
|
8
8
|
export function simAthenaScalarShim(database, name, implementation) {
|
|
9
|
-
database.function(name, { varargs: true, deterministic: true }, implementation);
|
|
9
|
+
database.function(name, { varargs: true, deterministic: true }, (...values) => withEmptyBytes(implementation(...values)));
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* One answer, with an empty `varbinary` written so that SQLite keeps it.
|
|
13
|
+
*
|
|
14
|
+
* `node:sqlite` reads a zero length typed array as SQL NULL where its backing
|
|
15
|
+
* store carries no pointer, and `TextEncoder` answers with exactly that over an
|
|
16
|
+
* empty string. Copying those bytes gives the empty blob back, and `to_utf8('')`
|
|
17
|
+
* then answers the empty `varbinary` Trino answers with rather than a null.
|
|
18
|
+
*/
|
|
19
|
+
function withEmptyBytes(answered) {
|
|
20
|
+
return answered instanceof Uint8Array && answered.length === 0
|
|
21
|
+
? Buffer.alloc(0)
|
|
22
|
+
: answered;
|
|
10
23
|
}
|
|
11
24
|
/**
|
|
12
25
|
* Whether an optional argument was written as an explicit `NULL`.
|
|
@@ -30,3 +43,19 @@ export function shimNumber(value) {
|
|
|
30
43
|
const parsed = Number(value);
|
|
31
44
|
return Number.isFinite(parsed) ? parsed : undefined;
|
|
32
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* One argument as bytes, or nothing where it is null.
|
|
48
|
+
*
|
|
49
|
+
* The binary functions take a `varbinary`, and Trino refuses text where one is
|
|
50
|
+
* wanted rather than converting it. SQLite has no such analysis to run, so a
|
|
51
|
+
* column of text reaching `sha256` without a `to_utf8` around it is hashed as
|
|
52
|
+
* its UTF-8 bytes, which is what the missing call would have produced.
|
|
53
|
+
*/
|
|
54
|
+
export function shimBytes(value) {
|
|
55
|
+
if (value === null || value === undefined) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
return value instanceof Uint8Array
|
|
59
|
+
? value
|
|
60
|
+
: new TextEncoder().encode(String(value));
|
|
61
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { simAthenaInstallAggregateShims } from "./sim-athena-aggregate-shims.js";
|
|
2
2
|
import { simAthenaInstallArrayShims } from "./sim-athena-array-shims.js";
|
|
3
|
+
import { simAthenaInstallBinaryShims } from "./sim-athena-binary-shims.js";
|
|
3
4
|
import { simAthenaInstallClockShims } from "./sim-athena-clock-shims.js";
|
|
4
5
|
import { simAthenaInstallDateArithmeticShims } from "./sim-athena-date-arithmetic-shims.js";
|
|
5
6
|
import { simAthenaInstallDateShims } from "./sim-athena-date-shims.js";
|
|
@@ -24,6 +25,7 @@ export function simAthenaInstallShims(database, startedAt) {
|
|
|
24
25
|
simAthenaInstallJsonDocumentShims(database);
|
|
25
26
|
simAthenaInstallArrayShims(database);
|
|
26
27
|
simAthenaInstallStringShims(database);
|
|
28
|
+
simAthenaInstallBinaryShims(database);
|
|
27
29
|
simAthenaInstallRegexpShims(database);
|
|
28
30
|
simAthenaInstallUrlShims(database);
|
|
29
31
|
simAthenaInstallAggregateShims(database);
|
|
@@ -7,11 +7,13 @@ export interface SimAthenaParserSql {
|
|
|
7
7
|
/**
|
|
8
8
|
* The statement as the parser's Athena grammar will take it.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* Every rewrite here closes a gap in that grammar rather than a gap in SQLite.
|
|
11
11
|
* `try_cast` becomes a plain cast, which changes meaning in the forgiving
|
|
12
12
|
* direction, since SQLite already answers with a value where a cast fails
|
|
13
13
|
* rather than failing the query. Trino writes `OFFSET` before `LIMIT` and every
|
|
14
|
-
* other dialect writes it after.
|
|
14
|
+
* other dialect writes it after. `count(DISTINCT <expression>)` becomes a call
|
|
15
|
+
* to an aggregate of the simulator's own, since the grammar takes a column
|
|
16
|
+
* after `DISTINCT` and nothing else.
|
|
15
17
|
*/
|
|
16
18
|
export declare function simAthenaSqlForParser(sql: string): SimAthenaParserSql;
|
|
17
19
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { simAthenaCountDistinct } from "./sim-athena-count-distinct.js";
|
|
1
2
|
/**
|
|
2
3
|
* `WITH ORDINALITY`, which the parser's Athena grammar refuses outright.
|
|
3
4
|
*
|
|
@@ -9,14 +10,16 @@ const withOrdinality = /\s+WITH\s+ORDINALITY\b/giu;
|
|
|
9
10
|
/**
|
|
10
11
|
* The statement as the parser's Athena grammar will take it.
|
|
11
12
|
*
|
|
12
|
-
*
|
|
13
|
+
* Every rewrite here closes a gap in that grammar rather than a gap in SQLite.
|
|
13
14
|
* `try_cast` becomes a plain cast, which changes meaning in the forgiving
|
|
14
15
|
* direction, since SQLite already answers with a value where a cast fails
|
|
15
16
|
* rather than failing the query. Trino writes `OFFSET` before `LIMIT` and every
|
|
16
|
-
* other dialect writes it after.
|
|
17
|
+
* other dialect writes it after. `count(DISTINCT <expression>)` becomes a call
|
|
18
|
+
* to an aggregate of the simulator's own, since the grammar takes a column
|
|
19
|
+
* after `DISTINCT` and nothing else.
|
|
17
20
|
*/
|
|
18
21
|
export function simAthenaSqlForParser(sql) {
|
|
19
|
-
const rewritten = sql
|
|
22
|
+
const rewritten = simAthenaCountDistinct(sql)
|
|
20
23
|
.replaceAll(/\btry_cast\s*\(/giu, "CAST(")
|
|
21
24
|
.replaceAll(/\bOFFSET\s+(\d+)\s+LIMIT\s+(\d+)/giu, (_match, offset, limit) => `LIMIT ${limit} OFFSET ${offset}`);
|
|
22
25
|
const forParser = rewritten.replaceAll(withOrdinality, "");
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The xxHash64 of these bytes, seeded with zero, as Trino's `xxhash64` seeds
|
|
3
|
+
* it.
|
|
4
|
+
*
|
|
5
|
+
* Trino answers with the eight bytes of the hash written big-endian, which is
|
|
6
|
+
* what makes `to_hex(xxhash64(to_utf8('hello')))` read as `26C7827D889F6DA3`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function simAthenaXxHash64(bytes: Uint8Array): Uint8Array;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { hashWord as word, rotateWord as rotate, } from "./sim-athena-hash-words.js";
|
|
2
|
+
const prime1 = 11400714785074694791n;
|
|
3
|
+
const prime2 = 14029467366897019727n;
|
|
4
|
+
const prime3 = 1609587929392839161n;
|
|
5
|
+
const prime4 = 9650029242287828579n;
|
|
6
|
+
const prime5 = 2870177450012600261n;
|
|
7
|
+
/** How many bytes one round of the four-lane body reads. */
|
|
8
|
+
const stripe = 32;
|
|
9
|
+
/**
|
|
10
|
+
* The xxHash64 of these bytes, seeded with zero, as Trino's `xxhash64` seeds
|
|
11
|
+
* it.
|
|
12
|
+
*
|
|
13
|
+
* Trino answers with the eight bytes of the hash written big-endian, which is
|
|
14
|
+
* what makes `to_hex(xxhash64(to_utf8('hello')))` read as `26C7827D889F6DA3`.
|
|
15
|
+
*/
|
|
16
|
+
export function simAthenaXxHash64(bytes) {
|
|
17
|
+
const digest = new Uint8Array(8);
|
|
18
|
+
new DataView(digest.buffer).setBigUint64(0, hashOf(bytes), false);
|
|
19
|
+
return digest;
|
|
20
|
+
}
|
|
21
|
+
function hashOf(bytes) {
|
|
22
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
23
|
+
const body = bytes.length - (bytes.length % stripe);
|
|
24
|
+
let hash = bytes.length < stripe ? prime5 : mixedLanes(view, body);
|
|
25
|
+
hash = (hash + BigInt(bytes.length)) & word;
|
|
26
|
+
return avalanche(tail(view, bytes, hash, body));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The four lanes the body is read into, mixed back down to one word.
|
|
30
|
+
*
|
|
31
|
+
* Each lane takes every fourth eight bytes, which is what lets the real
|
|
32
|
+
* implementation read four of them at once.
|
|
33
|
+
*/
|
|
34
|
+
function mixedLanes(view, body) {
|
|
35
|
+
let lanes = [
|
|
36
|
+
{ value: (prime1 + prime2) & word, rotation: 1 },
|
|
37
|
+
{ value: prime2, rotation: 7 },
|
|
38
|
+
{ value: 0n, rotation: 12 },
|
|
39
|
+
{ value: -prime1 & word, rotation: 18 },
|
|
40
|
+
];
|
|
41
|
+
for (let at = 0; at < body; at += stripe) {
|
|
42
|
+
lanes = lanes.map((lane, index) => ({
|
|
43
|
+
...lane,
|
|
44
|
+
value: round(lane.value, view.getBigUint64(at + index * 8, true)),
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
let hash = lanes.reduce((sum, lane) => (sum + rotate(lane.value, lane.rotation)) & word, 0n);
|
|
48
|
+
for (const lane of lanes) {
|
|
49
|
+
hash = ((hash ^ round(0n, lane.value)) * prime1 + prime4) & word;
|
|
50
|
+
}
|
|
51
|
+
return hash;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Whatever the body left over, read eight bytes at a time, then four, then one.
|
|
55
|
+
*/
|
|
56
|
+
function tail(view, bytes, hash, body) {
|
|
57
|
+
let mixed = hash;
|
|
58
|
+
let at = body;
|
|
59
|
+
for (; at + 8 <= bytes.length; at += 8) {
|
|
60
|
+
const lane = round(0n, view.getBigUint64(at, true));
|
|
61
|
+
mixed = (rotate(mixed ^ lane, 27) * prime1 + prime4) & word;
|
|
62
|
+
}
|
|
63
|
+
if (at + 4 <= bytes.length) {
|
|
64
|
+
const lane = (BigInt(view.getUint32(at, true)) * prime1) & word;
|
|
65
|
+
mixed = (rotate(mixed ^ lane, 23) * prime2 + prime3) & word;
|
|
66
|
+
at += 4;
|
|
67
|
+
}
|
|
68
|
+
for (; at < bytes.length; at += 1) {
|
|
69
|
+
const lane = (BigInt(view.getUint8(at)) * prime5) & word;
|
|
70
|
+
mixed = (rotate(mixed ^ lane, 11) * prime1) & word;
|
|
71
|
+
}
|
|
72
|
+
return mixed;
|
|
73
|
+
}
|
|
74
|
+
/** The final mix, which spreads every bit of the accumulator over the word. */
|
|
75
|
+
function avalanche(hash) {
|
|
76
|
+
let mixed = ((hash ^ (hash >> 33n)) * prime2) & word;
|
|
77
|
+
mixed = ((mixed ^ (mixed >> 29n)) * prime3) & word;
|
|
78
|
+
return mixed ^ (mixed >> 32n);
|
|
79
|
+
}
|
|
80
|
+
function round(lane, input) {
|
|
81
|
+
return (rotate((lane + input * prime2) & word, 31) * prime1) & word;
|
|
82
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type BackgroundScheduler } from "../../util/background/background.js";
|
|
2
2
|
import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
|
|
3
|
-
import {
|
|
3
|
+
import type { SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
4
|
import type * as simAthenaCommands from "./command/sim-athena-command.types.js";
|
|
5
5
|
import { SimAthenaCommands } from "./command/sim-athena-commands.js";
|
|
6
6
|
import type { SimAthenaRequestOptions } from "./command/sim-athena-request-options.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BackgroundTasks, } from "../../util/background/background.js";
|
|
2
2
|
import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
|
|
3
|
-
import {
|
|
3
|
+
import { simIamInRegion } from "../iam/authorize/sim-iam-region-auth-z.js";
|
|
4
4
|
import { SimAthenaCommands } from "./command/sim-athena-commands.js";
|
|
5
5
|
import { SimAthenaQueryEngine } from "./engine/sim-athena-query-engine.js";
|
|
6
6
|
import { simAthenaTableObjects, } from "./engine/sim-athena-table-objects.js";
|
|
@@ -49,7 +49,8 @@ export class SimAthenaExecutions {
|
|
|
49
49
|
#results = new SimAthenaQueryResults();
|
|
50
50
|
#engine = new SimAthenaQueryEngine();
|
|
51
51
|
constructor(properties = {}) {
|
|
52
|
-
const { accountRegionScope = simAwsAccountRegionScopeFactory.make(),
|
|
52
|
+
const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), background = new BackgroundTasks(), } = properties;
|
|
53
|
+
const iam = simIamInRegion(properties.iam, accountRegionScope.regionName);
|
|
53
54
|
const writer = new SimAthenaResultWriter({
|
|
54
55
|
s3: properties.s3 ?? new SimAthenaNoResultDestination(),
|
|
55
56
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SimSdkCommandRouter } from "../../sdk/router/sim-sdk-command-router.type.js";
|
|
2
2
|
import { type BackgroundScheduler } from "../../util/background/background.js";
|
|
3
|
-
import {
|
|
3
|
+
import type { SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
4
4
|
import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
|
|
5
5
|
import type { SimConverseCommand, SimConverseCommandOutput } from "./command/converse/converse.command.js";
|
|
6
6
|
import type { SimConverseStreamCommand, SimConverseStreamCommandOutput } from "./command/converse/converse-stream.command.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BackgroundTasks, } from "../../util/background/background.js";
|
|
2
|
-
import {
|
|
2
|
+
import { simIamInRegion } from "../iam/authorize/sim-iam-region-auth-z.js";
|
|
3
3
|
import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
|
|
4
4
|
import { SimBedrockAuthorizer } from "./command/authorize/sim-bedrock-authorizer.js";
|
|
5
5
|
import { SimBedrockConverseHandler } from "./command/converse/sim-bedrock-converse.js";
|
|
@@ -31,7 +31,8 @@ export class SimBedrock {
|
|
|
31
31
|
background;
|
|
32
32
|
sdkRouter = new SimBedrockSdkCommandRouter(this);
|
|
33
33
|
constructor(properties = {}) {
|
|
34
|
-
const { accountRegionScope = simAwsAccountRegionScopeFactory.make(),
|
|
34
|
+
const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), background = new BackgroundTasks(), } = properties;
|
|
35
|
+
const iam = simIamInRegion(properties.iam, accountRegionScope.regionName);
|
|
35
36
|
const commandProperties = {
|
|
36
37
|
responses: this.responseRules,
|
|
37
38
|
authorizer: new SimBedrockAuthorizer({ iam }),
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import type { SimAws } from "../../../aws/sim-aws.js";
|
|
2
2
|
import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
|
|
3
3
|
import type { SimCdkOutContext } from "../sim-cdk-out-context.js";
|
|
4
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
4
5
|
interface SimCdkAssetsPublisherProperties {
|
|
5
6
|
readonly simAws: SimAws;
|
|
6
7
|
readonly accountRegionScope: SimAwsAccountRegionScope;
|
|
7
8
|
readonly stackName?: string | undefined;
|
|
8
9
|
readonly cdkOutContext?: SimCdkOutContext | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* The principal the deployment runs as, which the staging Bucket is created
|
|
12
|
+
* and written to as. A real `cdk deploy` publishes assets before
|
|
13
|
+
* CloudFormation sees the template, and it publishes them as somebody; a
|
|
14
|
+
* deployment that names a caller is what says who.
|
|
15
|
+
*/
|
|
16
|
+
readonly caller?: SimAwsCaller | undefined;
|
|
9
17
|
}
|
|
10
18
|
/**
|
|
11
19
|
* Publishes a CDK cloud assembly's file assets into simulated S3.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SimCfnPseudoParameters } from "../../parameters/pseudo/sim-cfn-pseudo-parameters.js";
|
|
2
2
|
import { SimCdkAssetPublications, } from "./sim-cdk-asset-publications.js";
|
|
3
3
|
import { readSimCdkAssetBytes } from "./sim-cdk-asset-bytes.js";
|
|
4
|
+
import { simCfnResourceCallerOptions, } from "../../resource/caller/sim-cfn-resource-caller-options.js";
|
|
4
5
|
/**
|
|
5
6
|
* Publishes a CDK cloud assembly's file assets into simulated S3.
|
|
6
7
|
*
|
|
@@ -51,14 +52,15 @@ export class SimCdkAssetsPublisher {
|
|
|
51
52
|
return;
|
|
52
53
|
}
|
|
53
54
|
const s3 = this.stagingS3();
|
|
54
|
-
|
|
55
|
+
const options = simCfnResourceCallerOptions(this.properties.caller);
|
|
56
|
+
await this.ensureBucket(s3, publication.bucketName, options);
|
|
55
57
|
await s3.putObject({
|
|
56
58
|
input: {
|
|
57
59
|
Bucket: publication.bucketName,
|
|
58
60
|
Key: publication.objectKey,
|
|
59
61
|
Body: assetBytes,
|
|
60
62
|
},
|
|
61
|
-
});
|
|
63
|
+
}, options);
|
|
62
64
|
}
|
|
63
65
|
/**
|
|
64
66
|
* Create the staging Bucket if this is the first asset published into it,
|
|
@@ -71,12 +73,12 @@ export class SimCdkAssetsPublisher {
|
|
|
71
73
|
* wanted, whoever created it. Anything else, such as the name already being
|
|
72
74
|
* taken in another scope, is a real failure and is reported.
|
|
73
75
|
*/
|
|
74
|
-
async ensureBucket(s3, bucketName) {
|
|
76
|
+
async ensureBucket(s3, bucketName, options) {
|
|
75
77
|
if (s3.getSimBucketByName(bucketName) !== undefined) {
|
|
76
78
|
return;
|
|
77
79
|
}
|
|
78
80
|
try {
|
|
79
|
-
await s3.createBucket({ input: { Bucket: bucketName } });
|
|
81
|
+
await s3.createBucket({ input: { Bucket: bucketName } }, options);
|
|
80
82
|
}
|
|
81
83
|
catch (error) {
|
|
82
84
|
if (s3.getSimBucketByName(bucketName) === undefined) {
|