@kensio/yulin 0.43.0 → 0.44.0
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/README.md +1 -0
- package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
- package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
- package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +11 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +19 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
- package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
- package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
- package/dist/service/aws/sim-aws.d.ts +3 -0
- package/dist/service/aws/sim-aws.d.ts.map +1 -1
- package/dist/service/aws/sim-aws.js +4 -0
- package/dist/service/aws/sim-aws.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.js +8 -0
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-event-source-mapping-cfn.d.ts +28 -0
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-event-source-mapping-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-event-source-mapping-cfn.js +33 -0
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-event-source-mapping-cfn.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js +2 -0
- package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-cfn-value-adapter.js +13 -0
- package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-queue-cfn.d.ts +28 -0
- package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-queue-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-queue-cfn.js +40 -0
- package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-queue-cfn.js.map +1 -0
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js +3 -0
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js.map +1 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +3 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.js +4 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.js.map +1 -1
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js.map +1 -1
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts +26 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts.map +1 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js +33 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js.map +1 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.d.ts +28 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.d.ts.map +1 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +38 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js.map +1 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.d.ts +17 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.d.ts.map +1 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +71 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js.map +1 -0
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.d.ts +4 -0
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.d.ts.map +1 -1
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.js +12 -0
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.js.map +1 -1
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.d.ts +5 -6
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.d.ts.map +1 -1
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.js +7 -13
- package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.js.map +1 -1
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts +1 -0
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts.map +1 -1
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js +8 -0
- package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +25 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +55 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts +6 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +64 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts +17 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js +47 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts +53 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +77 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/event-source-mapping-access.d.ts +41 -0
- package/dist/service/lambda/command/event-source-mapping/event-source-mapping-access.d.ts.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/event-source-mapping-access.js +51 -0
- package/dist/service/lambda/command/event-source-mapping/event-source-mapping-access.js.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/event-source-mapping.command.d.ts +91 -0
- package/dist/service/lambda/command/event-source-mapping/event-source-mapping.command.d.ts.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/event-source-mapping.command.js +8 -0
- package/dist/service/lambda/command/event-source-mapping/event-source-mapping.command.js.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.d.ts +60 -0
- package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.d.ts.map +1 -0
- package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.js +89 -0
- package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.js.map +1 -0
- package/dist/service/lambda/command/sim-lambda-command.types.d.ts +1 -0
- package/dist/service/lambda/command/sim-lambda-command.types.d.ts.map +1 -1
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts +27 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js +32 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-schedule.d.ts +40 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-schedule.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-schedule.js +55 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-schedule.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts +85 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js +136 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts +49 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js +97 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event.d.ts +56 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event.js +55 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event.js.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queue-service.d.ts +49 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queue-service.d.ts.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queue-service.js +2 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queue-service.js.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queues.d.ts +118 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queues.d.ts.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queues.js +49 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queues.js.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +32 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +52 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queue-attributes.d.ts +29 -0
- package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queue-attributes.d.ts.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queue-attributes.js +49 -0
- package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queue-attributes.js.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queues.d.ts +57 -0
- package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queues.d.ts.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queues.js +89 -0
- package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queues.js.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping-store.d.ts +46 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping-store.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping-store.js +57 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping-store.js.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +101 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +93 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts +37 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js +44 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts +23 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js +46 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js.map +1 -0
- package/dist/service/lambda/function/sim-lambda-function-name.d.ts +10 -0
- package/dist/service/lambda/function/sim-lambda-function-name.d.ts.map +1 -0
- package/dist/service/lambda/function/sim-lambda-function-name.js +18 -0
- package/dist/service/lambda/function/sim-lambda-function-name.js.map +1 -0
- package/dist/service/lambda/function/url/sim-lambda-function-lookup.d.ts +4 -0
- package/dist/service/lambda/function/url/sim-lambda-function-lookup.d.ts.map +1 -1
- package/dist/service/lambda/function/url/sim-lambda-function-lookup.js +6 -0
- package/dist/service/lambda/function/url/sim-lambda-function-lookup.js.map +1 -1
- package/dist/service/lambda/index.d.ts +1 -0
- package/dist/service/lambda/index.d.ts.map +1 -1
- package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.d.ts.map +1 -1
- package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.js +16 -0
- package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.js.map +1 -1
- package/dist/service/lambda/sim-lambda-commands.d.ts +51 -0
- package/dist/service/lambda/sim-lambda-commands.d.ts.map +1 -0
- package/dist/service/lambda/sim-lambda-commands.js +84 -0
- package/dist/service/lambda/sim-lambda-commands.js.map +1 -0
- package/dist/service/lambda/sim-lambda.d.ts +35 -39
- package/dist/service/lambda/sim-lambda.d.ts.map +1 -1
- package/dist/service/lambda/sim-lambda.js +47 -65
- package/dist/service/lambda/sim-lambda.js.map +1 -1
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts +25 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts.map +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js +33 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js.map +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-name.d.ts +45 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-name.d.ts.map +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-name.js +67 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-name.js.map +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +44 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts.map +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +72 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js.map +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +47 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts.map +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +122 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js.map +1 -0
- package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.d.ts +24 -0
- package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.d.ts.map +1 -0
- package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js +29 -0
- package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js.map +1 -0
- package/dist/service/sqs/command/authorize/sim-sqs-authorizer.d.ts +41 -0
- package/dist/service/sqs/command/authorize/sim-sqs-authorizer.d.ts.map +1 -0
- package/dist/service/sqs/command/authorize/sim-sqs-authorizer.js +51 -0
- package/dist/service/sqs/command/authorize/sim-sqs-authorizer.js.map +1 -0
- package/dist/service/sqs/command/message/consume.command.d.ts +61 -0
- package/dist/service/sqs/command/message/consume.command.d.ts.map +1 -0
- package/dist/service/sqs/command/message/consume.command.js +2 -0
- package/dist/service/sqs/command/message/consume.command.js.map +1 -0
- package/dist/service/sqs/command/message/receive.command.d.ts +40 -0
- package/dist/service/sqs/command/message/receive.command.d.ts.map +1 -0
- package/dist/service/sqs/command/message/receive.command.js +2 -0
- package/dist/service/sqs/command/message/receive.command.js.map +1 -0
- package/dist/service/sqs/command/message/send.command.d.ts +80 -0
- package/dist/service/sqs/command/message/send.command.d.ts.map +1 -0
- package/dist/service/sqs/command/message/send.command.js +2 -0
- package/dist/service/sqs/command/message/send.command.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-batch-entries.d.ts +39 -0
- package/dist/service/sqs/command/message/sim-sqs-batch-entries.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-batch-entries.js +67 -0
- package/dist/service/sqs/command/message/sim-sqs-batch-entries.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-change-message-visibility.d.ts +31 -0
- package/dist/service/sqs/command/message/sim-sqs-change-message-visibility.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-change-message-visibility.js +51 -0
- package/dist/service/sqs/command/message/sim-sqs-change-message-visibility.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-delete-message-commands.d.ts +38 -0
- package/dist/service/sqs/command/message/sim-sqs-delete-message-commands.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-delete-message-commands.js +58 -0
- package/dist/service/sqs/command/message/sim-sqs-delete-message-commands.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-message-handles.d.ts +28 -0
- package/dist/service/sqs/command/message/sim-sqs-message-handles.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-message-handles.js +36 -0
- package/dist/service/sqs/command/message/sim-sqs-message-handles.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-limits.d.ts +27 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-limits.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-limits.js +70 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-limits.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-message.d.ts +32 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-message.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-message.js +33 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-message.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-request.d.ts +33 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-request.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-request.js +55 -0
- package/dist/service/sqs/command/message/sim-sqs-receive-request.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-received-message-view.d.ts +25 -0
- package/dist/service/sqs/command/message/sim-sqs-received-message-view.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-received-message-view.js +38 -0
- package/dist/service/sqs/command/message/sim-sqs-received-message-view.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-send-message-commands.d.ts +32 -0
- package/dist/service/sqs/command/message/sim-sqs-send-message-commands.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-send-message-commands.js +56 -0
- package/dist/service/sqs/command/message/sim-sqs-send-message-commands.js.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-sent-message.d.ts +18 -0
- package/dist/service/sqs/command/message/sim-sqs-sent-message.d.ts.map +1 -0
- package/dist/service/sqs/command/message/sim-sqs-sent-message.js +37 -0
- package/dist/service/sqs/command/message/sim-sqs-sent-message.js.map +1 -0
- package/dist/service/sqs/command/queue/queue.command.d.ts +114 -0
- package/dist/service/sqs/command/queue/queue.command.d.ts.map +1 -0
- package/dist/service/sqs/command/queue/queue.command.js +2 -0
- package/dist/service/sqs/command/queue/queue.command.js.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-create-queue.d.ts +51 -0
- package/dist/service/sqs/command/queue/sim-sqs-create-queue.d.ts.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-create-queue.js +70 -0
- package/dist/service/sqs/command/queue/sim-sqs-create-queue.js.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-access.d.ts +63 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-access.d.ts.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-access.js +98 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-access.js.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-attribute-commands.d.ts +45 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-attribute-commands.d.ts.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-attribute-commands.js +74 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-attribute-commands.js.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-commands.d.ts +47 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-commands.d.ts.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-commands.js +55 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-commands.js.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-page.d.ts +27 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-page.d.ts.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-page.js +54 -0
- package/dist/service/sqs/command/queue/sim-sqs-queue-page.js.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-unsimulated-queue-input.d.ts +18 -0
- package/dist/service/sqs/command/queue/sim-sqs-unsimulated-queue-input.d.ts.map +1 -0
- package/dist/service/sqs/command/queue/sim-sqs-unsimulated-queue-input.js +27 -0
- package/dist/service/sqs/command/queue/sim-sqs-unsimulated-queue-input.js.map +1 -0
- package/dist/service/sqs/command/sim-sqs-command.types.d.ts +8 -0
- package/dist/service/sqs/command/sim-sqs-command.types.d.ts.map +1 -0
- package/dist/service/sqs/command/sim-sqs-command.types.js +2 -0
- package/dist/service/sqs/command/sim-sqs-command.types.js.map +1 -0
- package/dist/service/sqs/error/sim-sqs.error.d.ts +162 -0
- package/dist/service/sqs/error/sim-sqs.error.d.ts.map +1 -0
- package/dist/service/sqs/error/sim-sqs.error.js +191 -0
- package/dist/service/sqs/error/sim-sqs.error.js.map +1 -0
- package/dist/service/sqs/index.d.ts +14 -0
- package/dist/service/sqs/index.d.ts.map +1 -0
- package/dist/service/sqs/index.js +13 -0
- package/dist/service/sqs/index.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-payload.d.ts +56 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-payload.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-payload.js +42 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-payload.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-rules.d.ts +23 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-rules.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-rules.js +68 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-rules.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-value.d.ts +17 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-value.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-value.js +2 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute-value.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute.d.ts +29 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute.js +56 -0
- package/dist/service/sqs/message/sim-sqs-message-attribute.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attributes.d.ts +44 -0
- package/dist/service/sqs/message/sim-sqs-message-attributes.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-attributes.js +93 -0
- package/dist/service/sqs/message/sim-sqs-message-attributes.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-body.d.ts +18 -0
- package/dist/service/sqs/message/sim-sqs-message-body.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-body.js +66 -0
- package/dist/service/sqs/message/sim-sqs-message-body.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-store.d.ts +74 -0
- package/dist/service/sqs/message/sim-sqs-message-store.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-store.js +99 -0
- package/dist/service/sqs/message/sim-sqs-message-store.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-system-attributes.d.ts +28 -0
- package/dist/service/sqs/message/sim-sqs-message-system-attributes.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-system-attributes.js +75 -0
- package/dist/service/sqs/message/sim-sqs-message-system-attributes.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-visibility.d.ts +56 -0
- package/dist/service/sqs/message/sim-sqs-message-visibility.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-visibility.js +79 -0
- package/dist/service/sqs/message/sim-sqs-message-visibility.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-writer.d.ts +41 -0
- package/dist/service/sqs/message/sim-sqs-message-writer.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message-writer.js +56 -0
- package/dist/service/sqs/message/sim-sqs-message-writer.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message.d.ts +96 -0
- package/dist/service/sqs/message/sim-sqs-message.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-message.js +136 -0
- package/dist/service/sqs/message/sim-sqs-message.js.map +1 -0
- package/dist/service/sqs/message/sim-sqs-receipt-handle.d.ts +10 -0
- package/dist/service/sqs/message/sim-sqs-receipt-handle.d.ts.map +1 -0
- package/dist/service/sqs/message/sim-sqs-receipt-handle.js +14 -0
- package/dist/service/sqs/message/sim-sqs-receipt-handle.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-dead-letter-targets.d.ts +51 -0
- package/dist/service/sqs/queue/sim-sqs-dead-letter-targets.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-dead-letter-targets.js +62 -0
- package/dist/service/sqs/queue/sim-sqs-dead-letter-targets.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-deleted-queue-names.d.ts +20 -0
- package/dist/service/sqs/queue/sim-sqs-deleted-queue-names.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-deleted-queue-names.js +42 -0
- package/dist/service/sqs/queue/sim-sqs-deleted-queue-names.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-activity.d.ts +65 -0
- package/dist/service/sqs/queue/sim-sqs-queue-activity.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-activity.js +57 -0
- package/dist/service/sqs/queue/sim-sqs-queue-activity.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts +41 -0
- package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-arn.js +47 -0
- package/dist/service/sqs/queue/sim-sqs-queue-arn.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-names.d.ts +27 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-names.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-names.js +83 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-names.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-numbers.d.ts +34 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-numbers.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-numbers.js +93 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-numbers.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-specs.d.ts +20 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-specs.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-specs.js +37 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attribute-specs.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attributes.d.ts +60 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attributes.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attributes.js +96 -0
- package/dist/service/sqs/queue/sim-sqs-queue-attributes.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-name.d.ts +21 -0
- package/dist/service/sqs/queue/sim-sqs-queue-name.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-name.js +47 -0
- package/dist/service/sqs/queue/sim-sqs-queue-name.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-report.d.ts +22 -0
- package/dist/service/sqs/queue/sim-sqs-queue-report.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-report.js +29 -0
- package/dist/service/sqs/queue/sim-sqs-queue-report.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-store.d.ts +60 -0
- package/dist/service/sqs/queue/sim-sqs-queue-store.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-store.js +87 -0
- package/dist/service/sqs/queue/sim-sqs-queue-store.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-url.d.ts +24 -0
- package/dist/service/sqs/queue/sim-sqs-queue-url.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue-url.js +36 -0
- package/dist/service/sqs/queue/sim-sqs-queue-url.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue.d.ts +130 -0
- package/dist/service/sqs/queue/sim-sqs-queue.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-queue.js +188 -0
- package/dist/service/sqs/queue/sim-sqs-queue.js.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-redrive-policy.d.ts +30 -0
- package/dist/service/sqs/queue/sim-sqs-redrive-policy.d.ts.map +1 -0
- package/dist/service/sqs/queue/sim-sqs-redrive-policy.js +118 -0
- package/dist/service/sqs/queue/sim-sqs-redrive-policy.js.map +1 -0
- package/dist/service/sqs/sdk/sim-sqs-sdk-command-router.d.ts +18 -0
- package/dist/service/sqs/sdk/sim-sqs-sdk-command-router.d.ts.map +1 -0
- package/dist/service/sqs/sdk/sim-sqs-sdk-command-router.js +76 -0
- package/dist/service/sqs/sdk/sim-sqs-sdk-command-router.js.map +1 -0
- package/dist/service/sqs/sim-sqs.d.ts +119 -0
- package/dist/service/sqs/sim-sqs.d.ts.map +1 -0
- package/dist/service/sqs/sim-sqs.js +213 -0
- package/dist/service/sqs/sim-sqs.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../../util/background/background.js";
|
|
2
|
+
import type { SimSqsQueue } from "../queue/sim-sqs-queue.js";
|
|
3
|
+
import { SimSqsMessage } from "./sim-sqs-message.js";
|
|
4
|
+
import type { SimSqsMessageAttributes } from "./sim-sqs-message-attributes.js";
|
|
5
|
+
/**
|
|
6
|
+
* One message as a sender describes it, with the request's own wrapping removed.
|
|
7
|
+
*/
|
|
8
|
+
export interface SimSqsMessageWrite {
|
|
9
|
+
readonly body: string | undefined;
|
|
10
|
+
readonly attributes: SimSqsMessageAttributes;
|
|
11
|
+
readonly delaySeconds: number | undefined;
|
|
12
|
+
}
|
|
13
|
+
interface SimSqsMessageWriterProperties {
|
|
14
|
+
readonly clock: BackgroundScheduler;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Puts a message on a queue.
|
|
18
|
+
*
|
|
19
|
+
* SendMessage and each entry of SendMessageBatch end up here, so the two cannot
|
|
20
|
+
* drift apart on what a delay means, on how large a body may be, or on what a
|
|
21
|
+
* message id looks like. The queue's own attributes decide all three, which is
|
|
22
|
+
* why the queue comes in with the write rather than being consulted by the
|
|
23
|
+
* caller.
|
|
24
|
+
*/
|
|
25
|
+
export declare class SimSqsMessageWriter {
|
|
26
|
+
private readonly clock;
|
|
27
|
+
constructor(properties: SimSqsMessageWriterProperties);
|
|
28
|
+
/**
|
|
29
|
+
* Write one message to a queue, and hand back what was written.
|
|
30
|
+
*/
|
|
31
|
+
write(queue: SimSqsQueue, requested: SimSqsMessageWrite): SimSqsMessage;
|
|
32
|
+
/**
|
|
33
|
+
* The delay a message waits out before it can be received.
|
|
34
|
+
*
|
|
35
|
+
* A message with no delay of its own takes the queue's, which is what makes
|
|
36
|
+
* `DelaySeconds` on the queue a delay every message inherits.
|
|
37
|
+
*/
|
|
38
|
+
private delayFor;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=sim-sqs-message-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-message-writer.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-message-writer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAO/E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAE5C,YAAY,UAAU,EAAE,6BAA6B,EAEpD;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,GAAG,aAAa,CAmBtE;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;CAkBjB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { SimSqsInvalidParameterValue } from "../error/sim-sqs.error.js";
|
|
3
|
+
import { SimSqsMessage } from "./sim-sqs-message.js";
|
|
4
|
+
import { SimSqsMessageBody } from "./sim-sqs-message-body.js";
|
|
5
|
+
const maximumDelaySeconds = 900;
|
|
6
|
+
const millisecondsPerSecond = 1000;
|
|
7
|
+
/**
|
|
8
|
+
* Puts a message on a queue.
|
|
9
|
+
*
|
|
10
|
+
* SendMessage and each entry of SendMessageBatch end up here, so the two cannot
|
|
11
|
+
* drift apart on what a delay means, on how large a body may be, or on what a
|
|
12
|
+
* message id looks like. The queue's own attributes decide all three, which is
|
|
13
|
+
* why the queue comes in with the write rather than being consulted by the
|
|
14
|
+
* caller.
|
|
15
|
+
*/
|
|
16
|
+
export class SimSqsMessageWriter {
|
|
17
|
+
clock;
|
|
18
|
+
constructor(properties) {
|
|
19
|
+
this.clock = properties.clock;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Write one message to a queue, and hand back what was written.
|
|
23
|
+
*/
|
|
24
|
+
write(queue, requested) {
|
|
25
|
+
const sentAt = this.clock.now();
|
|
26
|
+
const delaySeconds = this.delayFor(queue, requested.delaySeconds);
|
|
27
|
+
const message = new SimSqsMessage({
|
|
28
|
+
messageId: randomUUID(),
|
|
29
|
+
body: SimSqsMessageBody.of(requested.body ?? "", queue.attributes.maximumMessageSizeBytes),
|
|
30
|
+
attributes: requested.attributes,
|
|
31
|
+
sentAt,
|
|
32
|
+
visibleFrom: new Date(sentAt.getTime() + delaySeconds * millisecondsPerSecond),
|
|
33
|
+
});
|
|
34
|
+
queue.add(message);
|
|
35
|
+
return message;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The delay a message waits out before it can be received.
|
|
39
|
+
*
|
|
40
|
+
* A message with no delay of its own takes the queue's, which is what makes
|
|
41
|
+
* `DelaySeconds` on the queue a delay every message inherits.
|
|
42
|
+
*/
|
|
43
|
+
delayFor(queue, requested) {
|
|
44
|
+
if (requested === undefined) {
|
|
45
|
+
return queue.attributes.delaySeconds;
|
|
46
|
+
}
|
|
47
|
+
if (!Number.isSafeInteger(requested) ||
|
|
48
|
+
requested < 0 ||
|
|
49
|
+
requested > maximumDelaySeconds) {
|
|
50
|
+
throw new SimSqsInvalidParameterValue(`Value ${String(requested)} for parameter DelaySeconds is invalid. ` +
|
|
51
|
+
`Reason: Must be an integer from 0 to ${String(maximumDelaySeconds)}.`);
|
|
52
|
+
}
|
|
53
|
+
return requested;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=sim-sqs-message-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-message-writer.js","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-message-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAenC;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAmB;IACb,KAAK,CAAsB;IAE5C,YAAY,UAAyC;QACnD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAkB,EAAE,SAA6B;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,SAAS,EAAE,UAAU,EAAE;YACvB,IAAI,EAAE,iBAAiB,CAAC,EAAE,CACxB,SAAS,CAAC,IAAI,IAAI,EAAE,EACpB,KAAK,CAAC,UAAU,CAAC,uBAAuB,CACzC;YACD,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,MAAM;YACN,WAAW,EAAE,IAAI,IAAI,CACnB,MAAM,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,qBAAqB,CACxD;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,QAAQ,CAAC,KAAkB,EAAE,SAA6B;QAChE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QACvC,CAAC;QAED,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YAChC,SAAS,GAAG,CAAC;YACb,SAAS,GAAG,mBAAmB,EAC/B,CAAC;YACD,MAAM,IAAI,2BAA2B,CACnC,SAAS,MAAM,CAAC,SAAS,CAAC,0CAA0C;gBAClE,wCAAwC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CACzE,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { SimSqsMessageAttributes } from "./sim-sqs-message-attributes.js";
|
|
2
|
+
import type { SimSqsMessageBody } from "./sim-sqs-message-body.js";
|
|
3
|
+
interface SimSqsMessageProperties {
|
|
4
|
+
readonly messageId: string;
|
|
5
|
+
readonly body: SimSqsMessageBody;
|
|
6
|
+
readonly attributes: SimSqsMessageAttributes;
|
|
7
|
+
readonly sentAt: Date;
|
|
8
|
+
readonly visibleFrom: Date;
|
|
9
|
+
readonly deadLetterSourceArn?: string | undefined;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* One message on a simulated queue.
|
|
13
|
+
*
|
|
14
|
+
* What the message is stays here; whether it can be received belongs to its
|
|
15
|
+
* visibility, which is the part that changes as it is handed out and given back.
|
|
16
|
+
*/
|
|
17
|
+
export declare class SimSqsMessage {
|
|
18
|
+
readonly messageId: string;
|
|
19
|
+
readonly body: SimSqsMessageBody;
|
|
20
|
+
readonly attributes: SimSqsMessageAttributes;
|
|
21
|
+
readonly sentAt: Date;
|
|
22
|
+
private readonly visibility;
|
|
23
|
+
private readonly deadLetterSourceArn;
|
|
24
|
+
private receiptHandle;
|
|
25
|
+
constructor(properties: SimSqsMessageProperties);
|
|
26
|
+
/**
|
|
27
|
+
* How many times this message has been handed out without being deleted.
|
|
28
|
+
*/
|
|
29
|
+
get receiveCount(): number;
|
|
30
|
+
/**
|
|
31
|
+
* The instant from which this message can be received.
|
|
32
|
+
*
|
|
33
|
+
* A message sent with a delay is not receivable when it arrives, so anything
|
|
34
|
+
* waiting for it has to wait for this rather than for the send.
|
|
35
|
+
*/
|
|
36
|
+
get availableFrom(): Date;
|
|
37
|
+
/**
|
|
38
|
+
* Whether this message can be received at an instant.
|
|
39
|
+
*/
|
|
40
|
+
isVisibleAt(instant: Date): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether this message is still waiting out the delay it was sent with.
|
|
43
|
+
*/
|
|
44
|
+
isDelayedAt(instant: Date): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether this message is hidden by a visibility timeout, which SQS counts as
|
|
47
|
+
* in flight.
|
|
48
|
+
*/
|
|
49
|
+
isInFlightAt(instant: Date): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Whether the queue's retention period has run out for this message.
|
|
52
|
+
*
|
|
53
|
+
* Retention runs from when the message was sent, however many times it has been
|
|
54
|
+
* received since.
|
|
55
|
+
*/
|
|
56
|
+
hasExpiredBy(instant: Date, retentionSeconds: number): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Hand this message out, hiding it for its visibility timeout.
|
|
59
|
+
*/
|
|
60
|
+
receiveAt(instant: Date, visibilityTimeoutSeconds: number, receiptHandle: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* Hide this message for a visibility timeout starting now.
|
|
63
|
+
*/
|
|
64
|
+
hideFor(instant: Date, visibilityTimeoutSeconds: number): void;
|
|
65
|
+
/**
|
|
66
|
+
* Whether a receipt handle is the one this message was last received with.
|
|
67
|
+
*
|
|
68
|
+
* An older handle is not. Real SQS accepts a request carrying one and does
|
|
69
|
+
* nothing, because the receive it belongs to has been superseded.
|
|
70
|
+
*/
|
|
71
|
+
holdsReceiptHandle(receiptHandle: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* This message as it arrives on a dead-letter queue.
|
|
74
|
+
*
|
|
75
|
+
* What the message is carries over unchanged: the id, the body, the message
|
|
76
|
+
* attributes and the sent timestamp. Real SQS leaves the enqueue timestamp
|
|
77
|
+
* alone when it moves a message off a standard queue, so the dead-letter
|
|
78
|
+
* queue's retention period still runs from when the message was first sent
|
|
79
|
+
* rather than restarting.
|
|
80
|
+
*
|
|
81
|
+
* What does not carry over is the receive count, because a receive count
|
|
82
|
+
* counts receives from one queue and this message has not been received from
|
|
83
|
+
* this one. It is receivable straight away: the move is not a send, so the
|
|
84
|
+
* dead-letter queue's delay does not apply to it.
|
|
85
|
+
*/
|
|
86
|
+
onDeadLetterQueue(instant: Date, sourceQueueArn: string): SimSqsMessage;
|
|
87
|
+
/**
|
|
88
|
+
* The message system attributes SQS knows about this message.
|
|
89
|
+
*
|
|
90
|
+
* Only the attributes a receive request names are reported, so this is what is
|
|
91
|
+
* available rather than what is returned.
|
|
92
|
+
*/
|
|
93
|
+
systemAttributeValues(): ReadonlyMap<string, string>;
|
|
94
|
+
}
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=sim-sqs-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-message.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKnE,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,IAAI,EAAE,iBAAiB,CAAC;IACxC,SAAgB,UAAU,EAAE,uBAAuB,CAAC;IACpD,SAAgB,MAAM,EAAE,IAAI,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,aAAa,CAAqB;IAE1C,YAAY,UAAU,EAAE,uBAAuB,EAO9C;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;OAKG;IACH,IAAI,aAAa,IAAI,IAAI,CAExB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAElC;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAElC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAEnC;IAED;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAK7D;IAED;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,IAAI,EACb,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,GACpB,IAAI,CAGN;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAE7D;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAEjD;IAED;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,aAAa,CAStE;IAED;;;;;OAKG;IACH,qBAAqB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAenD;CACF"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { SimSqsMessageVisibility } from "./sim-sqs-message-visibility.js";
|
|
2
|
+
const millisecondsPerSecond = 1000;
|
|
3
|
+
/**
|
|
4
|
+
* One message on a simulated queue.
|
|
5
|
+
*
|
|
6
|
+
* What the message is stays here; whether it can be received belongs to its
|
|
7
|
+
* visibility, which is the part that changes as it is handed out and given back.
|
|
8
|
+
*/
|
|
9
|
+
export class SimSqsMessage {
|
|
10
|
+
messageId;
|
|
11
|
+
body;
|
|
12
|
+
attributes;
|
|
13
|
+
sentAt;
|
|
14
|
+
visibility;
|
|
15
|
+
deadLetterSourceArn;
|
|
16
|
+
receiptHandle;
|
|
17
|
+
constructor(properties) {
|
|
18
|
+
this.messageId = properties.messageId;
|
|
19
|
+
this.body = properties.body;
|
|
20
|
+
this.attributes = properties.attributes;
|
|
21
|
+
this.sentAt = properties.sentAt;
|
|
22
|
+
this.visibility = new SimSqsMessageVisibility(properties.visibleFrom);
|
|
23
|
+
this.deadLetterSourceArn = properties.deadLetterSourceArn;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* How many times this message has been handed out without being deleted.
|
|
27
|
+
*/
|
|
28
|
+
get receiveCount() {
|
|
29
|
+
return this.visibility.receiveCount;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The instant from which this message can be received.
|
|
33
|
+
*
|
|
34
|
+
* A message sent with a delay is not receivable when it arrives, so anything
|
|
35
|
+
* waiting for it has to wait for this rather than for the send.
|
|
36
|
+
*/
|
|
37
|
+
get availableFrom() {
|
|
38
|
+
return this.visibility.availableFrom;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Whether this message can be received at an instant.
|
|
42
|
+
*/
|
|
43
|
+
isVisibleAt(instant) {
|
|
44
|
+
return this.visibility.isVisibleAt(instant);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Whether this message is still waiting out the delay it was sent with.
|
|
48
|
+
*/
|
|
49
|
+
isDelayedAt(instant) {
|
|
50
|
+
return this.visibility.isDelayedAt(instant);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Whether this message is hidden by a visibility timeout, which SQS counts as
|
|
54
|
+
* in flight.
|
|
55
|
+
*/
|
|
56
|
+
isInFlightAt(instant) {
|
|
57
|
+
return this.visibility.isInFlightAt(instant);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Whether the queue's retention period has run out for this message.
|
|
61
|
+
*
|
|
62
|
+
* Retention runs from when the message was sent, however many times it has been
|
|
63
|
+
* received since.
|
|
64
|
+
*/
|
|
65
|
+
hasExpiredBy(instant, retentionSeconds) {
|
|
66
|
+
return (this.sentAt.getTime() + retentionSeconds * millisecondsPerSecond <=
|
|
67
|
+
instant.getTime());
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Hand this message out, hiding it for its visibility timeout.
|
|
71
|
+
*/
|
|
72
|
+
receiveAt(instant, visibilityTimeoutSeconds, receiptHandle) {
|
|
73
|
+
this.receiptHandle = receiptHandle;
|
|
74
|
+
this.visibility.receiveAt(instant, visibilityTimeoutSeconds);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Hide this message for a visibility timeout starting now.
|
|
78
|
+
*/
|
|
79
|
+
hideFor(instant, visibilityTimeoutSeconds) {
|
|
80
|
+
this.visibility.hideFor(instant, visibilityTimeoutSeconds);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Whether a receipt handle is the one this message was last received with.
|
|
84
|
+
*
|
|
85
|
+
* An older handle is not. Real SQS accepts a request carrying one and does
|
|
86
|
+
* nothing, because the receive it belongs to has been superseded.
|
|
87
|
+
*/
|
|
88
|
+
holdsReceiptHandle(receiptHandle) {
|
|
89
|
+
return this.receiptHandle === receiptHandle;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* This message as it arrives on a dead-letter queue.
|
|
93
|
+
*
|
|
94
|
+
* What the message is carries over unchanged: the id, the body, the message
|
|
95
|
+
* attributes and the sent timestamp. Real SQS leaves the enqueue timestamp
|
|
96
|
+
* alone when it moves a message off a standard queue, so the dead-letter
|
|
97
|
+
* queue's retention period still runs from when the message was first sent
|
|
98
|
+
* rather than restarting.
|
|
99
|
+
*
|
|
100
|
+
* What does not carry over is the receive count, because a receive count
|
|
101
|
+
* counts receives from one queue and this message has not been received from
|
|
102
|
+
* this one. It is receivable straight away: the move is not a send, so the
|
|
103
|
+
* dead-letter queue's delay does not apply to it.
|
|
104
|
+
*/
|
|
105
|
+
onDeadLetterQueue(instant, sourceQueueArn) {
|
|
106
|
+
return new SimSqsMessage({
|
|
107
|
+
messageId: this.messageId,
|
|
108
|
+
body: this.body,
|
|
109
|
+
attributes: this.attributes,
|
|
110
|
+
sentAt: this.sentAt,
|
|
111
|
+
visibleFrom: instant,
|
|
112
|
+
deadLetterSourceArn: sourceQueueArn,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The message system attributes SQS knows about this message.
|
|
117
|
+
*
|
|
118
|
+
* Only the attributes a receive request names are reported, so this is what is
|
|
119
|
+
* available rather than what is returned.
|
|
120
|
+
*/
|
|
121
|
+
systemAttributeValues() {
|
|
122
|
+
const values = new Map([
|
|
123
|
+
["SentTimestamp", String(this.sentAt.getTime())],
|
|
124
|
+
["ApproximateReceiveCount", String(this.visibility.receiveCount)],
|
|
125
|
+
[
|
|
126
|
+
"ApproximateFirstReceiveTimestamp",
|
|
127
|
+
String(this.visibility.firstReceived.getTime()),
|
|
128
|
+
],
|
|
129
|
+
]);
|
|
130
|
+
if (this.deadLetterSourceArn !== undefined) {
|
|
131
|
+
values.set("DeadLetterQueueSourceArn", this.deadLetterSourceArn);
|
|
132
|
+
}
|
|
133
|
+
return values;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=sim-sqs-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-message.js","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAWnC;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACR,SAAS,CAAS;IAClB,IAAI,CAAoB;IACxB,UAAU,CAA0B;IACpC,MAAM,CAAO;IAEZ,UAAU,CAA0B;IACpC,mBAAmB,CAAqB;IACjD,aAAa,CAAqB;IAE1C,YAAY,UAAmC;QAC7C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAa;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAa;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAa;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,OAAa,EAAE,gBAAwB;QAClD,OAAO,CACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,gBAAgB,GAAG,qBAAqB;YAChE,OAAO,CAAC,OAAO,EAAE,CAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CACP,OAAa,EACb,wBAAgC,EAChC,aAAqB;QAErB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAa,EAAE,wBAAgC;QACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,aAAqB;QACtC,OAAO,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,OAAa,EAAE,cAAsB;QACrD,OAAO,IAAI,aAAa,CAAC;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,OAAO;YACpB,mBAAmB,EAAE,cAAc;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,qBAAqB;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAiB;YACrC,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAChD,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACjE;gBACE,kCAAkC;gBAClC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aAChD;SACF,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Issue a receipt handle for one receive of one message.
|
|
3
|
+
*
|
|
4
|
+
* Real receipt handles are long opaque strings, and a fresh one is issued every
|
|
5
|
+
* time a message is handed out. Generating something equally opaque here means
|
|
6
|
+
* nothing can quietly depend on a handle's shape, or on it being the message id,
|
|
7
|
+
* the way a consumer written against a simpler fake might.
|
|
8
|
+
*/
|
|
9
|
+
export declare function makeSimSqsReceiptHandle(): string;
|
|
10
|
+
//# sourceMappingURL=sim-sqs-receipt-handle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-receipt-handle.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-receipt-handle.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
const handleBytes = 72;
|
|
3
|
+
/**
|
|
4
|
+
* Issue a receipt handle for one receive of one message.
|
|
5
|
+
*
|
|
6
|
+
* Real receipt handles are long opaque strings, and a fresh one is issued every
|
|
7
|
+
* time a message is handed out. Generating something equally opaque here means
|
|
8
|
+
* nothing can quietly depend on a handle's shape, or on it being the message id,
|
|
9
|
+
* the way a consumer written against a simpler fake might.
|
|
10
|
+
*/
|
|
11
|
+
export function makeSimSqsReceiptHandle() {
|
|
12
|
+
return randomBytes(handleBytes).toString("base64");
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=sim-sqs-receipt-handle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-receipt-handle.js","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-receipt-handle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { SimSqsMessageStore } from "../message/sim-sqs-message-store.js";
|
|
2
|
+
import type { SimSqsQueueAttributeInput } from "./sim-sqs-queue-attributes.js";
|
|
3
|
+
import type { SimSqsQueueStore } from "./sim-sqs-queue-store.js";
|
|
4
|
+
import { type SimSqsRedrivePolicy } from "./sim-sqs-redrive-policy.js";
|
|
5
|
+
interface SimSqsDeadLetterTargetsProperties {
|
|
6
|
+
readonly queues: SimSqsQueueStore;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* One queue's messages at an instant, as the thing a move works on.
|
|
10
|
+
*/
|
|
11
|
+
export interface SimSqsDeadLetterMove {
|
|
12
|
+
readonly policy: SimSqsRedrivePolicy | undefined;
|
|
13
|
+
readonly messages: SimSqsMessageStore;
|
|
14
|
+
readonly sourceQueueArn: string;
|
|
15
|
+
readonly instant: Date;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* How a queue reaches the dead-letter queue its redrive policy names.
|
|
19
|
+
*
|
|
20
|
+
* The target is resolved by whole ARN rather than by the name inside one, so an
|
|
21
|
+
* ARN naming another Account or Region finds nothing. Real SQS requires a
|
|
22
|
+
* dead-letter queue to be in the same Account and Region as its source queue,
|
|
23
|
+
* and it has to exist before a policy can name it: a policy pointing at nothing
|
|
24
|
+
* would look like a working dead-letter queue and lose messages instead.
|
|
25
|
+
*/
|
|
26
|
+
export declare class SimSqsDeadLetterTargets {
|
|
27
|
+
private readonly queues;
|
|
28
|
+
constructor(properties: SimSqsDeadLetterTargetsProperties);
|
|
29
|
+
/**
|
|
30
|
+
* Refuse a request whose redrive policy names a queue that is not there.
|
|
31
|
+
*
|
|
32
|
+
* A request setting no redrive policy names no dead-letter queue, so there is
|
|
33
|
+
* nothing to check.
|
|
34
|
+
*/
|
|
35
|
+
assertRequestedTarget(requested: SimSqsQueueAttributeInput): void;
|
|
36
|
+
/**
|
|
37
|
+
* Move the messages a queue has given up on to its dead-letter queue.
|
|
38
|
+
*
|
|
39
|
+
* A queue with no redrive policy gives up on nothing. A dead-letter queue
|
|
40
|
+
* deleted since the policy was set leaves the messages where they are rather
|
|
41
|
+
* than losing them, which is the safer of the two ways to be wrong about a
|
|
42
|
+
* queue that is no longer there.
|
|
43
|
+
*/
|
|
44
|
+
move(request: SimSqsDeadLetterMove): void;
|
|
45
|
+
/**
|
|
46
|
+
* The dead-letter queue a policy names, or undefined once it has been deleted.
|
|
47
|
+
*/
|
|
48
|
+
private find;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=sim-sqs-dead-letter-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-dead-letter-targets.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-dead-letter-targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,6BAA6B,CAAC;AAErC,UAAU,iCAAiC;IACzC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAE1C,YAAY,UAAU,EAAE,iCAAiC,EAExD;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAahE;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAiBxC;IAED;;OAEG;IACH,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { SimSqsInvalidParameterValue } from "../error/sim-sqs.error.js";
|
|
2
|
+
import { simSqsRedrivePolicyIn, } from "./sim-sqs-redrive-policy.js";
|
|
3
|
+
/**
|
|
4
|
+
* How a queue reaches the dead-letter queue its redrive policy names.
|
|
5
|
+
*
|
|
6
|
+
* The target is resolved by whole ARN rather than by the name inside one, so an
|
|
7
|
+
* ARN naming another Account or Region finds nothing. Real SQS requires a
|
|
8
|
+
* dead-letter queue to be in the same Account and Region as its source queue,
|
|
9
|
+
* and it has to exist before a policy can name it: a policy pointing at nothing
|
|
10
|
+
* would look like a working dead-letter queue and lose messages instead.
|
|
11
|
+
*/
|
|
12
|
+
export class SimSqsDeadLetterTargets {
|
|
13
|
+
queues;
|
|
14
|
+
constructor(properties) {
|
|
15
|
+
this.queues = properties.queues;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Refuse a request whose redrive policy names a queue that is not there.
|
|
19
|
+
*
|
|
20
|
+
* A request setting no redrive policy names no dead-letter queue, so there is
|
|
21
|
+
* nothing to check.
|
|
22
|
+
*/
|
|
23
|
+
assertRequestedTarget(requested) {
|
|
24
|
+
const policy = simSqsRedrivePolicyIn(requested);
|
|
25
|
+
if (policy === undefined || this.find(policy) !== undefined) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
throw new SimSqsInvalidParameterValue(`Value ${policy.value} for parameter RedrivePolicy is invalid. Reason: ` +
|
|
29
|
+
`Dead letter target ${policy.deadLetterTargetArn} does not exist. A ` +
|
|
30
|
+
`dead-letter queue has to be an existing queue in the same Account ` +
|
|
31
|
+
`and Region as the queue redriving to it.`);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Move the messages a queue has given up on to its dead-letter queue.
|
|
35
|
+
*
|
|
36
|
+
* A queue with no redrive policy gives up on nothing. A dead-letter queue
|
|
37
|
+
* deleted since the policy was set leaves the messages where they are rather
|
|
38
|
+
* than losing them, which is the safer of the two ways to be wrong about a
|
|
39
|
+
* queue that is no longer there.
|
|
40
|
+
*/
|
|
41
|
+
move(request) {
|
|
42
|
+
const { policy, messages, sourceQueueArn, instant } = request;
|
|
43
|
+
if (policy === undefined) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const target = this.find(policy);
|
|
47
|
+
if (target === undefined) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
for (const message of messages.exhausted(instant, policy.maxReceiveCount)) {
|
|
51
|
+
messages.remove(message);
|
|
52
|
+
target.add(message.onDeadLetterQueue(instant, sourceQueueArn));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The dead-letter queue a policy names, or undefined once it has been deleted.
|
|
57
|
+
*/
|
|
58
|
+
find(policy) {
|
|
59
|
+
return this.queues.findByArn(policy.deadLetterTargetArn);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=sim-sqs-dead-letter-targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-dead-letter-targets.js","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-dead-letter-targets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAKxE,OAAO,EAEL,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAgBrC;;;;;;;;GAQG;AACH,MAAM,OAAO,uBAAuB;IACjB,MAAM,CAAmB;IAE1C,YAAY,UAA6C;QACvD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,SAAoC;QACxD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,MAAM,IAAI,2BAA2B,CACnC,SAAS,MAAM,CAAC,KAAK,mDAAmD;YACtE,sBAAsB,MAAM,CAAC,mBAAmB,qBAAqB;YACrE,oEAAoE;YACpE,0CAA0C,CAC7C,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,OAA6B;QAChC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE9D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1E,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,IAAI,CAAC,MAA2B;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The queue names a deletion is still holding.
|
|
3
|
+
*
|
|
4
|
+
* This is the SQS version of a behaviour that bites a redeployed stack: a queue
|
|
5
|
+
* deleted a moment ago still owns its name, so recreating it fails. The hold is
|
|
6
|
+
* measured on the simulation's clock, so advancing simulated time past it frees
|
|
7
|
+
* the name, rather than a test having to wait a real minute.
|
|
8
|
+
*/
|
|
9
|
+
export declare class SimSqsDeletedQueueNames {
|
|
10
|
+
private readonly deletedAt;
|
|
11
|
+
/**
|
|
12
|
+
* Record that a queue with this name has just been deleted.
|
|
13
|
+
*/
|
|
14
|
+
record(name: string, instant: Date): void;
|
|
15
|
+
/**
|
|
16
|
+
* Refuse a name a recent deletion is still holding.
|
|
17
|
+
*/
|
|
18
|
+
assertAvailable(name: string, instant: Date): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=sim-sqs-deleted-queue-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-deleted-queue-names.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-deleted-queue-names.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IAErD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,CAExC;IAED;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,CAqBjD;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { SimSqsQueueDeletedRecently } from "../error/sim-sqs.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* Real SQS holds a deleted queue's name for 60 seconds before it can be used
|
|
4
|
+
* again.
|
|
5
|
+
*/
|
|
6
|
+
const nameHoldSeconds = 60;
|
|
7
|
+
const millisecondsPerSecond = 1000;
|
|
8
|
+
/**
|
|
9
|
+
* The queue names a deletion is still holding.
|
|
10
|
+
*
|
|
11
|
+
* This is the SQS version of a behaviour that bites a redeployed stack: a queue
|
|
12
|
+
* deleted a moment ago still owns its name, so recreating it fails. The hold is
|
|
13
|
+
* measured on the simulation's clock, so advancing simulated time past it frees
|
|
14
|
+
* the name, rather than a test having to wait a real minute.
|
|
15
|
+
*/
|
|
16
|
+
export class SimSqsDeletedQueueNames {
|
|
17
|
+
deletedAt = new Map();
|
|
18
|
+
/**
|
|
19
|
+
* Record that a queue with this name has just been deleted.
|
|
20
|
+
*/
|
|
21
|
+
record(name, instant) {
|
|
22
|
+
this.deletedAt.set(name, instant);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Refuse a name a recent deletion is still holding.
|
|
26
|
+
*/
|
|
27
|
+
assertAvailable(name, instant) {
|
|
28
|
+
const deletion = this.deletedAt.get(name);
|
|
29
|
+
if (deletion === undefined) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const heldUntil = deletion.getTime() + nameHoldSeconds * millisecondsPerSecond;
|
|
33
|
+
if (instant.getTime() >= heldUntil) {
|
|
34
|
+
this.deletedAt.delete(name);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
throw new SimSqsQueueDeletedRecently(`You must wait ${String(nameHoldSeconds)} seconds after deleting a ` +
|
|
38
|
+
`queue before you can create another with the same name. Queue ` +
|
|
39
|
+
`'${name}' was deleted at ${deletion.toISOString()}.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=sim-sqs-deleted-queue-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-deleted-queue-names.js","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-deleted-queue-names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;GAGG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,OAAO,uBAAuB;IACjB,SAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;IAErD;;OAEG;IACH,MAAM,CAAC,IAAY,EAAE,OAAa;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAY,EAAE,OAAa;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GACb,QAAQ,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,qBAAqB,CAAC;QAE/D,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE5B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,0BAA0B,CAClC,iBAAiB,MAAM,CAAC,eAAe,CAAC,4BAA4B;YAClE,gEAAgE;YAChE,IAAI,IAAI,oBAAoB,QAAQ,CAAC,WAAW,EAAE,GAAG,CACxD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { SimClock } from "../../../util/clock/sim-clock.js";
|
|
2
|
+
import type { SimSqsQueueStore } from "./sim-sqs-queue-store.js";
|
|
3
|
+
/**
|
|
4
|
+
* Something outside SQS waiting for messages to arrive on a queue.
|
|
5
|
+
*
|
|
6
|
+
* A Lambda event source mapping is the one this exists for: real Lambda polls a
|
|
7
|
+
* queue continuously, and nothing in this simulation runs continuously, so the
|
|
8
|
+
* queue says when there is something to poll for instead.
|
|
9
|
+
*/
|
|
10
|
+
export interface SimSqsQueueWatcher {
|
|
11
|
+
/**
|
|
12
|
+
* A message has arrived, and can be received from the given instant.
|
|
13
|
+
*
|
|
14
|
+
* The instant is when the message becomes visible rather than now, because a
|
|
15
|
+
* message sent with a delay is not receivable yet.
|
|
16
|
+
*/
|
|
17
|
+
messageAvailable(availableFrom: Date): void;
|
|
18
|
+
}
|
|
19
|
+
interface SimSqsQueueActivityProperties {
|
|
20
|
+
readonly queues: SimSqsQueueStore;
|
|
21
|
+
readonly clock: SimClock;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* What a consumer that cannot poll continuously needs from the queues of one
|
|
25
|
+
* simulated SQS scope: to be told when a message can next be received, and to
|
|
26
|
+
* be able to ask when none has been announced.
|
|
27
|
+
*
|
|
28
|
+
* Watchers are held by queue ARN rather than on the queue itself, so a watcher
|
|
29
|
+
* survives whatever the queue does, and so the queue model stays a queue rather
|
|
30
|
+
* than a subscription list.
|
|
31
|
+
*/
|
|
32
|
+
export declare class SimSqsQueueActivity {
|
|
33
|
+
private readonly watchers;
|
|
34
|
+
private readonly queues;
|
|
35
|
+
private readonly clock;
|
|
36
|
+
constructor(properties: SimSqsQueueActivityProperties);
|
|
37
|
+
/**
|
|
38
|
+
* When the earliest message a queue cannot hand out yet becomes receivable,
|
|
39
|
+
* or nothing when it holds no such message.
|
|
40
|
+
*
|
|
41
|
+
* A consumer that started watching a queue whose messages were all in flight
|
|
42
|
+
* or delayed has nothing to wake it, because their arrival was announced
|
|
43
|
+
* before it was watching. Asking is how it finds out when to look.
|
|
44
|
+
*/
|
|
45
|
+
nextAvailability(queueArn: string): Date | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Watch a queue for messages arriving on it.
|
|
48
|
+
*/
|
|
49
|
+
watch(queueArn: string, watcher: SimSqsQueueWatcher): void;
|
|
50
|
+
/**
|
|
51
|
+
* Stop watching a queue.
|
|
52
|
+
*/
|
|
53
|
+
unwatch(queueArn: string, watcher: SimSqsQueueWatcher): void;
|
|
54
|
+
/**
|
|
55
|
+
* Tell a queue's watchers when a message on it can next be received.
|
|
56
|
+
*
|
|
57
|
+
* A message arriving, a message being handed out and hidden, and a message
|
|
58
|
+
* having its visibility changed are all the same thing to a watcher: there is
|
|
59
|
+
* something to poll for at an instant.
|
|
60
|
+
*/
|
|
61
|
+
messageAvailableAt(queueArn: string, availableFrom: Date): void;
|
|
62
|
+
private watchersOf;
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=sim-sqs-queue-activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-sqs-queue-activity.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-queue-activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,gBAAgB,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;CAC7C;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,YAAY,UAAU,EAAE,6BAA6B,EAGpD;IAED;;;;;;;OAOG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAEnD;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEzD;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAK3D;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,CAI9D;IAED,OAAO,CAAC,UAAU;CAGnB"}
|