@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
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which images a record carries, which is the whole of what a view type does.
|
|
3
|
+
*
|
|
4
|
+
* The degenerate shapes are the point of reading this as a matrix rather than
|
|
5
|
+
* as a choice per record: a removal on a `NEW_IMAGE` stream has no new image to
|
|
6
|
+
* carry, and an insertion on an `OLD_IMAGE` stream has no old one, so both come
|
|
7
|
+
* out as keys and nothing else. Real DynamoDB still writes those records, and
|
|
8
|
+
* so does this, since the record is how a reader learns the change happened at
|
|
9
|
+
* all.
|
|
10
|
+
*/
|
|
11
|
+
export function simDynamoDbStreamImages(change, viewType) {
|
|
12
|
+
switch (viewType) {
|
|
13
|
+
case "KEYS_ONLY": {
|
|
14
|
+
return { newImage: undefined, oldImage: undefined };
|
|
15
|
+
}
|
|
16
|
+
case "NEW_IMAGE": {
|
|
17
|
+
return { newImage: change.newImage, oldImage: undefined };
|
|
18
|
+
}
|
|
19
|
+
case "OLD_IMAGE": {
|
|
20
|
+
return { newImage: undefined, oldImage: change.oldImage };
|
|
21
|
+
}
|
|
22
|
+
case "NEW_AND_OLD_IMAGES": {
|
|
23
|
+
return { newImage: change.newImage, oldImage: change.oldImage };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sim-dynamodb-stream-images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-images.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-images.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA6B,EAC7B,QAAmC;IAEnC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACtD,CAAC;QACD,KAAK,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC5D,CAAC;QACD,KAAK,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC5D,CAAC;QACD,KAAK,oBAAoB,EAAE,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
2
|
+
import type { SimDynamoDbKeySchema } from "../table/sim-dynamodb-key-schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* The `Keys` of a stream record, cut from the item that changed.
|
|
5
|
+
*
|
|
6
|
+
* Every record carries these, whatever view type the stream was enabled with,
|
|
7
|
+
* because a reader that cannot say which item changed cannot do anything with
|
|
8
|
+
* the record. A `KEYS_ONLY` stream is that and nothing else.
|
|
9
|
+
*
|
|
10
|
+
* The item is whichever image the change has: an insertion and a modification
|
|
11
|
+
* have a new one, a removal has only the old one, and the key attributes are
|
|
12
|
+
* the same in either since an update cannot move an item's primary key.
|
|
13
|
+
*/
|
|
14
|
+
export declare function simDynamoDbStreamRecordKeys(item: SimDynamoDbItem, keySchema: SimDynamoDbKeySchema): SimDynamoDbItem;
|
|
15
|
+
//# sourceMappingURL=sim-dynamodb-stream-record-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-record-keys.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-record-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,oBAAoB,GAC9B,eAAe,CAajB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { assertDefined } from "../../../util/type-guard/defined.js";
|
|
2
|
+
import { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
3
|
+
/**
|
|
4
|
+
* The `Keys` of a stream record, cut from the item that changed.
|
|
5
|
+
*
|
|
6
|
+
* Every record carries these, whatever view type the stream was enabled with,
|
|
7
|
+
* because a reader that cannot say which item changed cannot do anything with
|
|
8
|
+
* the record. A `KEYS_ONLY` stream is that and nothing else.
|
|
9
|
+
*
|
|
10
|
+
* The item is whichever image the change has: an insertion and a modification
|
|
11
|
+
* have a new one, a removal has only the old one, and the key attributes are
|
|
12
|
+
* the same in either since an update cannot move an item's primary key.
|
|
13
|
+
*/
|
|
14
|
+
export function simDynamoDbStreamRecordKeys(item, keySchema) {
|
|
15
|
+
const attributes = new Map();
|
|
16
|
+
for (const attributeName of keySchema.attributeNames()) {
|
|
17
|
+
const value = item.attribute(attributeName);
|
|
18
|
+
// An item is stored under its primary key, so one that changed carries
|
|
19
|
+
// every key attribute. Missing one would be the simulator's own fault.
|
|
20
|
+
assertDefined(value, `DynamoDB key attribute ${attributeName}`);
|
|
21
|
+
attributes.set(attributeName, value);
|
|
22
|
+
}
|
|
23
|
+
return SimDynamoDbItem.ofAttributes(attributes);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=sim-dynamodb-stream-record-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-record-keys.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-record-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAI/D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAqB,EACrB,SAA+B;IAE/B,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEvD,KAAK,MAAM,aAAa,IAAI,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE5C,uEAAuE;QACvE,uEAAuE;QACvE,aAAa,CAAC,KAAK,EAAE,0BAA0B,aAAa,EAAE,CAAC,CAAC;QAChE,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
2
|
+
/**
|
|
3
|
+
* The `SizeBytes` of a stream record carrying these images.
|
|
4
|
+
*
|
|
5
|
+
* Every image the record carries counts, together rather than one at a time:
|
|
6
|
+
* the keys, and then whichever of the old and new images the view type
|
|
7
|
+
* selected. A record carrying both images is close to twice the size of one
|
|
8
|
+
* carrying either, which is what AWS's published samples show.
|
|
9
|
+
*/
|
|
10
|
+
export declare function simDynamoDbStreamRecordSize(images: readonly SimDynamoDbItem[]): number;
|
|
11
|
+
//# sourceMappingURL=sim-dynamodb-stream-record-size.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-record-size.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-record-size.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAuFpE;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC,MAAM,CAER"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { simDynamoDbBinaryText } from "../item/sim-dynamodb-binary.js";
|
|
2
|
+
import { simDynamoDbTextSize } from "../item/sim-dynamodb-value-size.js";
|
|
3
|
+
/**
|
|
4
|
+
* The bytes one value counts towards a stream record's size.
|
|
5
|
+
*
|
|
6
|
+
* This is not `simDynamoDbValueSize`, and the difference is deliberate. That
|
|
7
|
+
* one implements the 400 KB item rule, where a number costs
|
|
8
|
+
* `ceil(significantDigits / 2) + 1` and a list or a map carries three bytes of
|
|
9
|
+
* overhead. A stream record is measured as the text it carries instead, so an
|
|
10
|
+
* eight digit number costs 8 here and 5 there. The two agree on AWS's own
|
|
11
|
+
* published samples only because `101` is three characters either way.
|
|
12
|
+
*
|
|
13
|
+
* A boolean and a null are the text the record carries them as, `true` or
|
|
14
|
+
* `false`, and a collection is its elements with no overhead. AWS publishes no
|
|
15
|
+
* sample covering those, so they follow the same rule the rest do rather than
|
|
16
|
+
* inventing a second one.
|
|
17
|
+
*/
|
|
18
|
+
function streamValueSize(value) {
|
|
19
|
+
switch (value.kind) {
|
|
20
|
+
case "S": {
|
|
21
|
+
return simDynamoDbTextSize(value.text);
|
|
22
|
+
}
|
|
23
|
+
case "N": {
|
|
24
|
+
return simDynamoDbTextSize(value.number.text);
|
|
25
|
+
}
|
|
26
|
+
case "B": {
|
|
27
|
+
return simDynamoDbTextSize(simDynamoDbBinaryText(value.bytes));
|
|
28
|
+
}
|
|
29
|
+
case "BOOL": {
|
|
30
|
+
return simDynamoDbTextSize(String(value.boolean));
|
|
31
|
+
}
|
|
32
|
+
case "NULL": {
|
|
33
|
+
return simDynamoDbTextSize("true");
|
|
34
|
+
}
|
|
35
|
+
case "SS": {
|
|
36
|
+
return value.texts.reduce((total, text) => total + simDynamoDbTextSize(text), 0);
|
|
37
|
+
}
|
|
38
|
+
case "NS": {
|
|
39
|
+
return value.numbers.reduce((total, number) => total + simDynamoDbTextSize(number.text), 0);
|
|
40
|
+
}
|
|
41
|
+
case "BS": {
|
|
42
|
+
return value.bytes.reduce((total, bytes) => total + simDynamoDbTextSize(simDynamoDbBinaryText(bytes)), 0);
|
|
43
|
+
}
|
|
44
|
+
case "L": {
|
|
45
|
+
return value.values.reduce((total, element) => total + streamValueSize(element), 0);
|
|
46
|
+
}
|
|
47
|
+
case "M": {
|
|
48
|
+
return value.entries
|
|
49
|
+
.entries()
|
|
50
|
+
.reduce((total, [name, element]) => total + simDynamoDbTextSize(name) + streamValueSize(element), 0);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The bytes one image counts towards a stream record's size.
|
|
56
|
+
*/
|
|
57
|
+
function streamImageSize(image) {
|
|
58
|
+
return image
|
|
59
|
+
.entries()
|
|
60
|
+
.entries()
|
|
61
|
+
.reduce((total, [name, value]) => total + simDynamoDbTextSize(name) + streamValueSize(value), 0);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The `SizeBytes` of a stream record carrying these images.
|
|
65
|
+
*
|
|
66
|
+
* Every image the record carries counts, together rather than one at a time:
|
|
67
|
+
* the keys, and then whichever of the old and new images the view type
|
|
68
|
+
* selected. A record carrying both images is close to twice the size of one
|
|
69
|
+
* carrying either, which is what AWS's published samples show.
|
|
70
|
+
*/
|
|
71
|
+
export function simDynamoDbStreamRecordSize(images) {
|
|
72
|
+
return images.reduce((total, image) => total + streamImageSize(image), 0);
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=sim-dynamodb-stream-record-size.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-record-size.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-record-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE;;;;;;;;;;;;;;GAcG;AACH,SAAS,eAAe,CAAC,KAAuB;IAC9C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,GAAG,EAAE,CAAC;YACT,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,GAAG,EAAE,CAAC;YACT,OAAO,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,GAAG,EAAE,CAAC;YACT,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,OAAO,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CACvB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAClD,CAAC,CACF,CAAC;QACJ,CAAC;QACD,KAAK,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CACzB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3D,CAAC,CACF,CAAC;QACJ,CAAC;QACD,KAAK,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CACvB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,KAAK,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAC3D,CAAC,CACF,CAAC;QACJ,CAAC;QACD,KAAK,GAAG,EAAE,CAAC;YACT,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CACxB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,EACpD,CAAC,CACF,CAAC;QACJ,CAAC;QACD,KAAK,GAAG,EAAE,CAAC;YACT,OAAO,KAAK,CAAC,OAAO;iBACjB,OAAO,EAAE;iBACT,MAAM,CACL,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CACzB,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,EAC9D,CAAC,CACF,CAAC;QACN,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAsB;IAC7C,OAAO,KAAK;SACT,OAAO,EAAE;SACT,OAAO,EAAE;SACT,MAAM,CACL,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CACvB,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,EAC5D,CAAC,CACF,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAAkC;IAElC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { SimDynamoDbStreamViewType } from "./sim-dynamodb-stream.types.js";
|
|
2
|
+
import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
3
|
+
import type { SimDynamoDbKeySchema } from "../table/sim-dynamodb-key-schema.js";
|
|
4
|
+
import type { SimDynamoDbItemChange } from "./sim-dynamodb-item-change.js";
|
|
5
|
+
/**
|
|
6
|
+
* What kind of change one stream record reports.
|
|
7
|
+
*/
|
|
8
|
+
export type SimDynamoDbStreamEventName = "INSERT" | "MODIFY" | "REMOVE";
|
|
9
|
+
/**
|
|
10
|
+
* Who made the change a record reports, when it was not the application.
|
|
11
|
+
*
|
|
12
|
+
* Only a time to live deletion carries one. It is how an application tells a
|
|
13
|
+
* deletion it never asked for from one of its own, which matters because the
|
|
14
|
+
* two want completely different handling downstream.
|
|
15
|
+
*/
|
|
16
|
+
export interface SimDynamoDbStreamUserIdentity {
|
|
17
|
+
readonly type: "Service";
|
|
18
|
+
readonly principalId: "dynamodb.amazonaws.com";
|
|
19
|
+
}
|
|
20
|
+
interface SimDynamoDbStreamRecordProperties {
|
|
21
|
+
readonly change: SimDynamoDbItemChange;
|
|
22
|
+
readonly keySchema: SimDynamoDbKeySchema;
|
|
23
|
+
readonly viewType: SimDynamoDbStreamViewType;
|
|
24
|
+
readonly sequenceNumber: string;
|
|
25
|
+
readonly at: Date;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* One record on a table's stream: one change, as the stream carries it.
|
|
29
|
+
*
|
|
30
|
+
* A record is fixed once it is written. The images it holds are the items as
|
|
31
|
+
* they were at the moment of the change, rather than references to whatever the
|
|
32
|
+
* table holds now, which is what makes a stream a log of transitions rather
|
|
33
|
+
* than a view of the table.
|
|
34
|
+
*/
|
|
35
|
+
export declare class SimDynamoDbStreamRecord {
|
|
36
|
+
readonly eventId: string;
|
|
37
|
+
readonly eventName: SimDynamoDbStreamEventName;
|
|
38
|
+
readonly sequenceNumber: string;
|
|
39
|
+
readonly approximateCreationDateTime: Date;
|
|
40
|
+
readonly streamViewType: SimDynamoDbStreamViewType;
|
|
41
|
+
readonly keys: SimDynamoDbItem;
|
|
42
|
+
readonly newImage: SimDynamoDbItem | undefined;
|
|
43
|
+
readonly oldImage: SimDynamoDbItem | undefined;
|
|
44
|
+
readonly sizeBytes: number;
|
|
45
|
+
readonly userIdentity: SimDynamoDbStreamUserIdentity | undefined;
|
|
46
|
+
constructor(properties: SimDynamoDbStreamRecordProperties);
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=sim-dynamodb-stream-record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-record.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-record.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAK3E;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;CAChD;AAUD,UAAU,iCAAiC;IACzC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CACnB;AAeD;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,SAAS,EAAE,0BAA0B,CAAC;IACtD,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,2BAA2B,EAAE,IAAI,CAAC;IAClD,SAAgB,cAAc,EAAE,yBAAyB,CAAC;IAC1D,SAAgB,IAAI,EAAE,eAAe,CAAC;IACtC,SAAgB,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;IACtD,SAAgB,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;IACtD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,YAAY,EAAE,6BAA6B,GAAG,SAAS,CAAC;IAExE,YAAY,UAAU,EAAE,iCAAiC,EAwBxD;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { assertDefined } from "../../../util/type-guard/defined.js";
|
|
3
|
+
import { simDynamoDbStreamImages } from "./sim-dynamodb-stream-images.js";
|
|
4
|
+
import { simDynamoDbStreamRecordKeys } from "./sim-dynamodb-stream-record-keys.js";
|
|
5
|
+
import { simDynamoDbStreamRecordSize } from "./sim-dynamodb-stream-record-size.js";
|
|
6
|
+
/**
|
|
7
|
+
* The identity a time to live deletion is written under.
|
|
8
|
+
*/
|
|
9
|
+
const timeToLiveIdentity = {
|
|
10
|
+
type: "Service",
|
|
11
|
+
principalId: "dynamodb.amazonaws.com",
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Which of the three kinds of change these images are.
|
|
15
|
+
*/
|
|
16
|
+
function eventNameOf(change) {
|
|
17
|
+
if (change.newImage === undefined) {
|
|
18
|
+
return "REMOVE";
|
|
19
|
+
}
|
|
20
|
+
return change.oldImage === undefined ? "INSERT" : "MODIFY";
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* One record on a table's stream: one change, as the stream carries it.
|
|
24
|
+
*
|
|
25
|
+
* A record is fixed once it is written. The images it holds are the items as
|
|
26
|
+
* they were at the moment of the change, rather than references to whatever the
|
|
27
|
+
* table holds now, which is what makes a stream a log of transitions rather
|
|
28
|
+
* than a view of the table.
|
|
29
|
+
*/
|
|
30
|
+
export class SimDynamoDbStreamRecord {
|
|
31
|
+
eventId;
|
|
32
|
+
eventName;
|
|
33
|
+
sequenceNumber;
|
|
34
|
+
approximateCreationDateTime;
|
|
35
|
+
streamViewType;
|
|
36
|
+
keys;
|
|
37
|
+
newImage;
|
|
38
|
+
oldImage;
|
|
39
|
+
sizeBytes;
|
|
40
|
+
userIdentity;
|
|
41
|
+
constructor(properties) {
|
|
42
|
+
const { change, viewType } = properties;
|
|
43
|
+
// A change with neither image never happened, and the stream is never told
|
|
44
|
+
// about one, so the item the keys are cut from is always there.
|
|
45
|
+
const changed = change.newImage ?? change.oldImage;
|
|
46
|
+
assertDefined(changed, "DynamoDB stream record item image");
|
|
47
|
+
const images = simDynamoDbStreamImages(change, viewType);
|
|
48
|
+
this.eventId = randomUUID().replaceAll("-", "");
|
|
49
|
+
this.eventName = eventNameOf(change);
|
|
50
|
+
this.sequenceNumber = properties.sequenceNumber;
|
|
51
|
+
this.approximateCreationDateTime = properties.at;
|
|
52
|
+
this.streamViewType = viewType;
|
|
53
|
+
this.keys = simDynamoDbStreamRecordKeys(changed, properties.keySchema);
|
|
54
|
+
this.newImage = images.newImage;
|
|
55
|
+
this.oldImage = images.oldImage;
|
|
56
|
+
this.sizeBytes = simDynamoDbStreamRecordSize([this.keys, images.newImage, images.oldImage].filter((image) => image !== undefined));
|
|
57
|
+
this.userIdentity = change.expired ? timeToLiveIdentity : undefined;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=sim-dynamodb-stream-record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-record.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAKpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAmBnF;;GAEG;AACH,MAAM,kBAAkB,GAAkC;IACxD,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,wBAAwB;CACtC,CAAC;AAUF;;GAEG;AACH,SAAS,WAAW,CAClB,MAA6B;IAE7B,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,uBAAuB;IAClB,OAAO,CAAS;IAChB,SAAS,CAA6B;IACtC,cAAc,CAAS;IACvB,2BAA2B,CAAO;IAClC,cAAc,CAA4B;IAC1C,IAAI,CAAkB;IACtB,QAAQ,CAA8B;IACtC,QAAQ,CAA8B;IACtC,SAAS,CAAS;IAClB,YAAY,CAA4C;IAExE,YAAY,UAA6C;QACvD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;QAExC,2EAA2E;QAC3E,gEAAgE;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QACnD,aAAa,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEzD,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;QAChD,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,2BAA2B,CAC1C,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAClD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAC/B,CACF,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The sequence numbers one stream hands out.
|
|
3
|
+
*
|
|
4
|
+
* This is a counter rather than a clock. Records are commonly written inside
|
|
5
|
+
* one millisecond, and a clock cannot tell those apart, so a clock-derived
|
|
6
|
+
* sequence number would leave two records claiming the same position on the
|
|
7
|
+
* stream. Real DynamoDB varies the width between 21 and 40 digits, where these
|
|
8
|
+
* stay at 21, which is a divergence in a reader's favour: lexicographic order
|
|
9
|
+
* is numeric order here whatever two numbers are compared.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimDynamoDbStreamSequenceNumbers {
|
|
12
|
+
private next;
|
|
13
|
+
/**
|
|
14
|
+
* Take the next sequence number, as the text a record carries.
|
|
15
|
+
*/
|
|
16
|
+
take(): string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=sim-dynamodb-stream-sequence-numbers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-sequence-numbers.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.ts"],"names":[],"mappings":"AAUA;;;;;;;;;GASG;AACH,qBAAa,gCAAgC;IAC3C,OAAO,CAAC,IAAI,CAAuB;IAEnC;;OAEG;IACH,IAAI,IAAI,MAAM,CAMb;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The number the first record on a stream is given.
|
|
3
|
+
*
|
|
4
|
+
* A sequence number is compared as text by anything reading a stream, so the
|
|
5
|
+
* width has to be fixed and the first digit has to be something other than a
|
|
6
|
+
* zero. Starting at 10^20 gives 21 digits of room, which is a hundred billion
|
|
7
|
+
* billion records before the width changes.
|
|
8
|
+
*/
|
|
9
|
+
const firstSequenceNumber = 100000000000000000000n;
|
|
10
|
+
/**
|
|
11
|
+
* The sequence numbers one stream hands out.
|
|
12
|
+
*
|
|
13
|
+
* This is a counter rather than a clock. Records are commonly written inside
|
|
14
|
+
* one millisecond, and a clock cannot tell those apart, so a clock-derived
|
|
15
|
+
* sequence number would leave two records claiming the same position on the
|
|
16
|
+
* stream. Real DynamoDB varies the width between 21 and 40 digits, where these
|
|
17
|
+
* stay at 21, which is a divergence in a reader's favour: lexicographic order
|
|
18
|
+
* is numeric order here whatever two numbers are compared.
|
|
19
|
+
*/
|
|
20
|
+
export class SimDynamoDbStreamSequenceNumbers {
|
|
21
|
+
next = firstSequenceNumber;
|
|
22
|
+
/**
|
|
23
|
+
* Take the next sequence number, as the text a record carries.
|
|
24
|
+
*/
|
|
25
|
+
take() {
|
|
26
|
+
const taken = this.next;
|
|
27
|
+
this.next += 1n;
|
|
28
|
+
return taken.toString();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=sim-dynamodb-stream-sequence-numbers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-sequence-numbers.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,sBAA4B,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,OAAO,gCAAgC;IACnC,IAAI,GAAG,mBAAmB,CAAC;IAEnC;;OAEG;IACH,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAEhB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { SimDynamoDbStreamRecord } from "./sim-dynamodb-stream-record.js";
|
|
2
|
+
/**
|
|
3
|
+
* The one shard of one stream, and the records written to it.
|
|
4
|
+
*
|
|
5
|
+
* AWS documents an open shard as corresponding to one table partition, and a
|
|
6
|
+
* simulated table is always one partition, so one shard per stream is accurate
|
|
7
|
+
* rather than a shortcut. Nothing here splits: a shard is opened when the
|
|
8
|
+
* stream is enabled and closed when it is disabled.
|
|
9
|
+
*
|
|
10
|
+
* The total order that gives across every key is stronger than the per-key
|
|
11
|
+
* order AWS guarantees. A consumer relying on it here would be relying on
|
|
12
|
+
* something real DynamoDB does not promise.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SimDynamoDbStreamShard {
|
|
15
|
+
readonly shardId: string;
|
|
16
|
+
private readonly written;
|
|
17
|
+
private open;
|
|
18
|
+
constructor(at: Date);
|
|
19
|
+
/**
|
|
20
|
+
* Whether this shard is still taking records.
|
|
21
|
+
*/
|
|
22
|
+
get isOpen(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The records written to this shard, oldest first.
|
|
25
|
+
*/
|
|
26
|
+
get records(): readonly SimDynamoDbStreamRecord[];
|
|
27
|
+
/**
|
|
28
|
+
* Write a record to this shard.
|
|
29
|
+
*/
|
|
30
|
+
append(record: SimDynamoDbStreamRecord): void;
|
|
31
|
+
/**
|
|
32
|
+
* Close this shard to further records.
|
|
33
|
+
*
|
|
34
|
+
* What is already on it stays readable: disabling a stream stops it taking
|
|
35
|
+
* changes rather than throwing away the ones it took.
|
|
36
|
+
*/
|
|
37
|
+
close(): void;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=sim-dynamodb-stream-shard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-shard.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-shard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAoB/E;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAsB;IACjC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,IAAI,CAAQ;IAEpB,YAAY,EAAE,EAAE,IAAI,EAEnB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,uBAAuB,EAAE,CAEhD;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAE5C;IAED;;;;;OAKG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* How many digits DynamoDB pads a shard identifier's instant to.
|
|
4
|
+
*/
|
|
5
|
+
const shardInstantDigits = 20;
|
|
6
|
+
/**
|
|
7
|
+
* The identifier a shard opened at an instant carries.
|
|
8
|
+
*
|
|
9
|
+
* DynamoDB shapes these as `shardId-00000001414562045508-2bac9cd2`: the instant
|
|
10
|
+
* the shard opened, padded, and then something to tell two shards opened at one
|
|
11
|
+
* instant apart.
|
|
12
|
+
*/
|
|
13
|
+
function shardId(at) {
|
|
14
|
+
const opened = at.getTime().toString().padStart(shardInstantDigits, "0");
|
|
15
|
+
return `shardId-${opened}-${randomUUID().slice(0, 8)}`;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The one shard of one stream, and the records written to it.
|
|
19
|
+
*
|
|
20
|
+
* AWS documents an open shard as corresponding to one table partition, and a
|
|
21
|
+
* simulated table is always one partition, so one shard per stream is accurate
|
|
22
|
+
* rather than a shortcut. Nothing here splits: a shard is opened when the
|
|
23
|
+
* stream is enabled and closed when it is disabled.
|
|
24
|
+
*
|
|
25
|
+
* The total order that gives across every key is stronger than the per-key
|
|
26
|
+
* order AWS guarantees. A consumer relying on it here would be relying on
|
|
27
|
+
* something real DynamoDB does not promise.
|
|
28
|
+
*/
|
|
29
|
+
export class SimDynamoDbStreamShard {
|
|
30
|
+
shardId;
|
|
31
|
+
written = [];
|
|
32
|
+
open = true;
|
|
33
|
+
constructor(at) {
|
|
34
|
+
this.shardId = shardId(at);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Whether this shard is still taking records.
|
|
38
|
+
*/
|
|
39
|
+
get isOpen() {
|
|
40
|
+
return this.open;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The records written to this shard, oldest first.
|
|
44
|
+
*/
|
|
45
|
+
get records() {
|
|
46
|
+
return this.written;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Write a record to this shard.
|
|
50
|
+
*/
|
|
51
|
+
append(record) {
|
|
52
|
+
this.written.push(record);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Close this shard to further records.
|
|
56
|
+
*
|
|
57
|
+
* What is already on it stays readable: disabling a stream stops it taking
|
|
58
|
+
* changes rather than throwing away the ones it took.
|
|
59
|
+
*/
|
|
60
|
+
close() {
|
|
61
|
+
this.open = false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=sim-dynamodb-stream-shard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-shard.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-shard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;GAEG;AACH,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,EAAQ;IACvB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAEzE,OAAO,WAAW,MAAM,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,sBAAsB;IACjB,OAAO,CAAS;IAEf,OAAO,GAA8B,EAAE,CAAC;IACjD,IAAI,GAAG,IAAI,CAAC;IAEpB,YAAY,EAAQ;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAA+B;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SimDynamoDbStreamSpecification, SimDynamoDbStreamViewType } from "./sim-dynamodb-stream.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* What a request asks a table's stream to be, once it has been checked.
|
|
4
|
+
*
|
|
5
|
+
* A view type is there when the stream is being switched on, and never when it
|
|
6
|
+
* is being switched off, since the view type belongs to the stream rather than
|
|
7
|
+
* to the table. The two shapes are one type rather than two so that a request
|
|
8
|
+
* carrying a StreamSpecification is one thing to read and one thing to apply.
|
|
9
|
+
*/
|
|
10
|
+
export type SimDynamoDbStreamRequest = {
|
|
11
|
+
readonly enabled: true;
|
|
12
|
+
readonly viewType: SimDynamoDbStreamViewType;
|
|
13
|
+
} | {
|
|
14
|
+
readonly enabled: false;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Read the StreamSpecification a CreateTable or UpdateTable request carries.
|
|
18
|
+
*
|
|
19
|
+
* Nothing here knows about the table, so nothing here refuses a request for the
|
|
20
|
+
* stream the table already has. This is only the request read on its own: what
|
|
21
|
+
* it asks for, and whether it asks for it coherently.
|
|
22
|
+
*
|
|
23
|
+
* `StreamEnabled` is required whenever the specification is there at all, as it
|
|
24
|
+
* is on real DynamoDB. A specification carrying only a view type would read as
|
|
25
|
+
* a request for a stream while making a table with none.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readSimDynamoDbStreamSpecification(input: SimDynamoDbStreamSpecification | undefined): SimDynamoDbStreamRequest | undefined;
|
|
28
|
+
//# sourceMappingURL=sim-dynamodb-stream-specification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-specification.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-specification.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,8BAA8B,EAC9B,yBAAyB,EAC1B,MAAM,gCAAgC,CAAC;AAGxC;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,8BAA8B,GAAG,SAAS,GAChD,wBAAwB,GAAG,SAAS,CAoBtC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SimDynamoDbValidationException } from "../error/dynamodb.error.js";
|
|
2
|
+
import { readSimDynamoDbStreamViewType } from "./sim-dynamodb-stream-view-type.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read the StreamSpecification a CreateTable or UpdateTable request carries.
|
|
5
|
+
*
|
|
6
|
+
* Nothing here knows about the table, so nothing here refuses a request for the
|
|
7
|
+
* stream the table already has. This is only the request read on its own: what
|
|
8
|
+
* it asks for, and whether it asks for it coherently.
|
|
9
|
+
*
|
|
10
|
+
* `StreamEnabled` is required whenever the specification is there at all, as it
|
|
11
|
+
* is on real DynamoDB. A specification carrying only a view type would read as
|
|
12
|
+
* a request for a stream while making a table with none.
|
|
13
|
+
*/
|
|
14
|
+
export function readSimDynamoDbStreamSpecification(input) {
|
|
15
|
+
if (input === undefined) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
if (input.StreamEnabled === undefined) {
|
|
19
|
+
throw new SimDynamoDbValidationException("One or more parameter values were invalid: StreamEnabled is required " +
|
|
20
|
+
"in a StreamSpecification");
|
|
21
|
+
}
|
|
22
|
+
if (!input.StreamEnabled) {
|
|
23
|
+
return { enabled: false };
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
enabled: true,
|
|
27
|
+
viewType: readSimDynamoDbStreamViewType(input.StreamViewType),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=sim-dynamodb-stream-specification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-specification.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAK5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAcnF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kCAAkC,CAChD,KAAiD;IAEjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,8BAA8B,CACtC,uEAAuE;YACrE,0BAA0B,CAC7B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,6BAA6B,CAAC,KAAK,CAAC,cAAc,CAAC;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SimDynamoDbStream } from "./sim-dynamodb-stream.js";
|
|
2
|
+
/**
|
|
3
|
+
* The streams one simulated DynamoDB holds, keyed by ARN.
|
|
4
|
+
*
|
|
5
|
+
* A stream outlives being enabled: disabling one leaves it readable for the
|
|
6
|
+
* rest of its retention window, and the table that made it has already moved on
|
|
7
|
+
* to reporting nothing or reporting a newer one. So the streams are held here
|
|
8
|
+
* rather than only on the tables, which is what lets an ARN be resolved to the
|
|
9
|
+
* stream it names however long ago the table stopped writing to it.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimDynamoDbStreamStore {
|
|
12
|
+
private readonly streams;
|
|
13
|
+
/**
|
|
14
|
+
* Hold a stream a table has just enabled.
|
|
15
|
+
*/
|
|
16
|
+
add(stream: SimDynamoDbStream): void;
|
|
17
|
+
/**
|
|
18
|
+
* Find the stream an ARN names, if there is one.
|
|
19
|
+
*
|
|
20
|
+
* An ARN naming no stream is simply not found. It reaches this from request
|
|
21
|
+
* input, where a value that names nothing is an ordinary case the caller
|
|
22
|
+
* reports in its own terms.
|
|
23
|
+
*/
|
|
24
|
+
findByArn(streamArn: string): SimDynamoDbStream | undefined;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=sim-dynamodb-stream-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-store.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAEhE;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAEnC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE1D;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The streams one simulated DynamoDB holds, keyed by ARN.
|
|
3
|
+
*
|
|
4
|
+
* A stream outlives being enabled: disabling one leaves it readable for the
|
|
5
|
+
* rest of its retention window, and the table that made it has already moved on
|
|
6
|
+
* to reporting nothing or reporting a newer one. So the streams are held here
|
|
7
|
+
* rather than only on the tables, which is what lets an ARN be resolved to the
|
|
8
|
+
* stream it names however long ago the table stopped writing to it.
|
|
9
|
+
*/
|
|
10
|
+
export class SimDynamoDbStreamStore {
|
|
11
|
+
streams = new Map();
|
|
12
|
+
/**
|
|
13
|
+
* Hold a stream a table has just enabled.
|
|
14
|
+
*/
|
|
15
|
+
add(stream) {
|
|
16
|
+
this.streams.set(stream.arn, stream);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Find the stream an ARN names, if there is one.
|
|
20
|
+
*
|
|
21
|
+
* An ARN naming no stream is simply not found. It reaches this from request
|
|
22
|
+
* input, where a value that names nothing is an ordinary case the caller
|
|
23
|
+
* reports in its own terms.
|
|
24
|
+
*/
|
|
25
|
+
findByArn(streamArn) {
|
|
26
|
+
return this.streams.get(streamArn);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=sim-dynamodb-stream-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-store.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-store.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAsB;IAChB,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEhE;;OAEG;IACH,GAAG,CAAC,MAAyB;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,SAAiB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SimUpdateTableCommandInput } from "../command/table/table.command.js";
|
|
2
|
+
import { type SimDynamoDbStreamRequest } from "./sim-dynamodb-stream-specification.js";
|
|
3
|
+
import type { SimDynamoDbTableStream } from "./sim-dynamodb-table-stream.js";
|
|
4
|
+
/**
|
|
5
|
+
* Read the change an UpdateTable request asks a table's stream for.
|
|
6
|
+
*
|
|
7
|
+
* Unlike CreateTable, where a stream specification describes a table that does
|
|
8
|
+
* not exist yet, this is read against the stream the table already has. A
|
|
9
|
+
* request that asks for the state the table is already in is refused rather
|
|
10
|
+
* than accepted as a no-op, which is what real DynamoDB does with both of them.
|
|
11
|
+
*/
|
|
12
|
+
export declare function readSimDynamoDbStreamUpdate(input: SimUpdateTableCommandInput, stream: SimDynamoDbTableStream): SimDynamoDbStreamRequest | undefined;
|
|
13
|
+
//# sourceMappingURL=sim-dynamodb-stream-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-update.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AA+C7E;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,0BAA0B,EACjC,MAAM,EAAE,sBAAsB,GAC7B,wBAAwB,GAAG,SAAS,CAWtC"}
|