@kensio/yulin 1.1.0 → 1.2.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/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +2 -2
- 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 +10 -6
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-service-cache.js +2 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.d.ts +2 -0
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.d.ts.map +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.js +15 -1
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.js.map +1 -1
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.d.ts +27 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.d.ts.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.js +44 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.js.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.d.ts +36 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.d.ts.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.js +68 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.js.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +45 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +80 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-conditions.d.ts +28 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-conditions.d.ts.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-conditions.js +29 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-conditions.js.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.d.ts +46 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.d.ts.map +1 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.js +94 -0
- package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.js.map +1 -0
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +0 -1
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts.map +1 -1
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +2 -14
- package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js.map +1 -1
- package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.d.ts +31 -0
- package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.d.ts.map +1 -0
- package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.js +52 -0
- package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.js.map +1 -0
- package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.d.ts +39 -0
- package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.d.ts.map +1 -0
- package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.js +82 -0
- package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.js.map +1 -0
- package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.d.ts +31 -0
- package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.d.ts.map +1 -0
- package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.js +45 -0
- package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.js.map +1 -0
- package/dist/service/cloudformation/template/node/sim-cfn-list.d.ts +1 -1
- package/dist/service/cloudformation/template/node/sim-cfn-list.d.ts.map +1 -1
- package/dist/service/cloudformation/template/node/sim-cfn-list.js +3 -2
- package/dist/service/cloudformation/template/node/sim-cfn-list.js.map +1 -1
- package/dist/service/cloudformation/template/node/sim-cfn-object.d.ts.map +1 -1
- package/dist/service/cloudformation/template/node/sim-cfn-object.js +5 -1
- package/dist/service/cloudformation/template/node/sim-cfn-object.js.map +1 -1
- package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.d.ts +19 -0
- package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.d.ts.map +1 -0
- package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.js +33 -0
- package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.js.map +1 -0
- package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.d.ts +26 -0
- package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.d.ts.map +1 -0
- package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.js +35 -0
- package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.js.map +1 -0
- package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.d.ts +3 -0
- package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.d.ts.map +1 -1
- package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.js +18 -0
- package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.js.map +1 -1
- package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.d.ts +25 -0
- package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.d.ts.map +1 -0
- package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.js +36 -0
- package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.js.map +1 -0
- package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.d.ts +14 -4
- package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.d.ts.map +1 -1
- package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.js +7 -5
- package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.js.map +1 -1
- package/dist/service/cloudformation/template/sim-cfn-template-body-validator.d.ts.map +1 -1
- package/dist/service/cloudformation/template/sim-cfn-template-body-validator.js +4 -0
- package/dist/service/cloudformation/template/sim-cfn-template-body-validator.js.map +1 -1
- package/dist/service/cloudformation/template/sim-cfn-template.d.ts +14 -0
- package/dist/service/cloudformation/template/sim-cfn-template.d.ts.map +1 -1
- package/dist/service/cloudformation/template/sim-cfn-template.js +44 -12
- package/dist/service/cloudformation/template/sim-cfn-template.js.map +1 -1
- package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.d.ts +20 -0
- package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.d.ts.map +1 -1
- package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.js +32 -2
- package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.js.map +1 -1
- package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.d.ts +11 -0
- package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.d.ts.map +1 -0
- package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.js +21 -0
- package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.js.map +1 -0
- package/dist/service/cloudformation/template/value/sim-cfn-value-path.d.ts +22 -0
- package/dist/service/cloudformation/template/value/sim-cfn-value-path.d.ts.map +1 -0
- package/dist/service/cloudformation/template/value/sim-cfn-value-path.js +92 -0
- package/dist/service/cloudformation/template/value/sim-cfn-value-path.js.map +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +7 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +1 -1
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +10 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +21 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js.map +1 -1
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.d.ts +24 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.d.ts.map +1 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.d.ts +7 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.d.ts.map +1 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.js +38 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.js.map +1 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.js +2 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.js.map +1 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +17 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts.map +1 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +37 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js.map +1 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +38 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts.map +1 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +45 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js.map +1 -0
- package/dist/service/cloudfront/sim-cloudfront.d.ts +3 -0
- package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront.js +4 -1
- package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
- package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts +4 -0
- package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts.map +1 -1
- package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js +2 -0
- package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.d.ts +6 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.d.ts.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js +11 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts +6 -5
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js +6 -16
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts +4 -4
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js +4 -9
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js.map +1 -1
- package/dist/service/dynamodb/command/table/table.command.d.ts +2 -1
- package/dist/service/dynamodb/command/table/table.command.d.ts.map +1 -1
- package/dist/service/dynamodb/command/table/table.types.d.ts +4 -7
- package/dist/service/dynamodb/command/table/table.types.d.ts.map +1 -1
- package/dist/service/dynamodb/sim-dynamodb.d.ts +42 -60
- package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
- package/dist/service/dynamodb/sim-dynamodb.js +48 -60
- package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
- package/dist/service/dynamodb/stream/sim-dynamodb-item-change.d.ts +34 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-item-change.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-item-change.js +2 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-item-change.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.d.ts +42 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.js +35 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.d.ts +22 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.js +30 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.d.ts +22 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.js +27 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.d.ts +15 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.js +25 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.d.ts +11 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.js +74 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.d.ts +49 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.js +60 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts +18 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js +31 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts +39 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.js +64 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.d.ts +28 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.js +30 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.d.ts +26 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.js +29 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.d.ts +13 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.js +48 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.d.ts +10 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.js +38 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts +74 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.js +82 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.d.ts +24 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.js +2 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.d.ts +31 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.js +45 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.d.ts +97 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.js +135 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-description.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-description.js +6 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-description.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-items.d.ts +33 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-items.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-items.js +46 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-items.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-storage.d.ts +95 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-storage.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-storage.js +120 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-storage.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts +2 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-update.js +11 -6
- package/dist/service/dynamodb/table/sim-dynamodb-table-update.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts +33 -70
- package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table.js +50 -93
- package/dist/service/dynamodb/table/sim-dynamodb-table.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts +6 -3
- package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts.map +1 -1
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.d.ts.map +1 -1
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.js +5 -1
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.js.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +5 -2
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +13 -8
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts +4 -0
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +32 -21
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts +1 -6
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js +1 -22
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts +2 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +3 -2
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js.map +1 -1
- package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.d.ts +17 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.js +46 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.d.ts +39 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.js +28 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts +33 -7
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts.map +1 -1
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js +7 -6
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js.map +1 -1
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts +25 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.js +16 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts +9 -69
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts.map +1 -1
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js +1 -135
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js.map +1 -1
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts +6 -30
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts.map +1 -1
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js +9 -66
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js.map +1 -1
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.d.ts +17 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.js +17 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.d.ts +88 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.js +132 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.d.ts +41 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.js +60 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.js.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +23 -5
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts.map +1 -1
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +65 -12
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js.map +1 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts +23 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-arn.js +30 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-arn.js.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.d.ts +26 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.js +35 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.js.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +6 -8
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts.map +1 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +6 -9
- package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js.map +1 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts +5 -5
- package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts.map +1 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js +5 -5
- package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js.map +1 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.d.ts +18 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.js +23 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.js.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts +7 -3
- package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts.map +1 -1
- package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js +13 -21
- package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.d.ts +7 -25
- package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.d.ts.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.js +10 -31
- package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.js.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.d.ts +6 -10
- package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.d.ts.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.js +16 -68
- package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.js.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.d.ts +17 -4
- package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.d.ts.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.js +19 -10
- package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.js.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-ids.d.ts +9 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-ids.d.ts.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-ids.js +18 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-ids.js.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.d.ts +5 -3
- package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.d.ts.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.js +3 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.js.map +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-properties.d.ts +19 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-properties.d.ts.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-properties.js +27 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-properties.js.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification.d.ts +61 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification.d.ts.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification.js +50 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification.js.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-queue-notification.d.ts +21 -0
- package/dist/service/s3/bucket/notification/sim-s3-queue-notification.d.ts.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-queue-notification.js +24 -0
- package/dist/service/s3/bucket/notification/sim-s3-queue-notification.js.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.d.ts +10 -0
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.d.ts.map +1 -0
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.js +31 -0
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.js.map +1 -0
- package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.d.ts +3 -0
- package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.d.ts.map +1 -1
- package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.js +30 -1
- package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.js.map +1 -1
- package/dist/service/s3/command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.d.ts +2 -1
- package/dist/service/s3/command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.d.ts.map +1 -1
- package/dist/service/s3/command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.d.ts +10 -1
- package/dist/service/s3/command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.d.ts.map +1 -1
- package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.d.ts +0 -4
- package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.d.ts.map +1 -1
- package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js +1 -4
- package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js.map +1 -1
- package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.d.ts.map +1 -1
- package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.js +6 -4
- package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.js.map +1 -1
- package/dist/service/s3/notification/destination/sim-s3-notification-destination.d.ts +20 -2
- package/dist/service/s3/notification/destination/sim-s3-notification-destination.d.ts.map +1 -1
- package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.d.ts +12 -10
- package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.d.ts.map +1 -1
- package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.js +19 -17
- package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.js.map +1 -1
- package/dist/service/s3/notification/destination/sim-s3-service-principal.d.ts +8 -0
- package/dist/service/s3/notification/destination/sim-s3-service-principal.d.ts.map +1 -0
- package/dist/service/s3/notification/destination/sim-s3-service-principal.js +8 -0
- package/dist/service/s3/notification/destination/sim-s3-service-principal.js.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.d.ts +40 -0
- package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.d.ts.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.js +52 -0
- package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.js.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.d.ts +33 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.d.ts.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.js +64 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.js.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.d.ts +33 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.d.ts.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js +55 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.d.ts +23 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.d.ts.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.js +2 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.js.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.d.ts +40 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.d.ts.map +1 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.js +51 -0
- package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.js.map +1 -0
- package/dist/service/s3/notification/sim-s3-notification-dispatcher.d.ts +2 -2
- package/dist/service/s3/notification/sim-s3-notification-dispatcher.d.ts.map +1 -1
- package/dist/service/s3/notification/sim-s3-notification-dispatcher.js +6 -3
- package/dist/service/s3/notification/sim-s3-notification-dispatcher.js.map +1 -1
- package/dist/service/sqs/command/authorize/sim-sqs-condition-context.d.ts.map +1 -1
- package/dist/service/sqs/command/authorize/sim-sqs-condition-context.js +9 -5
- package/dist/service/sqs/command/authorize/sim-sqs-condition-context.js.map +1 -1
- package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.d.ts +40 -0
- package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.d.ts.map +1 -0
- package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.js +40 -0
- package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.js.map +1 -0
- package/dist/service/sqs/command/sim-sqs-request-options.d.ts +16 -0
- package/dist/service/sqs/command/sim-sqs-request-options.d.ts.map +1 -1
- package/dist/service/sqs/command/sim-sqs-request-options.js +9 -0
- package/dist/service/sqs/command/sim-sqs-request-options.js.map +1 -1
- package/dist/service/sqs/index.d.ts +2 -2
- package/dist/service/sqs/index.d.ts.map +1 -1
- package/dist/service/sqs/index.js +2 -2
- package/dist/service/sqs/index.js.map +1 -1
- package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts +17 -2
- package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts.map +1 -1
- package/dist/service/sqs/queue/sim-sqs-queue-arn.js +9 -5
- package/dist/service/sqs/queue/sim-sqs-queue-arn.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,136 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { SimLambdaEventSourcePollSchedule } from "./sim-lambda-event-source-poll-schedule.js";
|
|
3
|
-
/**
|
|
4
|
-
* Polls one event source mapping's queue and invokes its function.
|
|
5
|
-
*
|
|
6
|
-
* Real Lambda polls a queue continuously. Nothing in this simulation runs
|
|
7
|
-
* continuously, so the queue says when a message has arrived and a poll is
|
|
8
|
-
* scheduled in response. A test that awaits the simulation settling has
|
|
9
|
-
* therefore watched the whole delivery happen, rather than having waited a
|
|
10
|
-
* while and hoped.
|
|
11
|
-
*
|
|
12
|
-
* A batch the function returns from is deleted from the queue. A batch it
|
|
13
|
-
* throws on is left there, which hides it for the visibility timeout and hands
|
|
14
|
-
* it back afterwards, so a redrive policy eventually gives up on it exactly as
|
|
15
|
-
* it would for any other failing consumer. That is why the poller invokes the
|
|
16
|
-
* function directly rather than through the Invoke command: an asynchronous
|
|
17
|
-
* invocation drops its handler error, and this one has to be seen.
|
|
18
|
-
*/
|
|
19
|
-
export class SimLambdaEventSourcePoller {
|
|
20
|
-
properties;
|
|
21
|
-
delivery;
|
|
22
|
-
schedule;
|
|
23
|
-
stopped = false;
|
|
24
|
-
constructor(properties) {
|
|
25
|
-
this.properties = properties;
|
|
26
|
-
this.delivery = new SimLambdaEventSourceDelivery(properties);
|
|
27
|
-
this.schedule = new SimLambdaEventSourcePollSchedule({
|
|
28
|
-
background: properties.background,
|
|
29
|
-
poll: async () => {
|
|
30
|
-
await this.run();
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Watch the queue this mapping polls.
|
|
36
|
-
*
|
|
37
|
-
* Watching starts as soon as the mapping is created, before it has finished
|
|
38
|
-
* creating, so a message sent in between is not missed. The poll it wakes
|
|
39
|
-
* finds a mapping that is not polling yet and does nothing, and the poll that
|
|
40
|
-
* follows activation picks the message up.
|
|
41
|
-
*/
|
|
42
|
-
watch() {
|
|
43
|
-
this.properties.queues.watch(this.properties.eventSourceArn.value, this);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Poll as soon as the simulation gets to it, which is what a newly enabled
|
|
47
|
-
* mapping does with whatever is already on its queue.
|
|
48
|
-
*/
|
|
49
|
-
pollNow() {
|
|
50
|
-
this.schedule.now();
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Stop polling, as deleting the mapping does.
|
|
54
|
-
*/
|
|
55
|
-
stop() {
|
|
56
|
-
this.stopped = true;
|
|
57
|
-
this.properties.queues.unwatch(this.properties.eventSourceArn.value, this);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Take a message arriving on the queue as something to poll for.
|
|
61
|
-
*/
|
|
62
|
-
messageAvailable(availableFrom) {
|
|
63
|
-
this.schedule.at(availableFrom);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Poll once: one batch, delivered and then deleted or left behind.
|
|
67
|
-
*/
|
|
68
|
-
async run() {
|
|
69
|
-
const simFunction = this.pollingFunction();
|
|
70
|
-
if (simFunction === undefined) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// Polling is done as the function's execution role, as on real Lambda, so
|
|
74
|
-
// simulated IAM decides whether this mapping may read its queue.
|
|
75
|
-
const request = {
|
|
76
|
-
queueArn: this.properties.eventSourceArn.value,
|
|
77
|
-
caller: { kind: "arn", arn: simFunction.roleArn },
|
|
78
|
-
};
|
|
79
|
-
const visibilityTimeoutSeconds = await this.properties.queues.visibilityTimeoutSeconds(request);
|
|
80
|
-
const messages = await this.properties.queues.receive({
|
|
81
|
-
...request,
|
|
82
|
-
batchSize: this.properties.mapping.batchSize,
|
|
83
|
-
});
|
|
84
|
-
if (messages.length === 0) {
|
|
85
|
-
this.pollWhenSomethingComesBack();
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const outcome = await this.delivery.to(simFunction, messages);
|
|
89
|
-
await this.properties.queues.deleteMessages({
|
|
90
|
-
...request,
|
|
91
|
-
receiptHandles: outcome.handledReceiptHandles,
|
|
92
|
-
});
|
|
93
|
-
this.pollAgainAfter(outcome, messages.length, visibilityTimeoutSeconds);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* The function this mapping delivers to, while it should be delivering.
|
|
97
|
-
*
|
|
98
|
-
* A mapping still being created is not polling yet, and a disabled one never
|
|
99
|
-
* is. A function that is not there is not an error here: the mapping simply
|
|
100
|
-
* has nothing to deliver to.
|
|
101
|
-
*/
|
|
102
|
-
pollingFunction() {
|
|
103
|
-
if (this.stopped || !this.properties.mapping.isPolling) {
|
|
104
|
-
return undefined;
|
|
105
|
-
}
|
|
106
|
-
return this.properties.functions.find(this.properties.mapping.functionName);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Look again when a message the queue could not hand out becomes
|
|
110
|
-
* receivable.
|
|
111
|
-
*
|
|
112
|
-
* A mapping created while every message on its queue is in flight, or one
|
|
113
|
-
* whose queue holds only delayed messages, has nothing to wake it otherwise.
|
|
114
|
-
*/
|
|
115
|
-
pollWhenSomethingComesBack() {
|
|
116
|
-
const availableFrom = this.properties.queues.nextAvailability(this.properties.eventSourceArn.value);
|
|
117
|
-
if (availableFrom !== undefined) {
|
|
118
|
-
this.schedule.at(availableFrom);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Decide when this mapping polls again: when a returned batch becomes
|
|
123
|
-
* visible again, or straight away when a batch filled the request and there
|
|
124
|
-
* may be more waiting.
|
|
125
|
-
*/
|
|
126
|
-
pollAgainAfter(outcome, receivedCount, visibilityTimeoutSeconds) {
|
|
127
|
-
if (outcome.hasReturnedMessages) {
|
|
128
|
-
this.schedule.afterSeconds(visibilityTimeoutSeconds);
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
if (receivedCount >= this.properties.mapping.batchSize) {
|
|
132
|
-
this.schedule.now();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
1
|
+
export {};
|
|
136
2
|
//# sourceMappingURL=sim-lambda-event-source-poller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-lambda-event-source-poller.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-event-source-poller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-lambda-event-source-poller.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-event-source-poller.ts"],"names":[],"mappings":""}
|
|
@@ -1,26 +1,7 @@
|
|
|
1
1
|
import type { SimLambdaEventSourceMessage } from "../queue/sim-lambda-event-source-queues.js";
|
|
2
|
+
import { SimLambdaEventSourceBatchOutcome, type SimLambdaEventSourceBatchResponse } from "./sim-lambda-event-source-batch-response.js";
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* A batch is either deleted from the queue or left on it to become visible
|
|
6
|
-
* again. Partial batch responses split it, which is the only reason this is a
|
|
7
|
-
* pair of lists rather than a yes or no.
|
|
8
|
-
*/
|
|
9
|
-
export declare class SimLambdaSqsBatchOutcome {
|
|
10
|
-
readonly handled: readonly SimLambdaEventSourceMessage[];
|
|
11
|
-
readonly returned: readonly SimLambdaEventSourceMessage[];
|
|
12
|
-
constructor(handled: readonly SimLambdaEventSourceMessage[], returned: readonly SimLambdaEventSourceMessage[]);
|
|
13
|
-
/**
|
|
14
|
-
* The receipt handles of the messages to delete from the queue.
|
|
15
|
-
*/
|
|
16
|
-
get handledReceiptHandles(): readonly string[];
|
|
17
|
-
/**
|
|
18
|
-
* Whether anything was left on the queue to be delivered again.
|
|
19
|
-
*/
|
|
20
|
-
get hasReturnedMessages(): boolean;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Reads what a function said about the batch it was given.
|
|
4
|
+
* Reads what a function said about the batch of messages it was given.
|
|
24
5
|
*
|
|
25
6
|
* A function that returns normally has handled the whole batch, unless the
|
|
26
7
|
* mapping was told to expect a batch item failure report and the function sent
|
|
@@ -28,22 +9,17 @@ export declare class SimLambdaSqsBatchOutcome {
|
|
|
28
9
|
* as on real Lambda: the alternative is to guess which messages the function
|
|
29
10
|
* meant, and guessing wrong loses a message.
|
|
30
11
|
*/
|
|
31
|
-
export declare class SimLambdaSqsBatchResponse {
|
|
32
|
-
private readonly
|
|
12
|
+
export declare class SimLambdaSqsBatchResponse implements SimLambdaEventSourceBatchResponse {
|
|
13
|
+
private readonly batchItemFailures;
|
|
33
14
|
constructor(reportsBatchItemFailures: boolean);
|
|
34
15
|
/**
|
|
35
16
|
* What became of a batch the function returned from.
|
|
36
17
|
*/
|
|
37
|
-
handled(messages: readonly SimLambdaEventSourceMessage[], result: unknown):
|
|
18
|
+
handled(messages: readonly SimLambdaEventSourceMessage[], result: unknown): SimLambdaEventSourceBatchOutcome;
|
|
38
19
|
/**
|
|
39
20
|
* What becomes of a batch the function threw on: the whole of it goes back.
|
|
40
21
|
*/
|
|
41
|
-
failed(messages: readonly SimLambdaEventSourceMessage[]):
|
|
42
|
-
/**
|
|
43
|
-
* The message ids a batch item failure report names, or undefined when the
|
|
44
|
-
* function reported none.
|
|
45
|
-
*/
|
|
46
|
-
private reportedFailureIds;
|
|
22
|
+
failed(messages: readonly SimLambdaEventSourceMessage[]): SimLambdaEventSourceBatchOutcome;
|
|
47
23
|
private namesBatchMessages;
|
|
48
24
|
}
|
|
49
25
|
//# sourceMappingURL=sim-lambda-sqs-batch-response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-lambda-sqs-batch-response.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-lambda-sqs-batch-response.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAE9F,OAAO,EACL,gCAAgC,EAChC,KAAK,iCAAiC,EACvC,MAAM,6CAA6C,CAAC;AAErD;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,YAAW,iCAAiC;IACjF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAE/D,YAAY,wBAAwB,EAAE,OAAO,EAI5C;IAED;;OAEG;IACH,OAAO,CACL,QAAQ,EAAE,SAAS,2BAA2B,EAAE,EAChD,MAAM,EAAE,OAAO,GACd,gCAAgC,CAelC;IAED;;OAEG;IACH,MAAM,CACJ,QAAQ,EAAE,SAAS,2BAA2B,EAAE,GAC/C,gCAAgC,CAElC;IAED,OAAO,CAAC,kBAAkB;CAQ3B"}
|
|
@@ -1,33 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SimLambdaBatchItemFailures } from "./sim-lambda-batch-item-failures.js";
|
|
2
|
+
import { SimLambdaEventSourceBatchOutcome, } from "./sim-lambda-event-source-batch-response.js";
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* A batch is either deleted from the queue or left on it to become visible
|
|
6
|
-
* again. Partial batch responses split it, which is the only reason this is a
|
|
7
|
-
* pair of lists rather than a yes or no.
|
|
8
|
-
*/
|
|
9
|
-
export class SimLambdaSqsBatchOutcome {
|
|
10
|
-
handled;
|
|
11
|
-
returned;
|
|
12
|
-
constructor(handled, returned) {
|
|
13
|
-
this.handled = handled;
|
|
14
|
-
this.returned = returned;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* The receipt handles of the messages to delete from the queue.
|
|
18
|
-
*/
|
|
19
|
-
get handledReceiptHandles() {
|
|
20
|
-
return this.handled.map((message) => message.ReceiptHandle);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Whether anything was left on the queue to be delivered again.
|
|
24
|
-
*/
|
|
25
|
-
get hasReturnedMessages() {
|
|
26
|
-
return this.returned.length > 0;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Reads what a function said about the batch it was given.
|
|
4
|
+
* Reads what a function said about the batch of messages it was given.
|
|
31
5
|
*
|
|
32
6
|
* A function that returns normally has handled the whole batch, unless the
|
|
33
7
|
* mapping was told to expect a batch item failure report and the function sent
|
|
@@ -36,62 +10,31 @@ export class SimLambdaSqsBatchOutcome {
|
|
|
36
10
|
* meant, and guessing wrong loses a message.
|
|
37
11
|
*/
|
|
38
12
|
export class SimLambdaSqsBatchResponse {
|
|
39
|
-
|
|
13
|
+
batchItemFailures;
|
|
40
14
|
constructor(reportsBatchItemFailures) {
|
|
41
|
-
this.
|
|
15
|
+
this.batchItemFailures = new SimLambdaBatchItemFailures(reportsBatchItemFailures);
|
|
42
16
|
}
|
|
43
17
|
/**
|
|
44
18
|
* What became of a batch the function returned from.
|
|
45
19
|
*/
|
|
46
20
|
handled(messages, result) {
|
|
47
|
-
const failedIds = this.
|
|
21
|
+
const failedIds = this.batchItemFailures.idsIn(result);
|
|
48
22
|
if (failedIds === undefined) {
|
|
49
|
-
return new
|
|
23
|
+
return new SimLambdaEventSourceBatchOutcome(messages, []);
|
|
50
24
|
}
|
|
51
25
|
if (!this.namesBatchMessages(failedIds, messages)) {
|
|
52
26
|
return this.failed(messages);
|
|
53
27
|
}
|
|
54
|
-
return new
|
|
28
|
+
return new SimLambdaEventSourceBatchOutcome(messages.filter((message) => !failedIds.includes(message.MessageId)), messages.filter((message) => failedIds.includes(message.MessageId)));
|
|
55
29
|
}
|
|
56
30
|
/**
|
|
57
31
|
* What becomes of a batch the function threw on: the whole of it goes back.
|
|
58
32
|
*/
|
|
59
33
|
failed(messages) {
|
|
60
|
-
return new
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* The message ids a batch item failure report names, or undefined when the
|
|
64
|
-
* function reported none.
|
|
65
|
-
*/
|
|
66
|
-
reportedFailureIds(result) {
|
|
67
|
-
if (!this.reportsBatchItemFailures || !isRecord(result)) {
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
const reported = result["batchItemFailures"];
|
|
71
|
-
if (!Array.isArray(reported) || reported.length === 0) {
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
return reported.map((failure) => itemIdentifier(failure));
|
|
34
|
+
return new SimLambdaEventSourceBatchOutcome([], messages);
|
|
75
35
|
}
|
|
76
36
|
namesBatchMessages(failedIds, messages) {
|
|
77
37
|
return failedIds.every((failedId) => messages.some((message) => message.MessageId === failedId));
|
|
78
38
|
}
|
|
79
39
|
}
|
|
80
|
-
/**
|
|
81
|
-
* The message id one reported failure names.
|
|
82
|
-
*
|
|
83
|
-
* An entry naming nothing is reported as an empty id, which no message has, so
|
|
84
|
-
* the whole batch goes back. That is what real Lambda does with a malformed
|
|
85
|
-
* report rather than dropping the entry.
|
|
86
|
-
*/
|
|
87
|
-
function itemIdentifier(failure) {
|
|
88
|
-
if (!isRecord(failure)) {
|
|
89
|
-
return "";
|
|
90
|
-
}
|
|
91
|
-
const identifier = failure["itemIdentifier"];
|
|
92
|
-
if (typeof identifier !== "string") {
|
|
93
|
-
return "";
|
|
94
|
-
}
|
|
95
|
-
return identifier;
|
|
96
|
-
}
|
|
97
40
|
//# sourceMappingURL=sim-lambda-sqs-batch-response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-lambda-sqs-batch-response.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-lambda-sqs-batch-response.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EACL,gCAAgC,GAEjC,MAAM,6CAA6C,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAAyB;IACnB,iBAAiB,CAA6B;IAE/D,YAAY,wBAAiC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,0BAA0B,CACrD,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,OAAO,CACL,QAAgD,EAChD,MAAe;QAEf,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEvD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,gCAAgC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,gCAAgC,CACzC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EACpE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,QAAgD;QAEhD,OAAO,IAAI,gCAAgC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAEO,kBAAkB,CACxB,SAA4B,EAC5B,QAAgD;QAEhD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAC3D,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SimLambdaSqsEventSourceArn } from "../queue/sim-lambda-sqs-event-source-arn.js";
|
|
2
|
+
import type { SimLambdaEventSourceMapping } from "../sim-lambda-event-source-mapping.js";
|
|
3
|
+
import { SimLambdaEventSourceDelivery } from "./sim-lambda-event-source-delivery.js";
|
|
4
|
+
interface SimLambdaSqsDeliveryProperties {
|
|
5
|
+
readonly mapping: SimLambdaEventSourceMapping;
|
|
6
|
+
readonly eventSourceArn: SimLambdaSqsEventSourceArn;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The delivery an SQS mapping hands its batches over with.
|
|
10
|
+
*
|
|
11
|
+
* What the event looks like and what the function's return value means are both
|
|
12
|
+
* the queue's, so they are put together here and handed to the delivery, which
|
|
13
|
+
* knows neither.
|
|
14
|
+
*/
|
|
15
|
+
export declare function makeSimLambdaSqsDelivery(properties: SimLambdaSqsDeliveryProperties): SimLambdaEventSourceDelivery;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=sim-lambda-sqs-delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-lambda-sqs-delivery.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAIrF,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,8BAA8B,GACzC,4BAA4B,CAO9B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SimLambdaEventSourceDelivery } from "./sim-lambda-event-source-delivery.js";
|
|
2
|
+
import { SimLambdaSqsBatchResponse } from "./sim-lambda-sqs-batch-response.js";
|
|
3
|
+
import { SimLambdaSqsEventBuilder } from "./sim-lambda-sqs-event.js";
|
|
4
|
+
/**
|
|
5
|
+
* The delivery an SQS mapping hands its batches over with.
|
|
6
|
+
*
|
|
7
|
+
* What the event looks like and what the function's return value means are both
|
|
8
|
+
* the queue's, so they are put together here and handed to the delivery, which
|
|
9
|
+
* knows neither.
|
|
10
|
+
*/
|
|
11
|
+
export function makeSimLambdaSqsDelivery(properties) {
|
|
12
|
+
return new SimLambdaEventSourceDelivery({
|
|
13
|
+
eventBuilder: new SimLambdaSqsEventBuilder(properties.eventSourceArn),
|
|
14
|
+
batchResponse: new SimLambdaSqsBatchResponse(properties.mapping.reportsBatchItemFailures),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=sim-lambda-sqs-delivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-lambda-sqs-delivery.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAOrE;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA0C;IAE1C,OAAO,IAAI,4BAA4B,CAAC;QACtC,YAAY,EAAE,IAAI,wBAAwB,CAAC,UAAU,CAAC,cAAc,CAAC;QACrE,aAAa,EAAE,IAAI,yBAAyB,CAC1C,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAC5C;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../../../util/background/background.js";
|
|
2
|
+
import type { SimLambdaFunctionLookup } from "../../function/url/sim-lambda-function-lookup.js";
|
|
3
|
+
import type { SimLambdaEventSourceQueues, SimLambdaEventSourceQueueWatcher } from "../queue/sim-lambda-event-source-queues.js";
|
|
4
|
+
import type { SimLambdaSqsEventSourceArn } from "../queue/sim-lambda-sqs-event-source-arn.js";
|
|
5
|
+
import type { SimLambdaEventSourceMapping } from "../sim-lambda-event-source-mapping.js";
|
|
6
|
+
import type { SimLambdaEventSourcePoller } from "./sim-lambda-event-source-poller.js";
|
|
7
|
+
interface SimLambdaSqsEventSourcePollerProperties {
|
|
8
|
+
readonly mapping: SimLambdaEventSourceMapping;
|
|
9
|
+
readonly eventSourceArn: SimLambdaSqsEventSourceArn;
|
|
10
|
+
readonly functions: SimLambdaFunctionLookup;
|
|
11
|
+
readonly queues: SimLambdaEventSourceQueues;
|
|
12
|
+
readonly background: BackgroundScheduler;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Polls one event source mapping's queue and invokes its function.
|
|
16
|
+
*
|
|
17
|
+
* Real Lambda polls a queue continuously. Nothing in this simulation runs
|
|
18
|
+
* continuously, so the queue says when a message has arrived and a poll is
|
|
19
|
+
* scheduled in response. A test that awaits the simulation settling has
|
|
20
|
+
* therefore watched the whole delivery happen, rather than having waited a
|
|
21
|
+
* while and hoped.
|
|
22
|
+
*
|
|
23
|
+
* A batch the function returns from is deleted from the queue. A batch it
|
|
24
|
+
* throws on is left there, which hides it for the visibility timeout and hands
|
|
25
|
+
* it back afterwards, so a redrive policy eventually gives up on it exactly as
|
|
26
|
+
* it would for any other failing consumer. That is why the poller invokes the
|
|
27
|
+
* function directly rather than through the Invoke command: an asynchronous
|
|
28
|
+
* invocation drops its handler error, and this one has to be seen.
|
|
29
|
+
*/
|
|
30
|
+
export declare class SimLambdaSqsEventSourcePoller implements SimLambdaEventSourcePoller, SimLambdaEventSourceQueueWatcher {
|
|
31
|
+
private readonly mapping;
|
|
32
|
+
private readonly functions;
|
|
33
|
+
private readonly queue;
|
|
34
|
+
private readonly delivery;
|
|
35
|
+
private readonly schedule;
|
|
36
|
+
private stopped;
|
|
37
|
+
constructor(properties: SimLambdaSqsEventSourcePollerProperties);
|
|
38
|
+
/**
|
|
39
|
+
* Watch the queue this mapping polls.
|
|
40
|
+
*
|
|
41
|
+
* Watching starts as soon as the mapping is created, before it has finished
|
|
42
|
+
* creating, so a message sent in between is not missed. The poll it wakes
|
|
43
|
+
* finds a mapping that is not polling yet and does nothing, and the poll that
|
|
44
|
+
* follows activation picks the message up.
|
|
45
|
+
*/
|
|
46
|
+
watch(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Poll as soon as the simulation gets to it, which is what a newly enabled
|
|
49
|
+
* mapping does with whatever is already on its queue.
|
|
50
|
+
*/
|
|
51
|
+
pollNow(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Stop polling, as deleting the mapping does.
|
|
54
|
+
*/
|
|
55
|
+
stop(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Take a message arriving on the queue as something to poll for.
|
|
58
|
+
*/
|
|
59
|
+
messageAvailable(availableFrom: Date): void;
|
|
60
|
+
/**
|
|
61
|
+
* Poll once: one batch, delivered and then deleted or left behind.
|
|
62
|
+
*/
|
|
63
|
+
private run;
|
|
64
|
+
/**
|
|
65
|
+
* The function this mapping delivers to, while it should be delivering.
|
|
66
|
+
*
|
|
67
|
+
* A mapping still being created is not polling yet, and a disabled one never
|
|
68
|
+
* is. A function that is not there is not an error here: the mapping simply
|
|
69
|
+
* has nothing to deliver to.
|
|
70
|
+
*/
|
|
71
|
+
private pollingFunction;
|
|
72
|
+
/**
|
|
73
|
+
* Look again when a message the queue could not hand out becomes
|
|
74
|
+
* receivable.
|
|
75
|
+
*
|
|
76
|
+
* A mapping created while every message on its queue is in flight, or one
|
|
77
|
+
* whose queue holds only delayed messages, has nothing to wake it otherwise.
|
|
78
|
+
*/
|
|
79
|
+
private pollWhenSomethingComesBack;
|
|
80
|
+
/**
|
|
81
|
+
* Decide when this mapping polls again: when a returned batch becomes
|
|
82
|
+
* visible again, or straight away when a batch filled the request and there
|
|
83
|
+
* may be more waiting.
|
|
84
|
+
*/
|
|
85
|
+
private pollAgainAfter;
|
|
86
|
+
}
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=sim-lambda-sqs-event-source-poller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-lambda-sqs-event-source-poller.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAChG,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAIzF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAItF,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,6BACX,YAAW,0BAA0B,EAAE,gCAAgC;IAEvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,UAAU,EAAE,uCAAuC,EAc9D;IAED;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;;OAGG;IACH,OAAO,IAAI,IAAI,CAEd;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAGX;IAED;;OAEG;IACH,gBAAgB,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAE1C;IAED;;OAEG;YACW,GAAG;IA0BjB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAQlC;;;;OAIG;IACH,OAAO,CAAC,cAAc;CAevB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { SimLambdaEventSourcePollSchedule } from "./sim-lambda-event-source-poll-schedule.js";
|
|
2
|
+
import { makeSimLambdaSqsDelivery } from "./sim-lambda-sqs-delivery.js";
|
|
3
|
+
import { SimLambdaSqsPolledQueue } from "./sim-lambda-sqs-polled-queue.js";
|
|
4
|
+
/**
|
|
5
|
+
* Polls one event source mapping's queue and invokes its function.
|
|
6
|
+
*
|
|
7
|
+
* Real Lambda polls a queue continuously. Nothing in this simulation runs
|
|
8
|
+
* continuously, so the queue says when a message has arrived and a poll is
|
|
9
|
+
* scheduled in response. A test that awaits the simulation settling has
|
|
10
|
+
* therefore watched the whole delivery happen, rather than having waited a
|
|
11
|
+
* while and hoped.
|
|
12
|
+
*
|
|
13
|
+
* A batch the function returns from is deleted from the queue. A batch it
|
|
14
|
+
* throws on is left there, which hides it for the visibility timeout and hands
|
|
15
|
+
* it back afterwards, so a redrive policy eventually gives up on it exactly as
|
|
16
|
+
* it would for any other failing consumer. That is why the poller invokes the
|
|
17
|
+
* function directly rather than through the Invoke command: an asynchronous
|
|
18
|
+
* invocation drops its handler error, and this one has to be seen.
|
|
19
|
+
*/
|
|
20
|
+
export class SimLambdaSqsEventSourcePoller {
|
|
21
|
+
mapping;
|
|
22
|
+
functions;
|
|
23
|
+
queue;
|
|
24
|
+
delivery;
|
|
25
|
+
schedule;
|
|
26
|
+
stopped = false;
|
|
27
|
+
constructor(properties) {
|
|
28
|
+
this.mapping = properties.mapping;
|
|
29
|
+
this.functions = properties.functions;
|
|
30
|
+
this.queue = new SimLambdaSqsPolledQueue(properties.queues, properties.eventSourceArn.value);
|
|
31
|
+
this.delivery = makeSimLambdaSqsDelivery(properties);
|
|
32
|
+
this.schedule = new SimLambdaEventSourcePollSchedule({
|
|
33
|
+
background: properties.background,
|
|
34
|
+
poll: async () => {
|
|
35
|
+
await this.run();
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Watch the queue this mapping polls.
|
|
41
|
+
*
|
|
42
|
+
* Watching starts as soon as the mapping is created, before it has finished
|
|
43
|
+
* creating, so a message sent in between is not missed. The poll it wakes
|
|
44
|
+
* finds a mapping that is not polling yet and does nothing, and the poll that
|
|
45
|
+
* follows activation picks the message up.
|
|
46
|
+
*/
|
|
47
|
+
watch() {
|
|
48
|
+
this.queue.watch(this);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Poll as soon as the simulation gets to it, which is what a newly enabled
|
|
52
|
+
* mapping does with whatever is already on its queue.
|
|
53
|
+
*/
|
|
54
|
+
pollNow() {
|
|
55
|
+
this.schedule.now();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Stop polling, as deleting the mapping does.
|
|
59
|
+
*/
|
|
60
|
+
stop() {
|
|
61
|
+
this.stopped = true;
|
|
62
|
+
this.queue.unwatch(this);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Take a message arriving on the queue as something to poll for.
|
|
66
|
+
*/
|
|
67
|
+
messageAvailable(availableFrom) {
|
|
68
|
+
this.schedule.at(availableFrom);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Poll once: one batch, delivered and then deleted or left behind.
|
|
72
|
+
*/
|
|
73
|
+
async run() {
|
|
74
|
+
const simFunction = this.pollingFunction();
|
|
75
|
+
if (simFunction === undefined) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// Polling is done as the function's execution role, as on real Lambda, so
|
|
79
|
+
// simulated IAM decides whether this mapping may read its queue.
|
|
80
|
+
const { roleArn } = simFunction;
|
|
81
|
+
const timeout = await this.queue.visibilityTimeoutSeconds(roleArn);
|
|
82
|
+
const messages = await this.queue.receive(roleArn, this.mapping.batchSize);
|
|
83
|
+
if (messages.length === 0) {
|
|
84
|
+
this.pollWhenSomethingComesBack();
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const outcome = await this.delivery.to(simFunction, messages);
|
|
88
|
+
await this.queue.deleteMessages(roleArn, outcome.handledReceiptHandles);
|
|
89
|
+
this.pollAgainAfter(outcome, messages.length, timeout);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The function this mapping delivers to, while it should be delivering.
|
|
93
|
+
*
|
|
94
|
+
* A mapping still being created is not polling yet, and a disabled one never
|
|
95
|
+
* is. A function that is not there is not an error here: the mapping simply
|
|
96
|
+
* has nothing to deliver to.
|
|
97
|
+
*/
|
|
98
|
+
pollingFunction() {
|
|
99
|
+
if (this.stopped || !this.mapping.isPolling) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
return this.functions.find(this.mapping.functionName);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Look again when a message the queue could not hand out becomes
|
|
106
|
+
* receivable.
|
|
107
|
+
*
|
|
108
|
+
* A mapping created while every message on its queue is in flight, or one
|
|
109
|
+
* whose queue holds only delayed messages, has nothing to wake it otherwise.
|
|
110
|
+
*/
|
|
111
|
+
pollWhenSomethingComesBack() {
|
|
112
|
+
const availableFrom = this.queue.nextAvailability();
|
|
113
|
+
if (availableFrom !== undefined) {
|
|
114
|
+
this.schedule.at(availableFrom);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Decide when this mapping polls again: when a returned batch becomes
|
|
119
|
+
* visible again, or straight away when a batch filled the request and there
|
|
120
|
+
* may be more waiting.
|
|
121
|
+
*/
|
|
122
|
+
pollAgainAfter(outcome, receivedCount, visibilityTimeoutSeconds) {
|
|
123
|
+
if (outcome.hasReturnedMessages) {
|
|
124
|
+
this.schedule.afterSeconds(visibilityTimeoutSeconds);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (receivedCount >= this.mapping.batchSize) {
|
|
128
|
+
this.schedule.now();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=sim-lambda-sqs-event-source-poller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-lambda-sqs-event-source-poller.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAE9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAU3E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,6BAA6B;IAGvB,OAAO,CAA8B;IACrC,SAAS,CAA0B;IACnC,KAAK,CAA0B;IAC/B,QAAQ,CAA+B;IACvC,QAAQ,CAAmC;IAEpD,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,UAAmD;QAC7D,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAuB,CACtC,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,cAAc,CAAC,KAAK,CAChC,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,gCAAgC,CAAC;YACnD,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,IAAI,EAAE,KAAK,IAAmB,EAAE;gBAC9B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,aAAmB;QAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,GAAG;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE3E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAElC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE9D,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAExE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACK,eAAe;QACrB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;OAMG;IACK,0BAA0B;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAEpD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,cAAc,CACpB,OAAyC,EACzC,aAAqB,EACrB,wBAAgC;QAEhC,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;YAErD,OAAO;QACT,CAAC;QAED,IAAI,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { SimLambdaEventSourceMessage, SimLambdaEventSourceQueues, SimLambdaEventSourceQueueWatcher } from "../queue/sim-lambda-event-source-queues.js";
|
|
2
|
+
/**
|
|
3
|
+
* The one queue a mapping polls.
|
|
4
|
+
*
|
|
5
|
+
* Every call names the same queue, and the ones a poll makes are all made as
|
|
6
|
+
* the function's execution role, so both are fixed here rather than written out
|
|
7
|
+
* at each call. Simulated IAM still decides each one, exactly as real IAM does.
|
|
8
|
+
*/
|
|
9
|
+
export declare class SimLambdaSqsPolledQueue {
|
|
10
|
+
private readonly queues;
|
|
11
|
+
private readonly queueArn;
|
|
12
|
+
constructor(queues: SimLambdaEventSourceQueues, queueArn: string);
|
|
13
|
+
/**
|
|
14
|
+
* Watch for messages arriving on the queue.
|
|
15
|
+
*/
|
|
16
|
+
watch(watcher: SimLambdaEventSourceQueueWatcher): void;
|
|
17
|
+
/**
|
|
18
|
+
* Stop watching the queue.
|
|
19
|
+
*/
|
|
20
|
+
unwatch(watcher: SimLambdaEventSourceQueueWatcher): void;
|
|
21
|
+
/**
|
|
22
|
+
* When the earliest message the queue cannot hand out yet becomes
|
|
23
|
+
* receivable.
|
|
24
|
+
*/
|
|
25
|
+
nextAvailability(): Date | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* How long a received message stays hidden, and by asking, whether the queue
|
|
28
|
+
* is there to be polled at all.
|
|
29
|
+
*/
|
|
30
|
+
visibilityTimeoutSeconds(roleArn: string): Promise<number>;
|
|
31
|
+
/**
|
|
32
|
+
* Take up to a batch of messages off the queue.
|
|
33
|
+
*/
|
|
34
|
+
receive(roleArn: string, batchSize: number): Promise<readonly SimLambdaEventSourceMessage[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Delete the messages the function handled.
|
|
37
|
+
*/
|
|
38
|
+
deleteMessages(roleArn: string, receiptHandles: readonly string[]): Promise<void>;
|
|
39
|
+
private requestAs;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=sim-lambda-sqs-polled-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-lambda-sqs-polled-queue.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAE3B,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,4CAA4C,CAAC;AAEpD;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,YAAY,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,EAG/D;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI,CAErD;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI,CAEvD;IAED;;;OAGG;IACH,gBAAgB,IAAI,IAAI,GAAG,SAAS,CAEnC;IAED;;;OAGG;IACG,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/D;IAED;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAEjD;IAED;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC,CAKf;IAED,OAAO,CAAC,SAAS;CAGlB"}
|