@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,24 +1,15 @@
|
|
|
1
1
|
import { SimLambdaInvalidParameterValueException } from "../error/sim-lambda.error.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Lambda to poll it.
|
|
5
|
-
*
|
|
6
|
-
* These are the three operations real Lambda checks when an SQS event source
|
|
7
|
-
* mapping is created, and the three its poller performs afterwards.
|
|
8
|
-
*/
|
|
9
|
-
const requiredQueueOperations = [
|
|
10
|
-
"ReceiveMessage",
|
|
11
|
-
"DeleteMessage",
|
|
12
|
-
"GetQueueAttributes",
|
|
13
|
-
];
|
|
14
|
-
/**
|
|
15
|
-
* Checks that a function's execution role may poll the queue a mapping names.
|
|
3
|
+
* Checks that a function's execution role may poll the source a mapping names.
|
|
16
4
|
*
|
|
17
5
|
* Real Lambda refuses to create the mapping at all when the role cannot poll,
|
|
18
6
|
* rather than creating one that silently delivers nothing, so this is checked
|
|
19
7
|
* up front here too. The poller's own calls go through simulated IAM again
|
|
20
8
|
* afterwards, as they do on AWS: this check is about failing early, not about
|
|
21
9
|
* standing in for authorization.
|
|
10
|
+
*
|
|
11
|
+
* What has to be allowed comes from the event source, since the operations a
|
|
12
|
+
* poller performs are the source's own.
|
|
22
13
|
*/
|
|
23
14
|
export class SimLambdaEventSourceRolePermissions {
|
|
24
15
|
iam;
|
|
@@ -26,19 +17,20 @@ export class SimLambdaEventSourceRolePermissions {
|
|
|
26
17
|
this.iam = properties.iam;
|
|
27
18
|
}
|
|
28
19
|
/**
|
|
29
|
-
* Refuse a mapping whose execution role cannot poll the
|
|
20
|
+
* Refuse a mapping whose execution role cannot poll the event source.
|
|
30
21
|
*/
|
|
31
|
-
assertMayPoll(roleArn,
|
|
32
|
-
for (const
|
|
22
|
+
assertMayPoll(roleArn, eventSourceArn) {
|
|
23
|
+
for (const permission of eventSourceArn.pollingPermissions) {
|
|
33
24
|
const decision = this.iam.authorize({
|
|
34
|
-
action:
|
|
35
|
-
resource:
|
|
25
|
+
action: permission.action,
|
|
26
|
+
resource: permission.resource,
|
|
36
27
|
caller: { kind: "arn", arn: roleArn },
|
|
37
28
|
});
|
|
38
29
|
if (decision.isDenied) {
|
|
39
|
-
throw new SimLambdaInvalidParameterValueException(
|
|
40
|
-
`${
|
|
41
|
-
`
|
|
30
|
+
throw new SimLambdaInvalidParameterValueException("The provided execution role does not have permissions to call " +
|
|
31
|
+
`${permission.operationName} on ${eventSourceArn.serviceLabel}. ` +
|
|
32
|
+
`Role ${roleArn} has no policy allowing ` +
|
|
33
|
+
`${permission.action} on ${permission.resource}`);
|
|
42
34
|
}
|
|
43
35
|
}
|
|
44
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-lambda-event-source-role-permissions.js","sourceRoot":"","sources":["../../../../src/service/lambda/event-source/sim-lambda-event-source-role-permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uCAAuC,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-lambda-event-source-role-permissions.js","sourceRoot":"","sources":["../../../../src/service/lambda/event-source/sim-lambda-event-source-role-permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uCAAuC,EAAE,MAAM,8BAA8B,CAAC;AAOvF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mCAAmC;IAC7B,GAAG,CAA0B;IAE9C,YAAY,UAAyD;QACnE,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,aAAa,CACX,OAAe,EACf,cAAuC;QAEvC,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,kBAAkB,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBAClC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;aACtC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,MAAM,IAAI,uCAAuC,CAC/C,gEAAgE;oBAC9D,GAAG,UAAU,CAAC,aAAa,OAAO,cAAc,CAAC,YAAY,IAAI;oBACjE,QAAQ,OAAO,0BAA0B;oBACzC,GAAG,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,QAAQ,EAAE,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,39 +1,21 @@
|
|
|
1
1
|
import type { SimS3LambdaFunctionConfigurationInput } from "../../command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.js";
|
|
2
|
-
import type {
|
|
3
|
-
import
|
|
4
|
-
interface SimS3LambdaNotificationProperties {
|
|
5
|
-
readonly id: string;
|
|
6
|
-
readonly functionArn: string;
|
|
7
|
-
readonly events: readonly string[];
|
|
8
|
-
readonly concreteEvents: ReadonlySet<SimS3NotificationEvent>;
|
|
9
|
-
readonly filter: SimS3NotificationFilter;
|
|
10
|
-
}
|
|
2
|
+
import type { SimS3NotificationDestinationService } from "../../notification/destination/sim-s3-notification-destination.js";
|
|
3
|
+
import { SimS3Notification } from "./sim-s3-notification.js";
|
|
11
4
|
/**
|
|
12
5
|
* One Lambda function destination in a Bucket's notification configuration.
|
|
13
|
-
*
|
|
14
|
-
* Both the configured event types and what they expand to are kept: the
|
|
15
|
-
* configured ones are what GetBucketNotificationConfiguration reports back, and
|
|
16
|
-
* the expanded ones are what delivery and the overlap rule work on.
|
|
17
6
|
*/
|
|
18
|
-
export declare class SimS3LambdaNotification {
|
|
19
|
-
readonly id: string;
|
|
20
|
-
readonly functionArn: string;
|
|
21
|
-
readonly events: readonly string[];
|
|
22
|
-
readonly concreteEvents: ReadonlySet<SimS3NotificationEvent>;
|
|
23
|
-
readonly filter: SimS3NotificationFilter;
|
|
24
|
-
constructor(properties: SimS3LambdaNotificationProperties);
|
|
7
|
+
export declare class SimS3LambdaNotification extends SimS3Notification {
|
|
25
8
|
/**
|
|
26
|
-
*
|
|
9
|
+
* The kind of destination this configuration was declared for.
|
|
27
10
|
*/
|
|
28
|
-
|
|
11
|
+
readonly destinationService: SimS3NotificationDestinationService;
|
|
29
12
|
/**
|
|
30
|
-
*
|
|
13
|
+
* Read one LambdaFunctionConfigurations entry.
|
|
31
14
|
*/
|
|
32
|
-
|
|
15
|
+
static fromInput(configuration: SimS3LambdaFunctionConfigurationInput): SimS3LambdaNotification;
|
|
33
16
|
/**
|
|
34
17
|
* This configuration as GetBucketNotificationConfiguration reports it.
|
|
35
18
|
*/
|
|
36
19
|
toOutput(): SimS3LambdaFunctionConfigurationInput;
|
|
37
20
|
}
|
|
38
|
-
export {};
|
|
39
21
|
//# sourceMappingURL=sim-s3-lambda-notification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-lambda-notification.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-lambda-notification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,sGAAsG,CAAC;AAClK,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sim-s3-lambda-notification.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-lambda-notification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,sGAAsG,CAAC;AAClK,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,mEAAmE,CAAC;AAC7H,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D;;OAEG;IACH,SAAgB,kBAAkB,EAAE,mCAAmC,CAC5D;IAEX;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,aAAa,EAAE,qCAAqC,GACnD,uBAAuB,CASzB;IAED;;OAEG;IACH,QAAQ,IAAI,qCAAqC,CAEhD;CACF"}
|
|
@@ -1,46 +1,25 @@
|
|
|
1
|
+
import { SimS3Notification } from "./sim-s3-notification.js";
|
|
2
|
+
import { simS3NotificationProperties } from "./sim-s3-notification-properties.js";
|
|
1
3
|
/**
|
|
2
4
|
* One Lambda function destination in a Bucket's notification configuration.
|
|
3
|
-
*
|
|
4
|
-
* Both the configured event types and what they expand to are kept: the
|
|
5
|
-
* configured ones are what GetBucketNotificationConfiguration reports back, and
|
|
6
|
-
* the expanded ones are what delivery and the overlap rule work on.
|
|
7
5
|
*/
|
|
8
|
-
export class SimS3LambdaNotification {
|
|
9
|
-
id;
|
|
10
|
-
functionArn;
|
|
11
|
-
events;
|
|
12
|
-
concreteEvents;
|
|
13
|
-
filter;
|
|
14
|
-
constructor(properties) {
|
|
15
|
-
this.id = properties.id;
|
|
16
|
-
this.functionArn = properties.functionArn;
|
|
17
|
-
this.events = properties.events;
|
|
18
|
-
this.concreteEvents = properties.concreteEvents;
|
|
19
|
-
this.filter = properties.filter;
|
|
20
|
-
}
|
|
6
|
+
export class SimS3LambdaNotification extends SimS3Notification {
|
|
21
7
|
/**
|
|
22
|
-
*
|
|
8
|
+
* The kind of destination this configuration was declared for.
|
|
23
9
|
*/
|
|
24
|
-
|
|
25
|
-
return this.concreteEvents.has(event) && this.filter.matches(key);
|
|
26
|
-
}
|
|
10
|
+
destinationService = "lambda";
|
|
27
11
|
/**
|
|
28
|
-
*
|
|
12
|
+
* Read one LambdaFunctionConfigurations entry.
|
|
29
13
|
*/
|
|
30
|
-
|
|
31
|
-
return
|
|
14
|
+
static fromInput(configuration) {
|
|
15
|
+
return new SimS3LambdaNotification(simS3NotificationProperties(configuration, configuration.LambdaFunctionArn, "A Lambda function notification configuration must name a " +
|
|
16
|
+
"LambdaFunctionArn."));
|
|
32
17
|
}
|
|
33
18
|
/**
|
|
34
19
|
* This configuration as GetBucketNotificationConfiguration reports it.
|
|
35
20
|
*/
|
|
36
21
|
toOutput() {
|
|
37
|
-
|
|
38
|
-
return {
|
|
39
|
-
Id: this.id,
|
|
40
|
-
LambdaFunctionArn: this.functionArn,
|
|
41
|
-
Events: [...this.events],
|
|
42
|
-
...(filter !== undefined && { Filter: filter }),
|
|
43
|
-
};
|
|
22
|
+
return { ...this.reported(), LambdaFunctionArn: this.destinationArn };
|
|
44
23
|
}
|
|
45
24
|
}
|
|
46
25
|
//# sourceMappingURL=sim-s3-lambda-notification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-lambda-notification.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-lambda-notification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-s3-lambda-notification.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-lambda-notification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAElF;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,iBAAiB;IAC5D;;OAEG;IACa,kBAAkB,GAChC,QAAQ,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,aAAoD;QAEpD,OAAO,IAAI,uBAAuB,CAChC,2BAA2B,CACzB,aAAa,EACb,aAAa,CAAC,iBAAiB,EAC/B,2DAA2D;YACzD,oBAAoB,CACvB,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;IACxE,CAAC;CACF"}
|
|
@@ -4,6 +4,12 @@ import { SimS3NotificationConfiguration } from "./sim-s3-notification-configurat
|
|
|
4
4
|
* Reads a PutBucketNotificationConfiguration request into a Bucket's stored
|
|
5
5
|
* configuration.
|
|
6
6
|
*
|
|
7
|
+
* Each destination group reads its own entries, since the ARN is the only part
|
|
8
|
+
* they spell differently. What is left here is the pair of rules that are about
|
|
9
|
+
* the configuration as a whole rather than about one entry of it, and both look
|
|
10
|
+
* across the groups: real S3 refuses a function and a queue that share an id or
|
|
11
|
+
* want the same event as readily as it refuses two functions.
|
|
12
|
+
*
|
|
7
13
|
* Everything the request states is checked before anything is stored, so a
|
|
8
14
|
* request the simulator refuses leaves the Bucket's previous configuration
|
|
9
15
|
* exactly as it was.
|
|
@@ -13,15 +19,5 @@ export declare class SimS3NotificationConfigurationReader {
|
|
|
13
19
|
* Read a whole notification configuration.
|
|
14
20
|
*/
|
|
15
21
|
read(input: SimS3NotificationConfigurationInput): SimS3NotificationConfiguration;
|
|
16
|
-
private readLambdaNotification;
|
|
17
|
-
/**
|
|
18
|
-
* Refuse a destination group this simulator cannot deliver to.
|
|
19
|
-
*
|
|
20
|
-
* Naming the destination matters more than the refusal: a configuration
|
|
21
|
-
* quietly accepted and never delivered is the failure this feature exists to
|
|
22
|
-
* remove, so an SQS or SNS destination says so rather than being dropped.
|
|
23
|
-
*/
|
|
24
|
-
private refuseUnsimulatedDestinations;
|
|
25
|
-
private refuseRepeatedIds;
|
|
26
22
|
}
|
|
27
23
|
//# sourceMappingURL=sim-s3-notification-configuration-reader.d.ts.map
|
package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-notification-configuration-reader.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-configuration-reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-configuration-reader.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-configuration-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sGAAsG,CAAC;AAEhK,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAMxF;;;;;;;;;;;;;GAaG;AACH,qBAAa,oCAAoC;IAC/C;;OAEG;IACH,IAAI,CACF,KAAK,EAAE,mCAAmC,GACzC,8BAA8B,CAgBhC;CACF"}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { SimS3InvalidArgument, SimS3NotImplemented, } from "../../error/sim-s3.error.js";
|
|
3
1
|
import { SimS3LambdaNotification } from "./sim-s3-lambda-notification.js";
|
|
4
2
|
import { SimS3NotificationConfiguration } from "./sim-s3-notification-configuration.js";
|
|
5
|
-
import {
|
|
6
|
-
import { SimS3NotificationFilter } from "./sim-s3-notification-filter.js";
|
|
3
|
+
import { simS3AssertNotificationIdsAreUnique } from "./sim-s3-notification-ids.js";
|
|
7
4
|
import { simS3AssertNoNotificationOverlap } from "./sim-s3-notification-overlap.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* deliver to, and what to say about each.
|
|
11
|
-
*/
|
|
12
|
-
const unsimulatedDestinations = new Map([
|
|
13
|
-
["QueueConfigurations", "SQS queue"],
|
|
14
|
-
["TopicConfigurations", "SNS topic"],
|
|
15
|
-
["EventBridgeConfiguration", "EventBridge"],
|
|
16
|
-
]);
|
|
5
|
+
import { SimS3QueueNotification } from "./sim-s3-queue-notification.js";
|
|
6
|
+
import { simS3RefuseUnsimulatedDestinations } from "./sim-s3-unsimulated-notification-destinations.js";
|
|
17
7
|
/**
|
|
18
8
|
* Reads a PutBucketNotificationConfiguration request into a Bucket's stored
|
|
19
9
|
* configuration.
|
|
20
10
|
*
|
|
11
|
+
* Each destination group reads its own entries, since the ARN is the only part
|
|
12
|
+
* they spell differently. What is left here is the pair of rules that are about
|
|
13
|
+
* the configuration as a whole rather than about one entry of it, and both look
|
|
14
|
+
* across the groups: real S3 refuses a function and a queue that share an id or
|
|
15
|
+
* want the same event as readily as it refuses two functions.
|
|
16
|
+
*
|
|
21
17
|
* Everything the request states is checked before anything is stored, so a
|
|
22
18
|
* request the simulator refuses leaves the Bucket's previous configuration
|
|
23
19
|
* exactly as it was.
|
|
@@ -27,62 +23,14 @@ export class SimS3NotificationConfigurationReader {
|
|
|
27
23
|
* Read a whole notification configuration.
|
|
28
24
|
*/
|
|
29
25
|
read(input) {
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return new SimS3NotificationConfiguration(notifications);
|
|
35
|
-
}
|
|
36
|
-
readLambdaNotification(configuration) {
|
|
37
|
-
const functionArn = configuration.LambdaFunctionArn;
|
|
38
|
-
if (functionArn === undefined || functionArn === "") {
|
|
39
|
-
throw new SimS3InvalidArgument("A Lambda function notification configuration must name a " +
|
|
40
|
-
"LambdaFunctionArn.");
|
|
41
|
-
}
|
|
42
|
-
const events = configuration.Events ?? [];
|
|
43
|
-
if (events.length === 0) {
|
|
44
|
-
throw new SimS3InvalidArgument(`Notification configuration for ${functionArn} names no events.`);
|
|
45
|
-
}
|
|
46
|
-
return new SimS3LambdaNotification({
|
|
47
|
-
// S3 generates a configuration id for a configuration that omits one,
|
|
48
|
-
// and reports it back through GetBucketNotificationConfiguration.
|
|
49
|
-
id: configuration.Id ?? randomUUID(),
|
|
50
|
-
functionArn,
|
|
51
|
-
events,
|
|
52
|
-
concreteEvents: new Set(events.flatMap((event) => simS3ExpandNotificationEvent(event))),
|
|
53
|
-
filter: SimS3NotificationFilter.fromInput(configuration.Filter),
|
|
26
|
+
simS3RefuseUnsimulatedDestinations(input);
|
|
27
|
+
const configuration = new SimS3NotificationConfiguration({
|
|
28
|
+
lambdaNotifications: (input.LambdaFunctionConfigurations ?? []).map((entry) => SimS3LambdaNotification.fromInput(entry)),
|
|
29
|
+
queueNotifications: (input.QueueConfigurations ?? []).map((entry) => SimS3QueueNotification.fromInput(entry)),
|
|
54
30
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
*
|
|
59
|
-
* Naming the destination matters more than the refusal: a configuration
|
|
60
|
-
* quietly accepted and never delivered is the failure this feature exists to
|
|
61
|
-
* remove, so an SQS or SNS destination says so rather than being dropped.
|
|
62
|
-
*/
|
|
63
|
-
refuseUnsimulatedDestinations(input) {
|
|
64
|
-
for (const [property, destination] of unsimulatedDestinations) {
|
|
65
|
-
// Read-only lookup of a fixed set of property names.
|
|
66
|
-
const configured = input[property];
|
|
67
|
-
if (configured === undefined) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
if (Array.isArray(configured) && configured.length === 0) {
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
throw new SimS3NotImplemented(`Simulated S3 cannot notify a ${destination}. ${property} is not ` +
|
|
74
|
-
"simulated; use LambdaFunctionConfigurations.");
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
refuseRepeatedIds(notifications) {
|
|
78
|
-
const seen = new Set();
|
|
79
|
-
for (const notification of notifications) {
|
|
80
|
-
if (seen.has(notification.id)) {
|
|
81
|
-
throw new SimS3InvalidArgument(`Configuration id ${notification.id} is used more than once. ` +
|
|
82
|
-
"Configuration ids must be unique within a Bucket.");
|
|
83
|
-
}
|
|
84
|
-
seen.add(notification.id);
|
|
85
|
-
}
|
|
31
|
+
simS3AssertNotificationIdsAreUnique(configuration.all);
|
|
32
|
+
simS3AssertNoNotificationOverlap(configuration.all);
|
|
33
|
+
return configuration;
|
|
86
34
|
}
|
|
87
35
|
}
|
|
88
36
|
//# sourceMappingURL=sim-s3-notification-configuration-reader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-notification-configuration-reader.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-configuration-reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-configuration-reader.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-configuration-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kCAAkC,EAAE,MAAM,mDAAmD,CAAC;AAEvG;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,oCAAoC;IAC/C;;OAEG;IACH,IAAI,CACF,KAA0C;QAE1C,kCAAkC,CAAC,KAAK,CAAC,CAAC;QAE1C,MAAM,aAAa,GAAG,IAAI,8BAA8B,CAAC;YACvD,mBAAmB,EAAE,CAAC,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,GAAG,CACjE,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CACpD;YACD,kBAAkB,EAAE,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CACxC;SACF,CAAC,CAAC;QAEH,mCAAmC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvD,gCAAgC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAEpD,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -1,28 +1,40 @@
|
|
|
1
1
|
import type { SimS3NotificationConfigurationOutput } from "../../command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.js";
|
|
2
2
|
import type { SimS3LambdaNotification } from "./sim-s3-lambda-notification.js";
|
|
3
|
+
import type { SimS3Notification } from "./sim-s3-notification.js";
|
|
3
4
|
import type { SimS3NotificationEvent } from "./sim-s3-notification-event.js";
|
|
5
|
+
import type { SimS3QueueNotification } from "./sim-s3-queue-notification.js";
|
|
6
|
+
interface SimS3NotificationConfigurationProperties {
|
|
7
|
+
readonly lambdaNotifications?: readonly SimS3LambdaNotification[];
|
|
8
|
+
readonly queueNotifications?: readonly SimS3QueueNotification[];
|
|
9
|
+
}
|
|
4
10
|
/**
|
|
5
11
|
* The event notification configuration of one simulated S3 Bucket.
|
|
6
12
|
*
|
|
7
13
|
* A Bucket has one configuration rather than a list of them, which is why
|
|
8
14
|
* PutBucketNotificationConfiguration replaces the whole thing: real S3 has no
|
|
9
15
|
* way to add one destination without restating the others.
|
|
16
|
+
*
|
|
17
|
+
* The destination groups are held apart because that is how they go in and come
|
|
18
|
+
* back out. Everything that acts on a configuration, the overlap rule, the
|
|
19
|
+
* destination check and delivery, works on `all` instead, since none of them
|
|
20
|
+
* cares which kind of destination it is looking at.
|
|
10
21
|
*/
|
|
11
22
|
export declare class SimS3NotificationConfiguration {
|
|
12
23
|
readonly lambdaNotifications: readonly SimS3LambdaNotification[];
|
|
13
|
-
|
|
24
|
+
readonly queueNotifications: readonly SimS3QueueNotification[];
|
|
25
|
+
constructor(properties?: SimS3NotificationConfigurationProperties);
|
|
14
26
|
/**
|
|
15
27
|
* The configuration a Bucket nobody has configured has.
|
|
16
28
|
*/
|
|
17
29
|
static empty(): SimS3NotificationConfiguration;
|
|
18
30
|
/**
|
|
19
|
-
*
|
|
31
|
+
* Every configured destination, whatever kind it is.
|
|
20
32
|
*/
|
|
21
|
-
get
|
|
33
|
+
get all(): readonly SimS3Notification[];
|
|
22
34
|
/**
|
|
23
35
|
* The destinations an event about an object key should reach.
|
|
24
36
|
*/
|
|
25
|
-
matching(event: SimS3NotificationEvent, key: string): readonly
|
|
37
|
+
matching(event: SimS3NotificationEvent, key: string): readonly SimS3Notification[];
|
|
26
38
|
/**
|
|
27
39
|
* This configuration as GetBucketNotificationConfiguration reports it.
|
|
28
40
|
*
|
|
@@ -31,4 +43,5 @@ export declare class SimS3NotificationConfiguration {
|
|
|
31
43
|
*/
|
|
32
44
|
toOutput(): SimS3NotificationConfigurationOutput;
|
|
33
45
|
}
|
|
46
|
+
export {};
|
|
34
47
|
//# sourceMappingURL=sim-s3-notification-configuration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-notification-configuration.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,sGAAsG,CAAC;AACjK,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-configuration.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,sGAAsG,CAAC;AACjK,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,UAAU,wCAAwC;IAChD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAClE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACjE;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,8BAA8B;IACzC,SAAgB,mBAAmB,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACxE,SAAgB,kBAAkB,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAEtE,YAAY,UAAU,GAAE,wCAA6C,EAGpE;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,8BAA8B,CAE7C;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,SAAS,iBAAiB,EAAE,CAEtC;IAED;;OAEG;IACH,QAAQ,CACN,KAAK,EAAE,sBAAsB,EAC7B,GAAG,EAAE,MAAM,GACV,SAAS,iBAAiB,EAAE,CAE9B;IAED;;;;;OAKG;IACH,QAAQ,IAAI,oCAAoC,CAa/C;CACF"}
|
|
@@ -4,11 +4,18 @@
|
|
|
4
4
|
* A Bucket has one configuration rather than a list of them, which is why
|
|
5
5
|
* PutBucketNotificationConfiguration replaces the whole thing: real S3 has no
|
|
6
6
|
* way to add one destination without restating the others.
|
|
7
|
+
*
|
|
8
|
+
* The destination groups are held apart because that is how they go in and come
|
|
9
|
+
* back out. Everything that acts on a configuration, the overlap rule, the
|
|
10
|
+
* destination check and delivery, works on `all` instead, since none of them
|
|
11
|
+
* cares which kind of destination it is looking at.
|
|
7
12
|
*/
|
|
8
13
|
export class SimS3NotificationConfiguration {
|
|
9
14
|
lambdaNotifications;
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
queueNotifications;
|
|
16
|
+
constructor(properties = {}) {
|
|
17
|
+
this.lambdaNotifications = properties.lambdaNotifications ?? [];
|
|
18
|
+
this.queueNotifications = properties.queueNotifications ?? [];
|
|
12
19
|
}
|
|
13
20
|
/**
|
|
14
21
|
* The configuration a Bucket nobody has configured has.
|
|
@@ -17,16 +24,16 @@ export class SimS3NotificationConfiguration {
|
|
|
17
24
|
return new SimS3NotificationConfiguration();
|
|
18
25
|
}
|
|
19
26
|
/**
|
|
20
|
-
*
|
|
27
|
+
* Every configured destination, whatever kind it is.
|
|
21
28
|
*/
|
|
22
|
-
get
|
|
23
|
-
return this.lambdaNotifications.
|
|
29
|
+
get all() {
|
|
30
|
+
return [...this.lambdaNotifications, ...this.queueNotifications];
|
|
24
31
|
}
|
|
25
32
|
/**
|
|
26
33
|
* The destinations an event about an object key should reach.
|
|
27
34
|
*/
|
|
28
35
|
matching(event, key) {
|
|
29
|
-
return this.
|
|
36
|
+
return this.all.filter((notification) => notification.matches(event, key));
|
|
30
37
|
}
|
|
31
38
|
/**
|
|
32
39
|
* This configuration as GetBucketNotificationConfiguration reports it.
|
|
@@ -35,11 +42,13 @@ export class SimS3NotificationConfiguration {
|
|
|
35
42
|
* empty, which is what real S3 answers for a Bucket with no configuration.
|
|
36
43
|
*/
|
|
37
44
|
toOutput() {
|
|
38
|
-
if (this.notifiesNothing) {
|
|
39
|
-
return {};
|
|
40
|
-
}
|
|
41
45
|
return {
|
|
42
|
-
|
|
46
|
+
...(this.lambdaNotifications.length > 0 && {
|
|
47
|
+
LambdaFunctionConfigurations: this.lambdaNotifications.map((notification) => notification.toOutput()),
|
|
48
|
+
}),
|
|
49
|
+
...(this.queueNotifications.length > 0 && {
|
|
50
|
+
QueueConfigurations: this.queueNotifications.map((notification) => notification.toOutput()),
|
|
51
|
+
}),
|
|
43
52
|
};
|
|
44
53
|
}
|
|
45
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-notification-configuration.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-configuration.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-configuration.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,8BAA8B;IACzB,mBAAmB,CAAqC;IACxD,kBAAkB,CAAoC;IAEtE,YAAY,UAAU,GAA6C,EAAE;QACnE,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,8BAA8B,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,KAA6B,EAC7B,GAAW;QAEX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO;YACL,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI;gBACzC,4BAA4B,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CACxD,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,CAC1C;aACF,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI;gBACxC,mBAAmB,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAChE,YAAY,CAAC,QAAQ,EAAE,CACxB;aACF,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SimS3Notification } from "./sim-s3-notification.js";
|
|
2
|
+
/**
|
|
3
|
+
* Refuse a configuration that uses one id twice.
|
|
4
|
+
*
|
|
5
|
+
* Ids are unique within a Bucket rather than within a destination group, so a
|
|
6
|
+
* function and a queue cannot share one either.
|
|
7
|
+
*/
|
|
8
|
+
export declare function simS3AssertNotificationIdsAreUnique(notifications: readonly SimS3Notification[]): void;
|
|
9
|
+
//# sourceMappingURL=sim-s3-notification-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-ids.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-ids.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,aAAa,EAAE,SAAS,iBAAiB,EAAE,GAC1C,IAAI,CAaN"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SimS3InvalidArgument } from "../../error/sim-s3.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* Refuse a configuration that uses one id twice.
|
|
4
|
+
*
|
|
5
|
+
* Ids are unique within a Bucket rather than within a destination group, so a
|
|
6
|
+
* function and a queue cannot share one either.
|
|
7
|
+
*/
|
|
8
|
+
export function simS3AssertNotificationIdsAreUnique(notifications) {
|
|
9
|
+
const seen = new Set();
|
|
10
|
+
for (const notification of notifications) {
|
|
11
|
+
if (seen.has(notification.id)) {
|
|
12
|
+
throw new SimS3InvalidArgument(`Configuration id ${notification.id} is used more than once. ` +
|
|
13
|
+
"Configuration ids must be unique within a Bucket.");
|
|
14
|
+
}
|
|
15
|
+
seen.add(notification.id);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=sim-s3-notification-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-ids.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,UAAU,mCAAmC,CACjD,aAA2C;IAE3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,oBAAoB,CAC5B,oBAAoB,YAAY,CAAC,EAAE,2BAA2B;gBAC5D,mDAAmD,CACtD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SimS3Notification } from "./sim-s3-notification.js";
|
|
2
2
|
/**
|
|
3
3
|
* Refuse a configuration whose destinations would both want the same event.
|
|
4
4
|
*
|
|
@@ -10,7 +10,9 @@ import type { SimS3LambdaNotification } from "./sim-s3-lambda-notification.js";
|
|
|
10
10
|
*
|
|
11
11
|
* The comparison is on expanded event sets rather than on the configured event
|
|
12
12
|
* strings, so `s3:ObjectCreated:*` conflicts with `s3:ObjectCreated:Put` as it
|
|
13
|
-
* does on real S3.
|
|
13
|
+
* does on real S3. It is across every destination rather than within one group,
|
|
14
|
+
* because real S3 refuses a function and a queue that both want an event just
|
|
15
|
+
* as it refuses two functions.
|
|
14
16
|
*/
|
|
15
|
-
export declare function simS3AssertNoNotificationOverlap(notifications: readonly
|
|
17
|
+
export declare function simS3AssertNoNotificationOverlap(notifications: readonly SimS3Notification[]): void;
|
|
16
18
|
//# sourceMappingURL=sim-s3-notification-overlap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-notification-overlap.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-overlap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-overlap.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-overlap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,SAAS,iBAAiB,EAAE,GAC1C,IAAI,CAiBN"}
|
|
@@ -10,7 +10,9 @@ import { SimS3InvalidArgument } from "../../error/sim-s3.error.js";
|
|
|
10
10
|
*
|
|
11
11
|
* The comparison is on expanded event sets rather than on the configured event
|
|
12
12
|
* strings, so `s3:ObjectCreated:*` conflicts with `s3:ObjectCreated:Put` as it
|
|
13
|
-
* does on real S3.
|
|
13
|
+
* does on real S3. It is across every destination rather than within one group,
|
|
14
|
+
* because real S3 refuses a function and a queue that both want an event just
|
|
15
|
+
* as it refuses two functions.
|
|
14
16
|
*/
|
|
15
17
|
export function simS3AssertNoNotificationOverlap(notifications) {
|
|
16
18
|
for (const [index, notification] of notifications.entries()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-notification-overlap.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-overlap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-overlap.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-overlap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gCAAgC,CAC9C,aAA2C;IAE3C,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE5C,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,IACE,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBACpC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAC1C,CAAC;gBACD,MAAM,IAAI,oBAAoB,CAC5B,kBAAkB,YAAY,CAAC,EAAE,QAAQ,KAAK,CAAC,EAAE,YAAY;oBAC3D,+DAA+D;oBAC/D,6DAA6D,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SimS3NotificationFilterInput } from "../../command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.js";
|
|
2
|
+
import type { SimS3NotificationProperties } from "./sim-s3-notification.js";
|
|
3
|
+
/**
|
|
4
|
+
* One destination group's shared shape on the way in.
|
|
5
|
+
*
|
|
6
|
+
* The destination ARN is the only part a group names differently, so it is
|
|
7
|
+
* passed alongside rather than read from here.
|
|
8
|
+
*/
|
|
9
|
+
export interface SimS3NotificationInput {
|
|
10
|
+
readonly Id?: string | undefined;
|
|
11
|
+
readonly Events?: readonly string[] | undefined;
|
|
12
|
+
readonly Filter?: SimS3NotificationFilterInput | undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Read one destination configuration into the parts a stored notification is
|
|
16
|
+
* built from.
|
|
17
|
+
*/
|
|
18
|
+
export declare function simS3NotificationProperties(configuration: SimS3NotificationInput, destinationArn: string | undefined, missingArnReason: string): SimS3NotificationProperties;
|
|
19
|
+
//# sourceMappingURL=sim-s3-notification-properties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-properties.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-properties.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sGAAsG,CAAC;AAEzJ,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAI5E;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;CAC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,sBAAsB,EACrC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,gBAAgB,EAAE,MAAM,GACvB,2BAA2B,CAwB7B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { SimS3InvalidArgument } from "../../error/sim-s3.error.js";
|
|
3
|
+
import { simS3ExpandNotificationEvent } from "./sim-s3-notification-event.js";
|
|
4
|
+
import { SimS3NotificationFilter } from "./sim-s3-notification-filter.js";
|
|
5
|
+
/**
|
|
6
|
+
* Read one destination configuration into the parts a stored notification is
|
|
7
|
+
* built from.
|
|
8
|
+
*/
|
|
9
|
+
export function simS3NotificationProperties(configuration, destinationArn, missingArnReason) {
|
|
10
|
+
if (destinationArn === undefined || destinationArn === "") {
|
|
11
|
+
throw new SimS3InvalidArgument(missingArnReason);
|
|
12
|
+
}
|
|
13
|
+
const events = configuration.Events ?? [];
|
|
14
|
+
if (events.length === 0) {
|
|
15
|
+
throw new SimS3InvalidArgument(`Notification configuration for ${destinationArn} names no events.`);
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
// S3 generates a configuration id for a configuration that omits one, and
|
|
19
|
+
// reports it back through GetBucketNotificationConfiguration.
|
|
20
|
+
id: configuration.Id ?? randomUUID(),
|
|
21
|
+
destinationArn,
|
|
22
|
+
events,
|
|
23
|
+
concreteEvents: new Set(events.flatMap((event) => simS3ExpandNotificationEvent(event))),
|
|
24
|
+
filter: SimS3NotificationFilter.fromInput(configuration.Filter),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sim-s3-notification-properties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-notification-properties.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/notification/sim-s3-notification-properties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAc1E;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,aAAqC,EACrC,cAAkC,EAClC,gBAAwB;IAExB,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,IAAI,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC;IAE1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,oBAAoB,CAC5B,kCAAkC,cAAc,mBAAmB,CACpE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,0EAA0E;QAC1E,8DAA8D;QAC9D,EAAE,EAAE,aAAa,CAAC,EAAE,IAAI,UAAU,EAAE;QACpC,cAAc;QACd,MAAM;QACN,cAAc,EAAE,IAAI,GAAG,CACrB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAC/D;QACD,MAAM,EAAE,uBAAuB,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;KAChE,CAAC;AACJ,CAAC"}
|