@kensio/yulin 1.1.0 → 1.3.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/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
- package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
- package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +5 -4
- 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 +17 -8
- 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/aws/sim-aws-account-region-scope.d.ts +9 -1
- package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.js +10 -0
- package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
- package/dist/service/aws/sim-aws-account.d.ts +5 -1
- package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account.js +6 -0
- package/dist/service/aws/sim-aws-account.js.map +1 -1
- package/dist/service/aws/sim-aws-region.d.ts +5 -1
- package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-region.js +6 -0
- package/dist/service/aws/sim-aws-region.js.map +1 -1
- package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -1
- package/dist/service/aws/sim-aws-service-accessors.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-service-accessors.js +4 -0
- package/dist/service/aws/sim-aws-service-accessors.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/resource/cfn/dynamodb/sim-dynamodb-table-cfn.d.ts +11 -3
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.js +20 -6
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.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/cfn/table/sim-cfn-dynamodb-table-creator.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts +5 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js +7 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts +5 -4
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js +16 -11
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.d.ts +23 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.js +62 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.js.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.d.ts +17 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.js +24 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.js.map +1 -0
- package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.d.ts +11 -0
- package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.d.ts.map +1 -1
- package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.js +13 -0
- package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.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/stream/describe-stream/describe-stream.command.d.ts +43 -0
- package/dist/service/dynamodb/command/stream/describe-stream/describe-stream.command.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/describe-stream/describe-stream.command.js +5 -0
- package/dist/service/dynamodb/command/stream/describe-stream/describe-stream.command.js.map +1 -0
- package/dist/service/dynamodb/command/stream/describe-stream/sim-dynamodb-describe-stream.d.ts +26 -0
- package/dist/service/dynamodb/command/stream/describe-stream/sim-dynamodb-describe-stream.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/describe-stream/sim-dynamodb-describe-stream.js +77 -0
- package/dist/service/dynamodb/command/stream/describe-stream/sim-dynamodb-describe-stream.js.map +1 -0
- package/dist/service/dynamodb/command/stream/get-records/get-records.command.d.ts +32 -0
- package/dist/service/dynamodb/command/stream/get-records/get-records.command.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/get-records/get-records.command.js +5 -0
- package/dist/service/dynamodb/command/stream/get-records/get-records.command.js.map +1 -0
- package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-get-records.d.ts +29 -0
- package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-get-records.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-get-records.js +60 -0
- package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-get-records.js.map +1 -0
- package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-streams-api-record.d.ts +12 -0
- package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-streams-api-record.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-streams-api-record.js +52 -0
- package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-streams-api-record.js.map +1 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/get-shard-iterator.command.d.ts +31 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/get-shard-iterator.command.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/get-shard-iterator.command.js +5 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/get-shard-iterator.command.js.map +1 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-get-shard-iterator.d.ts +27 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-get-shard-iterator.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-get-shard-iterator.js +42 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-get-shard-iterator.js.map +1 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-shard-iterator-position.d.ts +11 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-shard-iterator-position.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-shard-iterator-position.js +53 -0
- package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-shard-iterator-position.js.map +1 -0
- package/dist/service/dynamodb/command/stream/list-streams/list-streams.command.d.ts +33 -0
- package/dist/service/dynamodb/command/stream/list-streams/list-streams.command.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/list-streams/list-streams.command.js +5 -0
- package/dist/service/dynamodb/command/stream/list-streams/list-streams.command.js.map +1 -0
- package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-list-streams.d.ts +26 -0
- package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-list-streams.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-list-streams.js +31 -0
- package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-list-streams.js.map +1 -0
- package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-stream-page.d.ts +28 -0
- package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-stream-page.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-stream-page.js +59 -0
- package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-stream-page.js.map +1 -0
- package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-access.d.ts +44 -0
- package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-access.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-access.js +53 -0
- package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-access.js.map +1 -0
- package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-command.types.d.ts +8 -0
- package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-command.types.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-command.types.js +2 -0
- package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-command.types.js.map +1 -0
- package/dist/service/dynamodb/command/stream/stream.types.d.ts +84 -0
- package/dist/service/dynamodb/command/stream/stream.types.d.ts.map +1 -0
- package/dist/service/dynamodb/command/stream/stream.types.js +2 -0
- package/dist/service/dynamodb/command/stream/stream.types.js.map +1 -0
- 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/error/dynamodb.error.d.ts +17 -0
- package/dist/service/dynamodb/error/dynamodb.error.d.ts.map +1 -1
- package/dist/service/dynamodb/error/dynamodb.error.js +19 -0
- package/dist/service/dynamodb/error/dynamodb.error.js.map +1 -1
- package/dist/service/dynamodb/index.d.ts +1 -0
- package/dist/service/dynamodb/index.d.ts.map +1 -1
- package/dist/service/dynamodb/index.js +1 -0
- package/dist/service/dynamodb/index.js.map +1 -1
- package/dist/service/dynamodb/sdk/sim-dynamodb-streams-sdk-command-router.d.ts +24 -0
- package/dist/service/dynamodb/sdk/sim-dynamodb-streams-sdk-command-router.d.ts.map +1 -0
- package/dist/service/dynamodb/sdk/sim-dynamodb-streams-sdk-command-router.js +46 -0
- package/dist/service/dynamodb/sdk/sim-dynamodb-streams-sdk-command-router.js.map +1 -0
- package/dist/service/dynamodb/sim-dynamodb-streams.d.ts +59 -0
- package/dist/service/dynamodb/sim-dynamodb-streams.d.ts.map +1 -0
- package/dist/service/dynamodb/sim-dynamodb-streams.js +79 -0
- package/dist/service/dynamodb/sim-dynamodb-streams.js.map +1 -0
- package/dist/service/dynamodb/sim-dynamodb.d.ts +45 -60
- package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
- package/dist/service/dynamodb/sim-dynamodb.js +59 -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-position.d.ts +31 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-position.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-position.js +13 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-position.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-read.d.ts +33 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-read.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-read.js +66 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-read.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-retention.d.ts +17 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-retention.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-retention.js +24 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-retention.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts +34 -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 +63 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.d.ts +25 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.js +74 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.js.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts +72 -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 +113 -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 +42 -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 +54 -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 +88 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-stream.js +100 -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-orders.factory.d.ts +31 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-streamed-orders.factory.d.ts.map +1 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-streamed-orders.factory.js +33 -0
- package/dist/service/dynamodb/stream/sim-dynamodb-streamed-orders.factory.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/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.d.ts +14 -0
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.d.ts.map +1 -1
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +29 -1
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js.map +1 -1
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.d.ts.map +1 -1
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +8 -2
- package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +7 -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 +20 -9
- 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 +49 -20
- 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 +5 -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 +5 -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 +7 -3
- 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 +15 -10
- package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.d.ts +3 -1
- package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.d.ts.map +1 -1
- package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.js +1 -1
- package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.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-dynamodb-event-image.d.ts +23 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.js +55 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.d.ts +27 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.js +41 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.d.ts +42 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +52 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.d.ts +77 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.js +114 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.d.ts +21 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.js +56 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.d.ts +78 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.js +8 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.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-poll-turn.d.ts +40 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-turn.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-turn.js +45 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-turn.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts +26 -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 +29 -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/poll/sim-lambda-stream-batch-outcome.d.ts +37 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +51 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +29 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +71 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +36 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +41 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +65 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +92 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +36 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts.map +1 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +47 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +29 -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 +48 -12
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js.map +1 -1
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +24 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts.map +1 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +33 -0
- package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts +25 -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 +33 -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 +30 -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 +40 -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 +15 -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 +14 -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 +7 -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-reachable.d.ts +27 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-reachable.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-reachable.js +40 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-reachable.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/lambda/event-source/sim-lambda-event-source-starting-position.d.ts +60 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-starting-position.d.ts.map +1 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-starting-position.js +51 -0
- package/dist/service/lambda/event-source/sim-lambda-event-source-starting-position.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-positions.d.ts +31 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-positions.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-positions.js +29 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-positions.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-reader.d.ts +32 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-reader.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-reader.js +48 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-reader.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-shard.d.ts +28 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-shard.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-shard.js +71 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-shard.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-streams.d.ts +42 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-streams.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-streams.js +55 -0
- package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-streams.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-attribute-value.d.ts +150 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-attribute-value.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-attribute-value.js +2 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-attribute-value.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +52 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +88 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +25 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +34 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-delivery-context.d.ts +31 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-delivery-context.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-delivery-context.js +33 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-delivery-context.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-stream-service.d.ts +73 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-stream-service.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-stream-service.js +2 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-stream-service.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-streams.d.ts +148 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-streams.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-streams.js +37 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-event-source-streams.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade-guard.d.ts +36 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade-guard.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade-guard.js +50 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade-guard.js.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade.error.d.ts +24 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade.error.d.ts.map +1 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade.error.js +24 -0
- package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade.error.js.map +1 -0
- package/dist/service/lambda/index.d.ts +3 -0
- package/dist/service/lambda/index.d.ts.map +1 -1
- package/dist/service/lambda/index.js +1 -0
- package/dist/service/lambda/index.js.map +1 -1
- package/dist/service/lambda/sim-lambda-commands.d.ts +2 -0
- package/dist/service/lambda/sim-lambda-commands.d.ts.map +1 -1
- package/dist/service/lambda/sim-lambda-commands.js +7 -3
- package/dist/service/lambda/sim-lambda-commands.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 +5 -4
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { SimDynamoDbTrimmedDataAccessException } from "../error/dynamodb.error.js";
|
|
2
|
+
import { simDynamoDbStreamAfter, } from "./sim-dynamodb-stream-position.js";
|
|
3
|
+
import { compareSimDynamoDbSequenceNumbers } from "./sim-dynamodb-stream-sequence-numbers.js";
|
|
4
|
+
/**
|
|
5
|
+
* Whether a shard has dropped the record a position names.
|
|
6
|
+
*
|
|
7
|
+
* `at` a trimmed sequence number is gone: that record is what was asked for.
|
|
8
|
+
* `after` one is not, as long as the record following it survived, which is why
|
|
9
|
+
* the two comparisons differ by the equal case.
|
|
10
|
+
*/
|
|
11
|
+
function isTrimmed(shard, sequenceNumber, inclusive) {
|
|
12
|
+
const trimmedThrough = shard.trimmedThrough;
|
|
13
|
+
if (trimmedThrough === undefined) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const order = compareSimDynamoDbSequenceNumbers(sequenceNumber, trimmedThrough);
|
|
17
|
+
return inclusive ? order <= 0 : order < 0;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Ensure a shard still holds the position a reader is asking for.
|
|
21
|
+
*
|
|
22
|
+
* Checked when an iterator is handed out as well as when one is used, because a
|
|
23
|
+
* caller can name a sequence number the retention window has already outlived
|
|
24
|
+
* and should find that out at the request rather than one call later.
|
|
25
|
+
*/
|
|
26
|
+
export function assertSimDynamoDbStreamPositionReadable(shard, position) {
|
|
27
|
+
if (position.kind === "start" ||
|
|
28
|
+
!isTrimmed(shard, position.sequenceNumber, position.kind === "at")) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
throw new SimDynamoDbTrimmedDataAccessException(`Stream record with sequence number ${position.sequenceNumber} on shard ` +
|
|
32
|
+
`${shard.shardId} is past the 24 hour trim point`);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Where in the records a position starts reading from.
|
|
36
|
+
*/
|
|
37
|
+
function startIndexOf(records, position) {
|
|
38
|
+
if (position.kind === "start") {
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
const wanted = position.kind === "at" ? 0 : 1;
|
|
42
|
+
const found = records.findIndex((record) => compareSimDynamoDbSequenceNumbers(record.sequenceNumber, position.sequenceNumber) >= wanted);
|
|
43
|
+
return found === -1 ? records.length : found;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Read up to a limit of records from a shard, starting at a position.
|
|
47
|
+
*
|
|
48
|
+
* An empty result is an ordinary answer rather than a problem: a reader that
|
|
49
|
+
* has caught up with an open shard gets nothing back and the position it
|
|
50
|
+
* already had, which is what makes polling each successive iterator work.
|
|
51
|
+
*/
|
|
52
|
+
export function simDynamoDbStreamRead(shard, position, limit) {
|
|
53
|
+
assertSimDynamoDbStreamPositionReadable(shard, position);
|
|
54
|
+
const available = shard.records;
|
|
55
|
+
const start = startIndexOf(available, position);
|
|
56
|
+
const records = available.slice(start, start + limit);
|
|
57
|
+
const last = records.at(-1);
|
|
58
|
+
return {
|
|
59
|
+
records,
|
|
60
|
+
next: last === undefined
|
|
61
|
+
? position
|
|
62
|
+
: simDynamoDbStreamAfter(last.sequenceNumber),
|
|
63
|
+
drained: !shard.isOpen && start + records.length >= available.length,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=sim-dynamodb-stream-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-read.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AAEnF,OAAO,EACL,sBAAsB,GAEvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAiB9F;;;;;;GAMG;AACH,SAAS,SAAS,CAChB,KAA6B,EAC7B,cAAsB,EACtB,SAAkB;IAElB,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAE5C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,iCAAiC,CAC7C,cAAc,EACd,cAAc,CACf,CAAC;IAEF,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uCAAuC,CACrD,KAA6B,EAC7B,QAAmC;IAEnC,IACE,QAAQ,CAAC,IAAI,KAAK,OAAO;QACzB,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,EAClE,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,qCAAqC,CAC7C,sCAAsC,QAAQ,CAAC,cAAc,YAAY;QACvE,GAAG,KAAK,CAAC,OAAO,iCAAiC,CACpD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,OAA2C,EAC3C,QAAmC;IAEnC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAC7B,CAAC,MAAM,EAAE,EAAE,CACT,iCAAiC,CAC/B,MAAM,CAAC,cAAc,EACrB,QAAQ,CAAC,cAAc,CACxB,IAAI,MAAM,CACd,CAAC;IAEF,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAA6B,EAC7B,QAAmC,EACnC,KAAa;IAEb,uCAAuC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;IAChC,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO;QACL,OAAO;QACP,IAAI,EACF,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC;QACjD,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM;KACrE,CAAC;AACJ,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,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The instant a stream's records have to be newer than to still be readable.
|
|
3
|
+
*
|
|
4
|
+
* Trimming is applied when a stream is read rather than scheduled, because it
|
|
5
|
+
* is a pure function of the current time: whatever a read finds is what the
|
|
6
|
+
* retention window holds at the instant of that read, and nothing has to have
|
|
7
|
+
* run in between for that to be true. Compare `SimSqsQueue.applyLifecycle`,
|
|
8
|
+
* which is the same shape for the same reason.
|
|
9
|
+
*
|
|
10
|
+
* A stream itself is not dropped once everything on it has been trimmed. Real
|
|
11
|
+
* DynamoDB eventually stops listing a disabled stream whose records have all
|
|
12
|
+
* aged out, which is a divergence in a test's favour: the ARN a test is holding
|
|
13
|
+
* goes on resolving, and reading it gives an empty result rather than a
|
|
14
|
+
* resource that has silently disappeared.
|
|
15
|
+
*/
|
|
16
|
+
export declare function simDynamoDbStreamTrimPoint(now: Date): Date;
|
|
17
|
+
//# sourceMappingURL=sim-dynamodb-stream-retention.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-retention.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-retention.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAE1D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long DynamoDB Streams keeps a record before trimming it.
|
|
3
|
+
*/
|
|
4
|
+
const retentionHours = 24;
|
|
5
|
+
const millisecondsPerHour = 60 * 60 * 1000;
|
|
6
|
+
/**
|
|
7
|
+
* The instant a stream's records have to be newer than to still be readable.
|
|
8
|
+
*
|
|
9
|
+
* Trimming is applied when a stream is read rather than scheduled, because it
|
|
10
|
+
* is a pure function of the current time: whatever a read finds is what the
|
|
11
|
+
* retention window holds at the instant of that read, and nothing has to have
|
|
12
|
+
* run in between for that to be true. Compare `SimSqsQueue.applyLifecycle`,
|
|
13
|
+
* which is the same shape for the same reason.
|
|
14
|
+
*
|
|
15
|
+
* A stream itself is not dropped once everything on it has been trimmed. Real
|
|
16
|
+
* DynamoDB eventually stops listing a disabled stream whose records have all
|
|
17
|
+
* aged out, which is a divergence in a test's favour: the ARN a test is holding
|
|
18
|
+
* goes on resolving, and reading it gives an empty result rather than a
|
|
19
|
+
* resource that has silently disappeared.
|
|
20
|
+
*/
|
|
21
|
+
export function simDynamoDbStreamTrimPoint(now) {
|
|
22
|
+
return new Date(now.getTime() - retentionHours * millisecondsPerHour);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=sim-dynamodb-stream-retention.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-retention.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-retention.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAS;IAClD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,GAAG,mBAAmB,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
/**
|
|
19
|
+
* Read a sequence number a request carries.
|
|
20
|
+
*
|
|
21
|
+
* Real DynamoDB refuses anything that is not a run of digits, so a caller that
|
|
22
|
+
* passes a shard identifier or a truncated value here finds out at the request
|
|
23
|
+
* rather than reading from a position nothing could ever be at.
|
|
24
|
+
*/
|
|
25
|
+
export declare function readSimDynamoDbSequenceNumber(value: string | undefined, operationName: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Order two sequence numbers, as a comparator does.
|
|
28
|
+
*
|
|
29
|
+
* These are compared as numbers rather than as text. The ones a simulated
|
|
30
|
+
* stream hands out are a fixed width, where the two orders agree, but one a
|
|
31
|
+
* request carries came from outside and need not be.
|
|
32
|
+
*/
|
|
33
|
+
export declare function compareSimDynamoDbSequenceNumbers(left: string, right: string): number;
|
|
34
|
+
//# 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":"AAYA;;;;;;;;;GASG;AACH,qBAAa,gCAAgC;IAC3C,OAAO,CAAC,IAAI,CAAuB;IAEnC;;OAEG;IACH,IAAI,IAAI,MAAM,CAMb;CACF;AAOD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,aAAa,EAAE,MAAM,GACpB,MAAM,CAQR;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,MAAM,CAQR"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { SimDynamoDbValidationException } from "../error/dynamodb.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The number the first record on a stream is given.
|
|
4
|
+
*
|
|
5
|
+
* A sequence number is compared as text by anything reading a stream, so the
|
|
6
|
+
* width has to be fixed and the first digit has to be something other than a
|
|
7
|
+
* zero. Starting at 10^20 gives 21 digits of room, which is a hundred billion
|
|
8
|
+
* billion records before the width changes.
|
|
9
|
+
*/
|
|
10
|
+
const firstSequenceNumber = 100000000000000000000n;
|
|
11
|
+
/**
|
|
12
|
+
* The sequence numbers one stream hands out.
|
|
13
|
+
*
|
|
14
|
+
* This is a counter rather than a clock. Records are commonly written inside
|
|
15
|
+
* one millisecond, and a clock cannot tell those apart, so a clock-derived
|
|
16
|
+
* sequence number would leave two records claiming the same position on the
|
|
17
|
+
* stream. Real DynamoDB varies the width between 21 and 40 digits, where these
|
|
18
|
+
* stay at 21, which is a divergence in a reader's favour: lexicographic order
|
|
19
|
+
* is numeric order here whatever two numbers are compared.
|
|
20
|
+
*/
|
|
21
|
+
export class SimDynamoDbStreamSequenceNumbers {
|
|
22
|
+
next = firstSequenceNumber;
|
|
23
|
+
/**
|
|
24
|
+
* Take the next sequence number, as the text a record carries.
|
|
25
|
+
*/
|
|
26
|
+
take() {
|
|
27
|
+
const taken = this.next;
|
|
28
|
+
this.next += 1n;
|
|
29
|
+
return taken.toString();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A sequence number is digits and nothing else.
|
|
34
|
+
*/
|
|
35
|
+
const digitsOnly = /^\d+$/u;
|
|
36
|
+
/**
|
|
37
|
+
* Read a sequence number a request carries.
|
|
38
|
+
*
|
|
39
|
+
* Real DynamoDB refuses anything that is not a run of digits, so a caller that
|
|
40
|
+
* passes a shard identifier or a truncated value here finds out at the request
|
|
41
|
+
* rather than reading from a position nothing could ever be at.
|
|
42
|
+
*/
|
|
43
|
+
export function readSimDynamoDbSequenceNumber(value, operationName) {
|
|
44
|
+
if (value === undefined || !digitsOnly.test(value)) {
|
|
45
|
+
throw new SimDynamoDbValidationException(`${operationName} needs a numeric SequenceNumber`);
|
|
46
|
+
}
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Order two sequence numbers, as a comparator does.
|
|
51
|
+
*
|
|
52
|
+
* These are compared as numbers rather than as text. The ones a simulated
|
|
53
|
+
* stream hands out are a fixed width, where the two orders agree, but one a
|
|
54
|
+
* request carries came from outside and need not be.
|
|
55
|
+
*/
|
|
56
|
+
export function compareSimDynamoDbSequenceNumbers(left, right) {
|
|
57
|
+
const difference = BigInt(left) - BigInt(right);
|
|
58
|
+
if (difference === 0n) {
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
return difference > 0n ? 1 : -1;
|
|
62
|
+
}
|
|
63
|
+
//# 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,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE5E;;;;;;;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;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,QAAQ,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAyB,EACzB,aAAqB;IAErB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,8BAA8B,CACtC,GAAG,aAAa,iCAAiC,CAClD,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAC/C,IAAY,EACZ,KAAa;IAEb,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SimDynamoDbStreamPosition } from "./sim-dynamodb-stream-position.js";
|
|
2
|
+
/**
|
|
3
|
+
* What a shard iterator stands for: one place on one shard of one stream.
|
|
4
|
+
*/
|
|
5
|
+
export interface SimDynamoDbShardIterator {
|
|
6
|
+
readonly streamArn: string;
|
|
7
|
+
readonly shardId: string;
|
|
8
|
+
readonly position: SimDynamoDbStreamPosition;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The opaque token a caller is handed to read on from a place.
|
|
12
|
+
*
|
|
13
|
+
* Real shard iterators are opaque strings a caller passes back unread, and this
|
|
14
|
+
* one is the same shape: the place it stands for travels inside it rather than
|
|
15
|
+
* in a table of handed-out iterators. That is what lets an iterator be used
|
|
16
|
+
* against the stream it names without the stream having to remember it, which
|
|
17
|
+
* is also why the 15 minute expiry is deliberately absent here rather than
|
|
18
|
+
* approximated.
|
|
19
|
+
*/
|
|
20
|
+
export declare function simDynamoDbShardIteratorToken(iterator: SimDynamoDbShardIterator): string;
|
|
21
|
+
/**
|
|
22
|
+
* Read the place a shard iterator a request carries stands for.
|
|
23
|
+
*/
|
|
24
|
+
export declare function readSimDynamoDbShardIteratorToken(token: string | undefined): SimDynamoDbShardIterator;
|
|
25
|
+
//# sourceMappingURL=sim-dynamodb-stream-shard-iterator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-shard-iterator.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;CAC9C;AA4CD;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,wBAAwB,CA2B1B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { isRecord } from "../../../util/type-guard/record.js";
|
|
2
|
+
import { SimDynamoDbValidationException } from "../error/dynamodb.error.js";
|
|
3
|
+
/**
|
|
4
|
+
* The three position kinds, as a value read back out of a token has to be one
|
|
5
|
+
* of them before it is trusted.
|
|
6
|
+
*/
|
|
7
|
+
const positionKinds = new Set(["start", "at", "after"]);
|
|
8
|
+
/**
|
|
9
|
+
* Refuse a shard iterator a request carries that this simulation never made.
|
|
10
|
+
*/
|
|
11
|
+
function refuse() {
|
|
12
|
+
throw new SimDynamoDbValidationException("The provided ShardIterator is not valid");
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Read a position back out of a decoded token.
|
|
16
|
+
*/
|
|
17
|
+
function readPosition(value) {
|
|
18
|
+
if (!isRecord(value) || typeof value["kind"] !== "string") {
|
|
19
|
+
refuse();
|
|
20
|
+
}
|
|
21
|
+
const kind = value["kind"];
|
|
22
|
+
if (!positionKinds.has(kind)) {
|
|
23
|
+
refuse();
|
|
24
|
+
}
|
|
25
|
+
if (kind === "start") {
|
|
26
|
+
return { kind: "start" };
|
|
27
|
+
}
|
|
28
|
+
const sequenceNumber = value["sequenceNumber"];
|
|
29
|
+
if (typeof sequenceNumber !== "string") {
|
|
30
|
+
refuse();
|
|
31
|
+
}
|
|
32
|
+
return kind === "at"
|
|
33
|
+
? { kind: "at", sequenceNumber }
|
|
34
|
+
: { kind: "after", sequenceNumber };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The opaque token a caller is handed to read on from a place.
|
|
38
|
+
*
|
|
39
|
+
* Real shard iterators are opaque strings a caller passes back unread, and this
|
|
40
|
+
* one is the same shape: the place it stands for travels inside it rather than
|
|
41
|
+
* in a table of handed-out iterators. That is what lets an iterator be used
|
|
42
|
+
* against the stream it names without the stream having to remember it, which
|
|
43
|
+
* is also why the 15 minute expiry is deliberately absent here rather than
|
|
44
|
+
* approximated.
|
|
45
|
+
*/
|
|
46
|
+
export function simDynamoDbShardIteratorToken(iterator) {
|
|
47
|
+
return Buffer.from(JSON.stringify(iterator), "utf8").toString("base64url");
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Read the place a shard iterator a request carries stands for.
|
|
51
|
+
*/
|
|
52
|
+
export function readSimDynamoDbShardIteratorToken(token) {
|
|
53
|
+
if (token === undefined || token === "") {
|
|
54
|
+
throw new SimDynamoDbValidationException("GetRecords requires a ShardIterator");
|
|
55
|
+
}
|
|
56
|
+
let decoded;
|
|
57
|
+
try {
|
|
58
|
+
decoded = JSON.parse(Buffer.from(token, "base64url").toString("utf8"));
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
refuse();
|
|
62
|
+
}
|
|
63
|
+
if (!isRecord(decoded) ||
|
|
64
|
+
typeof decoded["streamArn"] !== "string" ||
|
|
65
|
+
typeof decoded["shardId"] !== "string") {
|
|
66
|
+
refuse();
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
streamArn: decoded["streamArn"],
|
|
70
|
+
shardId: decoded["shardId"],
|
|
71
|
+
position: readPosition(decoded["position"]),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=sim-dynamodb-stream-shard-iterator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-stream-shard-iterator.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAY5E;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAExD;;GAEG;AACH,SAAS,MAAM;IACb,MAAM,IAAI,8BAA8B,CACtC,yCAAyC,CAC1C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,EAAE,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC;IACX,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,EAAE,CAAC;IACX,CAAC;IAED,OAAO,IAAI,KAAK,IAAI;QAClB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;QAChC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAAkC;IAElC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAC/C,KAAyB;IAEzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,8BAA8B,CACtC,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC;IACX,CAAC;IAED,IACE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAClB,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ;QACxC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,EACtC,CAAC;QACD,MAAM,EAAE,CAAC;IACX,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;QAC/B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;QAC3B,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAC5C,CAAC;AACJ,CAAC"}
|